[¿©·¯ ¹æ½ÄÀÇ LED Á¦¾î]

* ´Ù¼¸ °³ÀÇ LED ¿¬°áÇϱâ.

¾ÕÀÇ ¿¹Á¦·Î ÀÎÇØ Port AÀÇ ¸ðµç 8°³ÀÇ ÇÉ¿£ ÀÌ¹Ì Àü±â ½ÅÈ£°¡ Ãâ·ÂµÇ°í ÀÖ½À´Ï´Ù. 
±×·¸±â ¶§¹®¿¡ 8°³ Áß ¾î¶² °÷¿¡ LED¸¦ ¿¬°áÇϵçÁö °£¿¡ ºÒÀÌ µé¾î¿À°Ô µÉ °ÍÀÔ´Ï´Ù. 

±×·¯³ª ¿©±â¼­ ¹®Á¦´Â MCUÀÇ À½±Ø(GND) ÇÉÀÌ ÇÑ °³ ¹Û¿¡ ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. 
±×·¸±â ¶§¹®¿¡ »§ÆÇÀ» »ç¿ëÇÏ¿© À½±ØÀ» »§ÆÇÀÇ ¼¼·Î À½±Ø ¶óÀο¡ ¿¬°áÇÏ¿© ±æ°Ô È®ÀåÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.



ÀÌ ¶§, »§ÆÇ¿¡ ¿¬°áµÈ JMOD128ÀÌ À§Ä¡´Â ´ÙÀ½°ú °°½À´Ï´Ù.
ÇöÀç °¡°ÝÀÌ Àú·ÅÇÑ ÀÛÀº »§ÆÇÀ» ½Ç½À¿¡ »ç¿ëÇÏ°í Àֱ⠶§¹®¿¡ ÀÌó·³ JMOD128ÀÇ 
ÀϺθ¸ »§ÆÇ¿¡ ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù.



ÀÌÁ¦ 5°³ÀÇ LED¸¦ °¢°¢ ¿¬°áÇÕ´Ï´Ù. 
¿¹Á¦¿¡¼± PA0, PA1, PA2, PA3, PA4¹ø ÇÉ¿¡ ¿¬°áÇÏ¿´½À´Ï´Ù.



ÀÏ´Ü ÀÌó·³ ÀúÇ× ¾øÀÌ 5°³ÀÇ LED¸¦ ¿¬°áÇØ º¸¾Ò½À´Ï´Ù.
ÀÌÁ¦ ÀÌ »óÅ¿¡¼­ LEDµéÀ» ¼ÕÀ¸·Î ¸¸Á®º¸¸é, ¶ß²ö¶ß²ö~ÇÔÀ» ´À³¥ ¼ö ÀÖÀ¸½Ç °Ì´Ï´Ù.
Àß ¸øÇÏ¸é ¼ÕÀ» µ¨ ¼öµµ ÀÖÀ¸´Ï Á¶½ÉÇؼ­ ¸¸Á®º¸½Ã±â ¹Ù¶ø´Ï´Ù.

ÀÌó·³ LED°¡ ºñÁ¤»óÀûÀ¸·Î ¶ß°Å¿î ÀÌÀ¯´Â ¾Õ¼­ ¼³¸íµå¸° ´ë·Î ±â´ëµÇ´Â °Í ÀÌ»óÀÇ
¸¹Àº ¾çÀÇ Àü·ù°¡ °ø±ÞµÇ°í Àֱ⠶§¹®ÀÔ´Ï´Ù. 

±×·¡¼­ À̹ø¿£ ÀúÇ×À» ÇÔ²² ¿¬°áÇÏ¿© Àü·ù·®À» ³·Ãßµµ·Ï ÇÏ°Ú½À´Ï´Ù.



ÀÌó·³ ÀúÇ×À» ¿¬°áÇϸé LED°¡ ¾ÈÁ¤ÀûÀ¸·Î ÀÛµ¿ÇÏ¿© ÀÌÀü¿¡ ºñÇØ ¿Âµµ°¡ ³»·Á°¨À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·¸°Ô ÇÏ¿© 5°³ÀÇ LED¿¡ ºÒÀ» ÄÑ´Â ½Ç½ÀÀ» Çغ¸¾Ò½À´Ï´Ù.
 
 
* Ȧ¼ö¹ø° LED¸¸ ÄÑÁö°Ô Çϱâ

À̹ø¿£ 5°³ÀÇ LEDµé Áß È¦¼ö¹ø° LED¿¡¸¸ ºÒÀ» ÄѺ¸°Ú½À´Ï´Ù.


#include <avr/io.h> int main(void) { DDRA = 0xff; PORTA = 0b00010101; return 0; }
¿©±â¼­ ¾Ë¾ÆµÎ¾î¾ß ÇÒ Á¡Àº ÇÑ ºñÆ® ´ÜÀ§·Î ÇÉÀ» Á¦¾îÇϱâ À§ÇØ 2Áø¼ö Ç¥±â¹ýÀ» »ç¿ëÇß´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¡¼­ °ª ¾Õ¿¡ 0b¸¦ ºÙ¿© 2Áø¼öÀÓÀ» ³ªÅ¸³»¾ú½À´Ï´Ù. ¹°·Ð ÀÌ °ªÀº 2Áø¼ö°¡ ¾Æ´Ñ 10Áø¼ö³ª 16Áø¼ö·Îµµ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. °è»ê±â¸¦ ÀÌ¿ëÇÏ¿© À§ °ªÀ» ¹Ù²ãº¸¸é 10Áø¼ö·Î´Â 21, 16Áø¼ö·Î´Â 0x15ÀÓÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¾î¶² Ç¥±â¹ýÀ» »ç¿ëÇÏµç »ó°ü¾øÁö¸¸, ÀÌó·³ ºñÆ® ´ÜÀ§·Î °ªÀ» Á¦¾îÇÒ ¶§¿£ 2Áø¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡Àå Á÷°üÀûÀÔ´Ï´Ù. ±×¸®°í ÀÌó·³ 2Áø¼ö¸¦ ±âÁØÀ» º¼ ¶§, °¡Àå ¿ìÃø ºñÆ®°¡ PA0¹ø ÇÉÀÓ¿¡ À¯ÀÇÇÕ´Ï´Ù.
ºñÆ® 7 6 5 4 3 2 1 0
ÇÉ ¹øÈ£ PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
* ¦¼ö¹ø° LED¸¸ ÄÑÁö°Ô Çϱâ À̹ø¿£ ¹Ý´ë·Î ¦¼ö¹ø° LED¿¡¸¸ ºÒÀ» ÄѺ¾½Ã´Ù.
#include <avr/io.h> int main(void) { DDRA = 0xff; PORTA = 0b00001010; return 0; }
ÀÌó·³ Ȧ¼ö ¿¹Á¦¸¦ ¹Ý´ë·Î ÇÏ¸é µË´Ï´Ù. * LED¸¦ 1ÃÊ °£°ÝÀ¸·Î Á¡¸ê(Ä×´Ù ²°´Ù¸¦ ¹Ýº¹)ÇÏ°Ô Çϱâ À̹ø¿£ Á¶±Ý ´õ Àç¹Ì ÀÖ´Â ½Ç½ÀÀ» Çغ¾½Ã´Ù. ¹Ù·Î LED¸¦ Á¡¸êÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.
#define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { DDRA = 0xff; while(1) { PORTA = 0xff; _delay_ms(1000); PORTA = 0x00; _delay_ms(1000); } }
_delay_ms() ÇÔ¼ö´Â ³»ºÎÀûÀ¸·Î MCUÀÇ ¼Óµµ¸¦ ±â¹ÝÀ¸·Î ÇÏ¿© ½Ã°£À» °è»êÇÕ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ F_CPU¶ó´Â defineµÈ °ªÀ» ÀÌ¿ëÇÏ¿© MCUÀÇ ¼Óµµ¸¦ ¾Ë·ÁÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í _delay_ms() ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§¿£ delay.h¸¦ Æ÷ÇÔ½ÃÄÑÁÖ¾î¾ß ÇÕ´Ï´Ù. Çϳª ´õ, Âü°í·Î ÀÌ _delay_ms() ÇÔ¼ö´Â WinAVR ȯ°æ¿¡¼­¸¸ ÀÛµ¿ÇÕ´Ï´Ù. * http://bit.ly/Z7ElEt ÀÌó·³ Á¡¸êÇÏ´Â LED¸¦ º¸¸ç 'ÀÌÁ¦ ¹º°¡ µÇ¾î°¡°í ÀÖ±¸³ª'ÇÏ´Â »ý°¢ÀÌ µå½Ç °Ì´Ï´Ù. * ´Ù¼¸°³ÀÇ LED¸¦ ¿¬°áÇÏ¿© WAVE ¸¸µé±â LED Á¦¾î ¿¹Á¦¸¦ ÀÀ¿ëÇϸé Àç¹Ì ÀÖ´Â °ÍµéÀ» ¸¹ÀÌ ¸¸µé¾î º¼ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº LED¸¦ ÀÌ¿ëÇÏ¿© WAVE¸¦ ¸¸µé¾î º» ¿¹Á¦ÀÔ´Ï´Ù.
#define F_CPU 16000000UL #define SPEED 100 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRA = 0xff; while(1) { PORTA = 0b00000001; _delay_ms(SPEED); PORTA = 0b00000010; _delay_ms(SPEED); PORTA = 0b00000100; _delay_ms(SPEED); PORTA = 0b00001000; _delay_ms(SPEED); PORTA = 0b00010000; _delay_ms(SPEED); PORTA = 0b00001000; _delay_ms(SPEED); PORTA = 0b00000100; _delay_ms(SPEED); PORTA = 0b00000010; _delay_ms(SPEED); } }
* http://bit.ly/Vv3njD À̸¦ Á» ´õ ±ò²ûÇÑ ¼Ò½º·Î °íÄ¡¸é ´ÙÀ½°ú °°½À´Ï´Ù.
#define F_CPU 16000000UL #define SPEED 100 #include <avr/io.h> #include <util/delay.h> int main(void) { int value = 0b00000001, count = 0; DDRA = 0xff; while(1) { PORTA = value; _delay_ms(SPEED); if(count < 4) value = value << 1; else value = value >> 1; if(count++ == 7) count = 0; } }
ÀÌ·¸°ÔÇÏ¿© ¿©·¯°¡Áö ¹æ½ÄÀÇ LED Á¦¾î ½Ç½ÀÀ» Çغ¸¾Ò½À´Ï´Ù. À̸¦ ±â¹ÝÀ¸·Î °¢ÀÚ ÀÚ½ÅÀÇ ¾ÆÀ̵ð¾î¸¦ »ì·Á ¸ÚÁø LED show¸¦ ¸¸µé¾î º¸½Ã±â ¹Ù¶ø´Ï´Ù. [Å©¸®½º¸¶½º Æ®¸® ±¸Å¸]