질문게시판 > 답변 : 아두이노 블루투스와 초음파센서를 이용한 장애물 정지

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : 아두이노 블루투스와 초음파센서를 이용한 장애물 정지

페이지 정보

작성자 master 작성일23-09-25 16:59 조회1,214회 댓글1건

본문

#include <SoftwareSerial.h>

#define BT_RXD 3

#define BT_TXD 4

SoftwareSerial bluetooth(BT_RXD,BT_TXD);

//

int R_1pin=8,R_2pin=9,R_Epin=5;

int L_3pin=10,L_4pin=11,L_Epin=6;

//

int L_Motor=0,L_Spd=185;

int R_Motor=0,R_Spd=160;

int mode=='s'; // 초기조건 정지

//

void setup(){

  pinMode(R_1pin,OUTPUT); pinMode(R_2pin,OUTPUT); pinMode(R_Epin,OUTPUT);

  pinMode(L_3pin,OUTPUT); pinMode(L_4pin,OUTPUT); pinMode(L_Epin,OUTPUT);

  Serial.begin(9600); Serial.println("Welcome Eduino!");

  bluetooth.begin(9600);

}

//

void loop(){

  if(bluetooth.available()){      

    char Blue_Val=bluetooth.read();

    Serial.print(Blue_Val);  

    if(Blue_val=='g'){ mode='g'; Go();         } // "g" 버튼,명령 : 전진

    if(Blue_val=='b'){ mode='b'; Back()();     } // "b" 버튼,명령 : 후진

    if(Blue_val=='r'){ mode='r'; R_role();     } // "r" 버튼,명령 : 우회전

    if(Blue_val=='l'){ mode='l'; L_role();     } // "l" 버튼,명령 : 좌회전

    if(Blue_val=='q'){ mode='q'; L_rotation(); } // "q" 버튼,명령 : 제자리 좌회전

    if(Blue_val=='w'){ mode='w'; R_rotation(); } // "w" 버튼,명령 : 제자리 우회전

    if(Blue_val=='s'){ mode='s'; Stop();       } // "s" 버튼,명령 : 정지

  }

  //---------------------------------------

  if(mode=='g'){ // 전진 시에만 거리체크

    if(Ultra_d<150){

      Serial.println("150 이하.");

      Motor(0,0); delay(1000); // 후진

      analogWrite(R_Epin,0); analogWrite(L_Epin,0); delay(200);

      mode='s'; // 정지

    }

  }

}

//

void Stop(){

   digitalWrite(R_1pin,1); digitalWrite(R_2pin,1); analogWrite(R_Epin,R_Spd);

   digitalWrite(L_3pin,1); digitalWrite(L_4pin,1); analogWrite(L_Epin,L_Spd);

}

void Go(){

   digitalWrite(R_1pin,1); digitalWrite(R_2pin,0); analogWrite(R_Epin,R_Spd);

   digitalWrite(L_3pin,1); digitalWrite(L_4pin,0); analogWrite(L_Epin,L_Spd);

}

void Back(){

   digitalWrite(R_1pin,0); digitalWrite(R_2pin,1); analogWrite(R_Epin,R_Spd);

   digitalWrite(L_3pin,0); digitalWrite(L_4pin,1); analogWrite(L_Epin,L_Spd);

}

void R_role(int R,int L){

   digitalWrite(R_1pin,1); digitalWrite(R_2pin,0); analogWrite(R_Epin,max(R_Spd*0.4,90));

   digitalWrite(L_3pin,0); digitalWrite(L_4pin,1); analogWrite(L_Epin,255);

}

void L_role(int R,int L){

   digitalWrite(R_1pin,0); digitalWrite(R_2pin,1); analogWrite(R_Epin,255);

   digitalWrite(L_3pin,1); digitalWrite(L_4pin,0); analogWrite(L_Epin,max(L_Spd*0.4,90));

}

 

void L_rotation(){

   digitalWrite(R_1pin,1); digitalWrite(R_2pin,0); analogWrite(R_Epin,R_Spd);

   digitalWrite(L_3pin,0); digitalWrite(L_4pin,1); analogWrite(L_Epin,L_Spd);

}

void R_rotation(){

   digitalWrite(R_1pin,0); digitalWrite(R_2pin,1); analogWrite(R_Epin,R_Spd);

   digitalWrite(L_3pin,1); digitalWrite(L_4pin,0); analogWrite(L_Epin,L_Spd);

}

 

 

거리센서가 뭔지 모르겠지만

  if(mode=='g'){ // 전진 시에만 거리체크

    // 여기에서 거리측정을 해야 합니다. 

    if(Ultra_d<150){


  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 1

조회수 : 1,214

둘둘이님의 댓글

둘둘이 작성일

아하 저기서 거리를 측전해야하는군요 한번 해보겠습니다 감사합니다 !

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[30] master  17-10-29
질문 분주비와 업/업다운 카운트 관련 질문 드립니다. 댓글[1] 412904  24-02-18
질문 stm32의 task 댓글[1] 라칸  24-02-07
질문 stm32에서 ping 같은걸 해볼수 있나요? 댓글[1] 라칸  24-01-23
질문 (초보)atmega128 led 제어 질문드립니다 댓글[1] aaa123  24-01-22
질문 UART 통신을 하는데 댓글[4] 라칸  24-01-10
질문 트랜지스터를 2개 쓰는이유 댓글[2] 첨부파일소정이  24-01-10
질문 ,아두이노 서보모터 블루투스 연결 댓글[4] 비누  23-12-22
질문 arduino 코드를 armega 128로 변환 댓글[1] 이모저모  23-12-20
질문 MTP 주소 지정 방법 댓글[1] adoui  23-12-19
질문 All-in-one air quality sensor Fosen  23-12-18
질문 Atmega128 PORTB에서 서보모터와 부저 사용 … ynbus  23-12-17
답변 답변 : Atmega128 PORTB에서 서보모터와 부… 댓글[1] master  23-12-17
질문 ATmega128에 MQ-3 센서를 사용하는 방법을 찾… 댓글[1] 첨부파일c언어초보  23-12-16
질문 3축 자이로센서로 진동값 계산하는 방법좀 댓글[1] 라칸  23-12-15
질문 avr codevision에 led 교차하면서 소리나게… 댓글[1] 주넘  23-12-14
질문 방금 글쓴 사람입니다! 댓글[5] 범뚱  23-12-14
질문 이 코드에서 절대 7세그먼트 디스플레이에 불이 들어오지… 댓글[2] 범뚱  23-12-14
질문 아두이노 라인트레이서 질문 있습니다. 99999  23-12-14
답변 답변 : 아두이노 라인트레이서 질문 있습니다. master  23-12-14
질문 우노는 되는데 메가가 안됩니다(초음파) 댓글[3] 초두이노  23-12-13
질문 atmega128 dht11 온도 센서 데이터출력 댓글[4] 재효김  23-12-13
질문 ATMega128a 사용한 디지털 시계 질문입니다. 댓글[3] 첨부파일moon99  23-12-13
질문 서보모터 드라이버 관련 질문입니다. 댓글[1] 뚱보개  23-12-13
질문 Atmega128 USART 질문입니다. 댓글[1] dnjsjj  23-12-13
질문 codevision avr atmega128a 사용중입… 범뚱  23-12-12
답변 답변 : codevision avr atmega128a… master  23-12-13
질문 아두이노 주파수 변경하는법 댓글[1] 파란하늘  23-12-12
질문 atmega 128 timer interrupt에 관한… atmemem  23-12-12
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전