BASIC4MCU | 질문게시판 | 아두이노 카 질문드립니다( 초음파 센서 )
페이지 정보
작성자 신소연 작성일2018-12-05 13:49 조회3,501회 댓글0건본문
#include <IRremote.h>
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;int ENA = 5;
int ENB = 10;
int pinLB = 2; // defining pin2 left rear
int pinLF = 4; // defining pin4 left front
int pinRB = 7; // defining pin7 right rear
int pinRF = 8; // defining pin8 right front
void setup()
{
pinMode(pinLB, OUTPUT); // pin2
pinMode(pinLF, OUTPUT); // pin4
pinMode(pinRB, OUTPUT); // pin7
pinMode(pinRF, OUTPUT); // pin8
pinMode(ENA, OUTPUT); //
pinMode(ENB, OUTPUT); //
irrecv.enableIRIn(); // Start the receiver
Serial.begin(9600);
}
void loop()
{
if (irrecv.decode(&results)) {
int a = results.value;
Serial.println(a, HEX);
if (a == 0x629D) {
advance();
delay(3000);
stopp();
}
if (a == 0x22DD) {
turnL();
delay(400);
stopp();
}
if (a == 0xC23D) {
turnR();
delay(400);
stopp();
}
if (a == 0xA857) {
back();
delay(3000);
stopp();
}
if (a == 0x02FD) {
stopp();
delay(1000);
stopp();
}
if(a== 0x18E7) {
이부분입니다(초음파센서)
}
irrecv.resume(); // Receive the next value
}
}void advance() // going forward
{
digitalWrite(pinRB, LOW); // making motor move towards right rear
digitalWrite(pinRF, HIGH);
digitalWrite(pinLB, LOW); // making motor move towards left rear
digitalWrite(pinLF, HIGH);
analogWrite(ENA, 150);
analogWrite(ENB, 150);}
void turnL() //turning right(dual wheel)
{
digitalWrite(pinRB, LOW); //making motor move towards right rear
digitalWrite(pinRF, HIGH);
digitalWrite(pinLB, HIGH);
digitalWrite(pinLF, LOW); //making motor move towards left front
analogWrite(ENA, 150);
analogWrite(ENB, 150);
}
void turnR() //turning left(dual wheel)
{
digitalWrite(pinRB, HIGH);
digitalWrite(pinRF, LOW ); //making motor move towards right front
digitalWrite(pinLB, LOW); //making motor move towards left rear
digitalWrite(pinLF, HIGH);
analogWrite(ENA, 150);
analogWrite(ENB, 150);
}
void stopp() //stop
{
digitalWrite(pinRB, HIGH);
digitalWrite(pinRF, HIGH);
digitalWrite(pinLB, HIGH);
digitalWrite(pinLF, HIGH);
analogWrite(ENA, 150);
analogWrite(ENB, 150);
}
void back() //back up
{
digitalWrite(pinRB, HIGH); //making motor move towards right rear
digitalWrite(pinRF, LOW);
digitalWrite(pinLB, HIGH); //making motor move towards left rear
digitalWrite(pinLF, LOW);
analogWrite(ENA, 150);
analogWrite(ENB, 150);
}
리모콘으로 차가 상자안으로 직진해서(여기까지는 조종, 코드짠부분입니다)
거기서 초음파센서로 장애물을 인식하고 되돌아나와 자율주행하는 부분의 코드를 짜야하는데 버튼하나를 지정하라고 해서 저희는
5번(0x18E7)버튼으로 지정을했고 , 이 버튼을 누르면 초음파센서가 작동해서 출발지점으로 다시 되돌아 나오도록 해야하는것같습니다 .
어려움이 있어 자문을 구하고자 글씁니다~!
댓글 0
조회수 3,501등록된 댓글이 없습니다.