정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 블루투스 RC카
배상현 | 2015-11-27

아두이노 블루투스 RC카 를 만들려고하는데

소스는 완성을 했는데 

회로 구성을 어떻게 해야될지 모르겠습니다. 

IC는 L293B 쓰는데 IC에 몇번을 몰꼽아야하는지 모르겠습니다. 소스 보고 좀 도와주세요 

 

#include <Servo.h>
#include <SoftwareSerial.h>
int relayPin = 12;
SoftwareSerial bluetooth(2,3);
int servoPin = 9; 

Servo servo;
 int angle=60;
 int speedR=0;
 int speedL=0;
 
 
void setup()
{
  servo.attach(servoPin);
  Serial.begin(9600);
  bluetooth.begin(9600);
  
  pinMode(relayPin,OUTPUT);
  digitalWrite(relayPin,HIGH);
}
 
void loop()
{
   if(bluetooth.available())
   {
     char data = bluetooth.read();
     
     
     if(data == 'X')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 0);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 0);
     }

     if(data == '1')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 255);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 175);
     }
     if(data == '2')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 255);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 255);
     }
     if(data == '3')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 175);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 255);
     }
     if(data == '4')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 255);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 0);
     }
     if(data == '5')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 0);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 0);
     }
     if(data == '6')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 0);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 255);
     }
     if(data == '7')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, HIGH);
       analogWrite(6, 0);
       digitalWrite(13, HIGH);
       digitalWrite(12, LOW);
       analogWrite(11, 0);
     }
     if(data == '8')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, HIGH);
       analogWrite(6, 0);
       digitalWrite(13, HIGH);
       digitalWrite(12, HIGH);
       analogWrite(11, 0);
     }
     
     if(data == '9')
     {
       Serial.write("x");
       speedR=0;
       speedL=0;
       digitalWrite(4, HIGH);
       digitalWrite(7, LOW);
       analogWrite(6, 0);
       digitalWrite(13, HIGH);
       digitalWrite(12, HIGH);
       analogWrite(11, 0);
     }
     
     

 

     
      
      


     
     
     
    
    
    
    //servo
    
     if(data=='R')
    {
      if(angle<100)
    {
      angle = angle+15;
      servo.write(angle); 
     
    } 
     
    }
    
    
    
    if(data=='L')
    {
      
     if(angle>20)
    {
      angle = angle-15;
      servo.write(angle); 
     
    }
     
     
    }
    
    
   
     
}
   
}

프로필사진

Klant 2015-11-30 08:59:39

안녕하세요!

현재 L293B를 활용해 모터를 제어하고자 하시는데  L293B와 모터를 어떻게 연결해야 하는지 질문을 남겨주신 것 같네요. 

 

 

위 사진은  L293B에 하나의 모터를 연결한 모습입니다. 2개의 모터는  L293B의 핀 배열을 참고해 같은 방법으로 연결해 주시면 될 것 같네요.

아래 사진은 L293B의 핀 배열입니다.

 

아두이노의 9번핀은 L293B의 1번 핀(chip enable)에 연결되어 모터의 속도를 제어합니다.(PWM 핀과 연결해주셔야 겠죠?)

아두이노의 10번, 11번 핀은 각 각 L293B의 2번과 7번(input)에 연결해 모터의 방향을 제어합니다. 

모터는 L293B의 3번, 6번(output)에 연결해주시면 되구요.

1번에 LED를 연결한 것은 다이오드 대용으로 연결한 것이구요.

 

자세한 내용은 다음 링크를 참고해보시면 될 것 같습니다.

http://blog.naver.com/3dalls/220087938922

이전글   |    FND 7세그먼트를 이용한 스탑워치 만들기 소스에 대해 질문드립니다. ㅠㅠㅠ... 2015-11-27
다음글   |    오렌지보드 BLE와 안드로이드 연동 질문입니다.... 2015-12-01