BASIC4MCU | 질문게시판 | 답변 : 아두이노 코딩 재 질문 드립니다!
페이지 정보
작성자 master 작성일2019-05-28 15:30 조회3,146회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8914
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-28 오후 3:37:58// by Ok-Hyun Park//#include <Wire.h>//#define TRIG 3#define ECHO 4//int Buzzer=9,infrared=5;int pwm=7,dir=6; //모터//const int MPU=0x68; //MPU 6050 의 I2C 기본 주소int16_t GyX;float duration,distance;//void sonar_read(){digitalWrite(TRIG,1); delay(1); digitalWrite(TRIG,0);duration=pulseIn(ECHO,1); distance=((340*duration)/1000)/2;}//void mpu_read(){Wire.beginTransmission(MPU); Wire.write(0x3B); Wire.endTransmission(false); Wire.requestFrom(MPU,14,true);}//void motor_high(){ digitalWrite(Buzzer,1); analogWrite(pwm,255); digitalWrite(dir,1); }void motor_low (){ digitalWrite(Buzzer,0); analogWrite(pwm,255); digitalWrite(dir,0); }//void first(){mpu_read(); GyX=Wire.read()<<8|Wire.read(); Serial.print("|GyX="); Serial.print(GyX);//if(GyX>2500||GyX<-2500){motor_low(); delay(1000);analogWrite(pwm,0);do{ mpu_read(); }while(GyX>2500||GyX<-2500);}//sonar_read();//if(distance>150){motor_low(); delay(1000);analogWrite(pwm,0);do{ sonar_read(); }while(distance>150);}else{ motor_high(); delay(1000); }}//--------------------------------------------------------------void setup(){Wire.begin();Wire.beginTransmission(MPU); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true);pinMode(7,OUTPUT); pinMode(6,OUTPUT); //모터pinMode(TRIG,OUTPUT); pinMode(ECHO,INPUT);pinMode(infrared,INPUT); pinMode(Buzzer,OUTPUT);Serial.begin(9600);}//void loop(){int state=digitalRead(infrared);if(state==1){ first(); } //적외선 감지 xelse { motor_high(); }}
댓글 0
조회수 3,146등록된 댓글이 없습니다.