Á¦¸ñ RE: FB155BC ½½·¹À̺ê(atmega8)¿Í ¸¶½ºÅÍ(arduino uno) °£ Åë½Å Áú¹®ÀÔ´Ï´Ù.
ÀÛ¼ºÀÚ firmtech7
À̸ÞÀÏ
ÀÛ¼ºÀÏÀÚ 2017-10-30
Á¶È¸¼ö 10642
Ãßõ¼ö 2818
¾È³çÇÏ½Ê´Ï±î ÆßÅ×Å© ÀÔ´Ï´Ù.
 
´ç»ç Á¦Ç° »ç¿ë½Ã ¹®ÀÇ»çÇ׿¡ ´ëÇÑ Áú¹® ´äº¯À» ÇØµå¸®Áö¸¸ »ç¿ëÀÚ²²¼­ ±¸¼ºÇϽŠÄڵ忡 ´ëÇÑ ´äº¯À» ÇØµå¸®±â¿¡´Â ¾î·Á¿îÁ¡ÀÌ ÀÖ½À´Ï´Ù. ÀÌÁ¡ ¾çÇØ ºÎŹ µå¸³´Ï´Ù.
 
°¨»çÇÕ´Ï´Ù.
ÁÁÀº ÇÏ·ç º¸³»¼¼¿ä.


------- ¿øº» ³»¿ë ---------


atmega8 °ú atmega16 »çÀÌ ¹«¼±Åë½ÅÀ» Çϰí ÀÖ½À´Ï´Ù.
UDRÀÌ atmega16¿¡¼­ ºí·çÅõ½º ¹«¼±Åë½ÅÀ¸·Î atmega8·Î °¡¼­ ±×¿¡ ¸Â´Â ÇൿÀ» ÇÏ°Ô ÇÏ´Â ÄÚµåÀε¥
atmega16ÀÌ ¾Æ´Ñ arduino uno ÄÁÆ®·Ñ·¯¿Í atmgea8 ·Îº¿ °£ ºí·çÅõ½ºÅë½ÅÀ» À§Çؼ­ ¶È°°ÀÌ UDRÀ̶ó´Â µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í ½ÍÀºµ¥ ·Îº¿ÀÌ ÀÛµ¿À» ÇÏÁö ¾Ê½À´Ï´Ù.. ÄÚµå»ó ¾î¶²°ÍÀÌ ¹®Á¦ÀÎÁö ¾Ë ¼ö ÀÖÀ»±î¿ä?


//atmega16
#include
#include
#define Button_f 0xfd
#define Button_b 0xfe
#define Button_l 0xfb
#define Button_r 0xf7
#define Button_fl 0xfd&0xfb
#define Button_fr 0xfd&0xf7
#define Button_LU 0xed
#define Button_LD 0xee
#define Button_RU 0xeb
#define Button_RD 0xe7


void putch(unsigned char data)//¼Û½Å -> UDRÀÌ atmega8
{
     while(!(UCSRA & 0x20));
     UDR=data;
     UCSRA|=0x20;
}

void main(void)
{
PORTA=0xff;
DDRA=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
SFIOR=0x00;
while (1)
      {        
            switch(PINA)
            {
            //¹öư ÇѰ³
            case Button_f : putch(Button_f); delay_ms(5); break; 
            case Button_b : putch(Button_b); delay_ms(5); break;
            case Button_l : putch(Button_l); delay_ms(5); break;
            case Button_r : putch(Button_r); delay_ms(5); break;
            //¹öư µÎ°³
            case Button_fr : putch(Button_fr); delay_ms(5); break;
            case Button_fl : putch(Button_fl); delay_ms(5);break;
            //¸ðÅͼӵµ º¯°æ ½Ã±×³Î
            case Button_LU : putch(Button_LU); while(PINA!=0xef){}; break;
            case Button_LD : putch(Button_LD); while(PINA!=0xef){}; break;
            case Button_RU : putch(Button_RU); while(PINA!=0xef){}; break;
            case Button_RD : putch(Button_RD); while(PINA!=0xef){}; break;
            default : putch('?'); break;
            }                  
      }
}


//arduino uno
#include
SoftwareSerial btSerial(A0, A1); // RX, TX
unsigned int ctl;
unsigned char UDR;
void setup()
{
  Serial.begin(9600);
  Serial.println("Bt Shield Test Started!");
  btSerial.begin(9600);
}
void checkDirection()
{
  unsigned int Direction_FR = analogRead(A4); // Joystick backward(0) to forward(1023)
  unsigned int Direction_LR = analogRead(A5); // Joystick left(0) to right(1023)
 
  if(Direction_FR > 800){
    ctl=1;
    UDR='Button_f';
    }
  else if(Direction_FR < 200){
    ctl=2;
    UDR='Button_r';
    }
  else if(Direction_LR > 800){
    ctl=4;
    UDR='Button_r';
    }
  else if(Direction_LR < 200){
    ctl=3;
    UDR='Button_l';
    }
  else if(Direction_FR>=200 && Direction_FR<=800 && Direction_LR>=200 && Direction_LR<=800){
    UDR='Button_f';
    }
}


void loop() {
  checkDirection();
  if(btSerial.available())
    Serial.write(btSerial.read());
  if(Serial.available())
    btSerial.write(Serial.read());
  switch(ctl)
  {
    case 1:
    btSerial.write(UDR);
    delay(5);
    break;
    case 2:
    btSerial.write(UDR);
    delay(5);
    break;
    case 3:
    btSerial.write(UDR);
    delay(5);
    break;
    case 4:
    btSerial.write(UDR);
    delay(5);
    break;
    }
}
IP ..xxx.xxx
À̸§ ºñ¹Ð¹øÈ£
¡Ø ÇÑ±Û 1000ÀÚ ±îÁö¸¸ ÀԷ°¡´É : ÀÚ