코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
블루투스 , 초음파 이용한 2륜 rc카 질문합니다.
didtdjwns111 | 2018-12-03
|
|
---|---|
블루투스로 2륜 rc카를 조종하는데 앞으로 가다가 전방에 장애물이 있으면 옆으로 회전하게끔 해서 작동할려고 밑에 이렇게 짜는데 약 2가지 문제가 있더라구요 1. 속도를 바꿔도 양쪽 바퀴가 속도가 안맞아요
2. 틈틈히 블루투스 연결이 끊겨요
해결방안좀 알려주세요 ㅠㅠ
#include <SoftwareSerial.h>
SoftwareSerial BLUE( 2, 3); // RX, TX
int trig = 6;
int echo = 5;
const int AIA = 10;
const int AIB = 9;
const int BIA = 7;
const int BIB = 8;
byte Aspeed = 250;
byte Bspeed = 150;
void setup() {
Serial.begin(9600);
Serial.println("Serial start");
BLUE.begin(9600);
Serial.println("Also BLUE start");
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
}
void loop() {
digitalWrite(trig,HIGH);
delay(100);
digitalWrite(trig,LOW);
float duration, cm;
duration = pulseIn(echo, HIGH);
cm = ((float)(340 * duration) / 10000) / 2;
Serial.println(cm);
if (cm < 15) {
analogWrite(AIA, 0); analogWrite(AIB, 0);
analogWrite(BIA, 0); analogWrite(BIB, 0);
delay(200);
analogWrite(AIA, Aspeed); analogWrite(AIB, 0);
analogWrite(BIA, 0); analogWrite(BIB, Bspeed);
delay(420);
analogWrite(AIA, 0); analogWrite(AIB, 0);
analogWrite(BIA, 0); analogWrite(BIB, 0);
}
else {
if (BLUE.available()) {
char a = BLUE.read();
Serial.write(a);
switch (a) {
case 'f':
analogWrite(AIA, Aspeed); analogWrite(AIB, 0);
analogWrite(BIA, Bspeed); analogWrite(BIB, 0);
break;
case 'b':
analogWrite(AIA, 0); analogWrite(AIB, Aspeed);
analogWrite(BIA, 0); analogWrite(BIB, Bspeed);
break;
case 'l':
analogWrite(AIA, Aspeed); analogWrite(AIB, 0);
analogWrite(BIA, 0); analogWrite(BIB, Bspeed);
break;
case 'r':
analogWrite(AIA, 0); analogWrite(AIB, Aspeed);
analogWrite(BIA, Bspeed); analogWrite(BIB, 0);
break;
case 's':
analogWrite(AIA, 0); analogWrite(AIB, 0);
analogWrite(BIA, 0); analogWrite(BIB, 0);
break;
}
delay(500);
}
}
|
|
이전글 | 도난방지 프로젝트 앱 질문 합니다.. | 2018-12-02 |
다음글 | irremote.h와 servo.h, tone함수를 같이 쓸수 있는 방법이 있나요?... | 2018-12-04 |