아두이노 블루투스 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