BASIC4MCU | 질문게시판 | 답변 : 아두이노 초음파센서 질문입니다.
페이지 정보
작성자 master 작성일2018-12-08 17:21 조회4,641회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6558
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-08 오후 5:27:11// by Ok-Hyun Park////#include <SoftwareSerial.h>//#define LEFT_A1 4 //왼쪽 바퀴#define LEFT_B1 5 //왼쪽 바퀴#define RIGHT_A2 6 //오른쪽 바퀴#define RIGHT_B2 7 //오른쪽 바퀴//초음파 센서 PIN 설정#define IR_TRIG 9 //TRIG 핀 설정(초음파 보내는 핀)#define IR_ECHO 8 //ECHO 핀 설정(반사된 초음파 받는 핀)#define IR_TRIG1 13 //TRIG 핀 설정(초음파 보내는 핀)#define IR_ECHO1 12 //ECHO 핀 설정(반사된 초음파 받는 핀)//모터속도 조정PIN설정int led=10; // PWM출력 가능(~)포트에 LED연결int led1=11; // PWM출력 가능(~)포트에 LED연결int brightness=0; // PWM의+duty 값int fadeAmount=5; //+duty의 증감값//void setup(){Serial.begin(9600); //시리얼모니터//pinMode(LEFT_A1,OUTPUT); pinMode(LEFT_B1,OUTPUT);pinMode(RIGHT_A2,OUTPUT); pinMode(RIGHT_B2,OUTPUT);//pinMode(IR_TRIG,OUTPUT); pinMode(IR_ECHO,INPUT);pinMode(IR_TRIG1,OUTPUT); pinMode(IR_ECHO1,INPUT);//PWMpinMode(led,OUTPUT); // 10번핀 출력 설정pinMode(led1,OUTPUT); // 11번핀 출력 설정}//void loop(){delay(15);digitalWrite(IR_TRIG,1); delay(10); digitalWrite(IR_TRIG,0);float distance1=pulseIn(IR_ECHO,1)/58.2; Serial.print("\ndistance1: "); Serial.println(distance1);//delay(15);digitalWrite(IR_TRIG1,1); delay(10); digitalWrite(IR_TRIG1,0);float distance2=pulseIn(IR_ECHO1,1)/58.2; Serial.print("\ndistance2: "); Serial.println(distance2);//if(distance1<15){ //장애물 감지(15cm 이내)stop(); delay(100);backward(); delay(500); stop(); delay(100);leftTurn(); delay(500); stop(); delay(100);forward3();}else{ //장애물 없음if (distance2>10){ Serial.println("forward0"); forward0(); delay(100); }else if(distance2> 6){ Serial.println("forward2"); forward2(); delay(100); }else if(distance2> 2){ Serial.println("forward3"); forward3(); delay(100); }}//brightness+=fadeAmount;if(brightness==0||brightness==255){ fadeAmount=-fadeAmount; }analogWrite(led,brightness);}//-----------------------------------------------void backward(){analogWrite(10,255); digitalWrite(LEFT_A1,0); digitalWrite(LEFT_B1,1);analogWrite(11,255); digitalWrite(RIGHT_A2,0); digitalWrite(RIGHT_B2,1);}//void leftTurn(){analogWrite(10,255); digitalWrite(LEFT_A1,0); digitalWrite(LEFT_B1,1);analogWrite(11,255); digitalWrite(RIGHT_A2,1); digitalWrite(RIGHT_B2,0);}//void forward0(){analogWrite(10,255); digitalWrite(LEFT_A1,1); digitalWrite(LEFT_B1,0);analogWrite(11,255); digitalWrite(RIGHT_A2,1); digitalWrite(RIGHT_B2,0);delay(100);}//void forward2(){analogWrite(10,127); digitalWrite(LEFT_A1,1); digitalWrite(LEFT_B1,0);analogWrite(11,127); digitalWrite(RIGHT_A2,1); digitalWrite(RIGHT_B2,0);delay(100);}//void forward3(){analogWrite(10,100); digitalWrite(LEFT_A1,1); digitalWrite(LEFT_B1,1);analogWrite(11,100); digitalWrite(RIGHT_A2,0); digitalWrite(RIGHT_B2,0);delay(100);}//void forward4(){digitalWrite(LEFT_A1,1); digitalWrite(LEFT_B1,0);digitalWrite(RIGHT_A2,1); digitalWrite(RIGHT_B2,0);}//void stop(){digitalWrite(LEFT_A1,0); digitalWrite(LEFT_B1,0);digitalWrite(RIGHT_A2,0); digitalWrite(RIGHT_B2,0);delay(100);}
댓글 0
조회수 4,641등록된 댓글이 없습니다.