아두이노 rc카 키트를 구매하여 제작중입니다!
우선 소스코드는
#include <SoftwareSerial.h>
SoftwareSerial mySerial(4,5);
int speedPinA = 3;
int speedPinB = 9;
int dir1PinA = 6;
int dir2PinA = 7;
int dir1PinB = 10;
int dir2PinB = 11;
byte incomingByte;
int speed_value_motorA;
int speed_value_motorB;
void setup () {
mySerial.begin(9600);
pinMode(speedPinA,OUTPUT);
pinMode(speedPinB,OUTPUT);
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, LOW);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, LOW);
}
void loop() {
speed_value_motorA = 255;
speed_value_motorB = 255;
analogWrite(speedPinA, speed_value_motorA);
analogWrite(speedPinB, speed_value_motorB);
if (mySerial.available() > 0)
{
incomingByte = mySerial.read();
if (incomingByte == 'a')
{
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, LOW);
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
}
if (incomingByte == 'd')
{
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, LOW);
}
if (incomingByte == 's')
{digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, LOW);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, LOW);
}
if (incomingByte == 'w')
{
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, HIGH);
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
}
if (incomingByte == 'x')
{
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
}
}
}
이렇게 구성되어있습니다.
블루투스 페어링을 위해서 시리얼포트에 9600 보드 레이트로 설정하고 no line ending을 설정뒤에
AT라는 문자를 전송해 보았지만 OK라는말이 안뜨고 AT문자만 사라집니다ㅠㅠ
혹시 코드에 잘못된점이 있는지 블루투스 칩의 문제인지 알고 싶습니다!
조언 부탁드립니다. 감사합니다!!
|