16. GPIO-Ãâ·Â ½ÇÇè 1 |
À̹ø °Á¿¡¼´Â C ¾ð¾î¸¦ ÀÌ¿ëÇÑ GPIO ½ÇÇè¿¡¼ Ãâ·Â ½ÇÇè¿¡ ´ëÇؼ ¾Ë¾Æ º¸µµ·Ï ÇÑ´Ù |
C ¾ð¾î ÀÛ¼ºÀº Á÷Á¢ ¶óÁ¸® ÆÄÀÌ¿¡¼ Çϵµ·Ï Çϸç, ÀÌÀü °Á¿¡¼ »ç¿ëÇÑ ÀûÀÌ ÀÖ´ø nano¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù |
¿ì¼±, ÀÛ¾÷ Æú´õ¸¦ ¸¸µç ÈÄ¿¡ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϵµ·Ï ÇÑ´Ù. |
$ mkdir gpio |
$ cd gpio |
$ nano led.c |
ÀÌ·± ÈÄ¿¡ nano¸¦ ÀÌ¿ëÇÏ¿© ¾Æ·¡¿Í °°Àº Äڵ带 ÀÔ·Â ÈÄ¿¡ ÀúÀåÇÏ°í, Á¾·áÇÑ´Ù. |
#include
#include
#include
int main (int argc, char*argv[])
{
int pinNumber;
if(argv < 2){
printf(¡°Usage: ./led port¡±);
return 1;
}
int pinNumber = atoi(argv[1]);
if(wiringPiSetup() == -1){ // wiringPi Setup
printf(¡°Please Setup wiringPi library¡±);
return 1;
}
pinMode(pinNumber, OUTPUT); // ÀÔ·ÂµÈ Æ÷Æ®¸¦ Ãâ·ÂÀ¸·Î ¼³Á¤
while(1){
digitalWrite(pinNumber, 0); // Æ÷Æ® Ãâ·Â Low
delay(1000);
digitalWrite(pinNumber, 1); // Æ÷Æ® Ãâ·Â High
delay(1000);
}
return 0;
} |
|
À§ ÄÚµå´Â ÀÔ·Â ¹ÞÀº Æ÷Æ®¿¡ ´ëÇؼ Ãâ·ÂÀ» Low, High¸¦ ¹Ýº¹ÇÏ¿© Ãâ·ÂÇÏ¿© ¿¬°áµÈ Led°¡ Á¡¸êÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù |
wiringPiSetup()´Â wiringPi ½Ã½ºÅÛÀ» ÃʱâÈÇÏ´Â ÇÔ¼öÀ̸ç, wiringPi ÇÉ ÇÒ´çÀ» »ç¿ëÇÏ°Ô µÈ´Ù. ¾Æ·¡ Ç¥ÀÇ »¡°£»ö ¹Ú½º¸¦ Âü°íÇϱ⠹ٶõ´Ù.
|
|
Âü°í·Î Broadcom(BCM) GPIO ÇÉ ÇÒ´çÀ» À§Çؼ´Â wiringPiSetupGpio()¸¦ »ç¿ëÇÑ´Ù |
pinMode(pin, mode)´Â ÇÉÀÇ ¸ðµå¸¦ ¼³Á¤ÇÏ´Â ÇÔ¼ö·Î, mode´Â INPUT, OUTPUT, PWM_OUTPUT ÁßÀÇ Çϳª·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. wiringPi 1¹ø Çɸ¸ÀÌ PWM Ãâ·ÂÀ» Áö¿øÇÑ´Ù. |
digitalWrite(pin, value)´Â ÇØ´ç ÇÉ¿¡ value °ªÀ¸·Î HIGH, LOW(1, 0)À¸·Î Ãâ·Â °ªÀ» Á¤ÇØ ÁÙ ¼ö ÀÖ´Ù |
delay(value)´Â Áö°£ Áö¿¬ ÇÔ¼ö·Î, value °ªÀº milisecond ´ÜÀ§·Î °ªÀ» ÁÙ ¼ö ÀÖ´Ù. |
wiringPi¿¡ ´ëÇÑ API ÇÔ¼ö´Â ´ÙÀ½ ±âȸ¿¡ º°µµ·Î ¼³¸íÀ» Çϵµ·Ï ÇÏÀÚ. |
WiringPi ¶óÀ̺귯¸®¸¦ »ç¿ëÇϱâ À§Çؼ´Â ¹Ýµå½Ã Çì´õ ÆÄÀÏÀ» Ãß°¡Çϵµ·Ï ÇÏÀÚ. |
#include |
À§¿Í °°ÀÌ ¼Ò½º ÄÚµå ÀÔ·ÂÀÌ ¿Ï·áµÈ ÈÄ¿¡ ÇÁ·Î±×·¥ ºôµå¸¦ ÇÑ´Ù. |
$ gcc led.c ?o led ?lwiringPi |
ÀÌ ºôµå ¸í·ÉÀ» ½ÇÇàÇϸé led¶ó´Â ½ÇÇà ÆÄÀÏÀÌ »ý¼ºµÈ´Ù. ¿©±â¼, -o´Â Ãâ·Â ÆÄÀϸíÀ» ÁöÁ¤ÇÏ°í, -lÀº »ç¿ëÇÒ ¶óÀ̺귯¸®¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. |
¸¸¾à, À§ ºôµå ¸í·ÉÀÌ ¿¡·¯°¡ ³ª¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇØ º»´Ù. |
$ gcc ?o led led.c ?I/usr/local/include ?L/usr/local/lib ?lwiringPi
|
|
½ÇÇà ÆÄÀÏÀÌ »ý¼ºµÇ°í, À̸¦ ½ÇÇàÇϱâ À§Çؼ´Â ·çÆ® ±ÇÇÑÀ¸·Î ÇØÁà¾ß Çϸç, Ctrl+C·Î Á¾·áÇÑ´Ù. |
$ sudo ./led 0 |
À§¿Í °°ÀÌ ½ÇÇàÀ» Çϸé GPIO 0¿¡ ¿¬°áµÈ LED°¡ delay(1000) Áï, 1ÃÊ °£°ÝÀ¸·Î ON, OFF¸¦ ¹Ýº¹ÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. |
À̹ø °Á¿¡¼´Â C¾ð¾î¸¦ ÀÌ¿ëÇÑ GPIO Ãâ·Â ½ÇÇè¿¡ ´ëÇؼ °£´ÜÇÏ°Ô ¾Ë¾Æ º¸¾Ò´Ù. ´ÙÀ½ °Á¿¡¼´Â ÀÔ·Â ½ÇÇè¿¡ ´ëÇؼ ¾Ë¾Æ º¸µµ·Ï ÇÑ´Ù. |
[Å×½ºÆ® µ¿¿µ»ó] |
|