|
½ºÅܸðÅÍÁ¦¾î(PWMÁ¦¾î) |
|||||
ÇнÀ¸ñÇ¥ |
||||||
AVR¿¡¼ PWM ÆÞ½º¸¦ ¸¸µé¾î ½ºÅܸðÅÍÀÇ ¼Óµµ¸¦ Á¦¾îÇÑ´Ù. |
||||||
ÇнÀÁÖÁ¦ |
||||||
|
||||||
¿ÀÅä´Ð½ºÀÇ ½ºÅܸðÅÍ¿Í µå¶óÀ̹ö¸¦ AVR°ú ¿¬°áÇÏ¿© À̸¦ Á¦¾îÇÑ´Ù. »ç¿ë±â±â : ¸ðÅ͵å¶óÀ̹ö(¿ÀÅä´Ð½ºKR55M), ½ºÅܸðÅÍ(¿ÀÅä´Ð½º02K-S523) ¿À¸¥ÂÊ ±×¸²°ú °°ÀÌ Hz¿Í dutyÀÇ °ªÀ» °¡Áö°í ÆÞ½º¸¦ ¹ß»ý½ÃÄÑ ¸ðÅ͸¦ µ¿ÀÛ ½ÃŲ´Ù. |
|
|||||
¿¹½À³»¿ë |
||||||
ŸÀ̸Ó1¿¡ ÀÇÇÑ PWM ÆÞ½º ¸¸µé±â |
||||||
½Ç½À¹æ¹ý |
||||||
¸ñ Â÷ |
||||||
¾Æ·¡¿Í °°ÀÌ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù. |
||||||
|
|
|
||||
»õ·Î¿î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù. |
|
Åë½ÅÀ» À§ÇÑ RS232 Rx, Tx ÀÎÅÍ·´Æ®¸¦ ¼³Á¤ÇÑ´Ù. |
||||
|
|
|
||||
B Æ÷Æ®¸¦ Ãâ·ÂÀ¸·Î ¼³Á¤ÇÑ´Ù. |
Timer1À» »ç¿ëÇÑ PWMÀ» ¼³Á¤ÇÑ´Ù. |
|
||||
¸ðÅÍÀÇ È¸Àü¼Óµµ¸¦ Á¦¾îÇÑ´Ù. |
||||||
|
¿¹Á¦1 hz, duty ÆÞ½ºÀÇ ÁÖ±â¿Í µàƼºñ(%)¸¦ Á¦¾îÇÏ´Â AVR ÇÁ·Î±×·¥ |
|
||||
|
unsigned int duty,period,hz,duty100; TCCR1A=0x21; TCCR1B=0x13; TCCR1C=0x00; hz=3000; duty100=5; period=(int)(125000/hz); duty = (int)(period*duty100/100); OCR1AH = (period>>8); OCR1AL = period & 0xff; OCR1BH = (duty>>8); OCR1BL = duty & 0xff; //PORTB.2=1; //ȸÀü¹æÇâ ¼³Á¤ 0=CCW 1=CW |
|
||||
|
CW- ¹æÇâÀº PORTB.2=1; ·Î ÇÑ´Ù. |
|
||||
|
||||||
|
¿¹Á¦2 PC¿¡¼ ½ÅÈ£ ¹Þ¾Æ ½ºÅܸðÅÍ µ¿ÀÛ AVR ÇÁ·Î±×·¥ [¼Ò½º ÇÁ·Î±×·¥ ³»·Á¹Þ±â] |
|
||||
|
if(receive==1) { if(rx_buffer0[1]==0x30) TCCR1B=0x15; // 1024ºÐÁÖ else if(rx_buffer0[1]==0x31) TCCR1B=0x14; // 256ºÐÁÖ else if(rx_buffer0[1]==0x32) TCCR1B=0x13; // 64ºÐÁÖ else if(rx_buffer0[1]==0x33) TCCR1B=0x12; // 8ºÐÁÖ
OCR1AH = rx_buffer0[2]; OCR1AL = rx_buffer0[3]; OCR1BH = rx_buffer0[4]; OCR1BL = rx_buffer0[5];
if(rx_buffer0[6]==0x30) PORTB.2=1; //ȸÀü¹æÇâ ¼³Á¤ 0=CCW 1=CW else if(rx_buffer0[6]==0x31) TCCR1B=0x10; else if(rx_buffer0[6]==0x32) PORTB.2=0; //ȸÀü¹æÇâ ¼³Á¤ 0=CCW 1=CW
receive=0; } |
|
||||
|
PC ÇÁ·Î±×·¥ [¼Ò½º ÇÁ·Î±×·¥ ³»·Á¹Þ±â] |
|
||||
|
||||||
°ú Á¦ |
||||||
¿øÇÏ´Â °¢µµ¸¸Å ȸÀüÇÏ´Â ³ëºê¸¦ Çϳª Ãß°¡ÇÑ´Ù. PCÇÁ·Î±×·¥¿¡ [°¢µµ] ³ëºê¸¦ Çϳª ´õ Ãß°¡ÇÏ°í ³ëºê¸¦ ¿òÁ÷ÀÓ¿¡ µû¶ó ½ºÅܸðÅͰ¡ ȸÀüÇϵµ·Ï ÇÑ´Ù. [ÈùÆ®] rx_buffer0[1]=0x34 ÀÏ ¶§´Â °¢µµ¿¡ ÀÇÇØ ȸÀüÇϵµ·ÏÇÑ´Ù. rx_buffer0[2]¿¡´Â ȸÀü°¢ÀÇ µ¥ÀÌÅÍ·Î »ç¿ëÇÑ´Ù. ÀÌ µ¥ÀÌÅÍ´Â 8ºñÆ®(1~255) À̹ǷΠÇÁ·Î±×·¥À» ½±°Ô ÇϱâÀ§Çؼ 0~255µµ ±îÁö¸¸ ȸÀüÇϵµ·Ï ÇÏÀÚ. rx_buffer0[3], rx_buffer0[4], rx_buffer0[5]´Â »ç¿ëÇÏÁö ¾Ê°í ³ª¸ÓÁö µ¥ÀÌÅÍ´Â ±×´ë·Î »ç¿ëÇÑ´Ù. AVR ÇÁ·Î±×·¥µµ Àú¹ø ÁÖÀÇ ÇÁ·Î±×·¥À» ÂüÁ¶ÇÏ¿© ÇÁ·Î±×·¥À» ¼öÁ¤ÇÑ´Ù. |
||||||