完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.行动的代码
#ifndef _XINGDONG_H_ #define _XINGDONG_H_ #include class movecar { public: pinjiao(char MODE);//定义模式 void moves(char modes) ; int getPin();//取得pin口 void setPin(int userPin);//设置pin口 private: int footPin = 2 ; }; class Pwmval:public movecar//定义子类 { public: int getPwmVal();//获得pwm口 pwmkaiguan(int pin1); void pwmjiao(int pin ); void pwmmoshi(int pwmVal); private: int pwmVal = 0;//定义口 }; #endif #include"xingdong.h" void mfootPin = userPin; } int movecar::getPin()//获得pin口 { return footPin; } movecar::pinjiao(char MODE)//设置pin脚 { pinMode(getPin(),MODE); } void movecar::moves(char modes) { digitalWrite(getPin(),modes); } Pwmval::pwmkaiguan(int pin1)//选择口打开 { pinMode(pin1,OUTPUT); } void Pwmval::pwmjiao(int pin )//控制调速口开关 { digitalWrite(pin,HIGH); } void Pwmval::pwmmoshi(int userpwm)//第一个调速 { pwmVal=userpwm; analogWrite(getPin(),pwmVal); } int Pwmval::getPwmVal(){ return pwmVal; } 2.避障的代码。 #include"xingdong.h" void movecar::setPin(int userPin)//设置pin口 { footPin = userPin; } int movecar::getPin()//获得pin口 { return footPin; } movecar::pinjiao(char MODE)//设置pin脚 { pinMode(getPin(),MODE); } void movecar::moves(char modes) { digitalWrite(getPin(),modes); } Pwmval::pwmkaiguan(int pin1)//选择口打开 { pinMode(pin1,OUTPUT); } void Pwmval::pwmjiao(int pin )//控制调速口开关 { digitalWrite(pin,HIGH); } void Pwmval::pwmmoshi(int userpwm)//第一个调速 { pwmVal=userpwm; analogWrite(getPin(),pwmVal); } int Pwmval::getPwmVal(){ return pwmVal; } #include"bizhang.h" void bizhang::setPin(int userPin)//设置避障口 { bizhangkou = userPin; } int bizhang::getPin()//获得避障口 { return bizhangkou;} bizhang::bizhang1pin(int Pin)//选择模式 { pinMode(Pin,INPUT); } int bizhang::fanshe() { int jieguo=digitalRead(getPin()); return jieguo; } void bizhang::bizhang1(char modes)//启动口 { digitalWrite(getPin(),modes); } 3.主代码 #include #include #include int tx = 12;//蓝牙write int rx = 13;//蓝牙read SoftwareSerial BTserial(rx,tx);//设置串口输入输出引脚 bizhang mybizhangLeft;//定义两个反射模块名字 bizhang mybizhangRight;// Pwmval myPwmval1;//定义四个pwm名字 Pwmval myPwmval2;// Pwmval myPwmval3;// Pwmval myPwmval4;// void zuohouzhuan() { myPwmval1.moves(HIGH);//定义第一个是开或关。 myPwmval2.moves(LOW);//定义第二个是开或关。 myPwmval1.pwmmoshi(80); myPwmval2.pwmmoshi(0); myPwmval3.moves(LOW);//定义第三个是开或关。 myPwmval4.moves(HIGH);//定义第四个是开或关。 myPwmval3.pwmmoshi(0); myPwmval4.pwmmoshi(250); delayMicroseconds(1000000); } void youhouzhuan() { myPwmval1.moves(LOW);//定义第一个是开或关。 myPwmval2.moves(HIGH);//定义第二个是开或关。 myPwmval1.pwmmoshi(0); myPwmval2.pwmmoshi(250); myPwmval3.moves(HIGH);//定义第三个是开或关。 myPwmval4.moves(LOW);//定义第四个是开或关。 myPwmval3.pwmmoshi(80); myPwmval4.pwmmoshi(0); delayMicroseconds(1000000); } void zuoganzhi() { zuohouzhuan(); } void youganzhi(){ youhouzhuan(); } void setup() { mybizhangLeft.setPin(11);//设置引脚打开 mybizhangRight.setPin(7);// myPwmval1.setPin(10);//设置引脚* myPwmval2.setPin(5); myPwmval3.setPin(6); myPwmval4.setPin(9); myPwmval1.pinjiao(OUTPUT);//输入左一引脚,选择开或关。* myPwmval2.pinjiao(OUTPUT);//左二 myPwmval3.pinjiao(OUTPUT);//右一 myPwmval4.pinjiao(OUTPUT);//右二 myPwmval3.pwmkaiguan(8);//开关口 myPwmval4.pwmkaiguan(8);// myPwmval1.pwmkaiguan(4);// myPwmval2.pwmkaiguan(4);// myPwmval1.pwmjiao(4);//左调速 myPwmval2.pwmjiao(4);//左调速 myPwmval3.pwmjiao(8);//右调速 myPwmval4.pwmjiao(8);//右调速 BTserial.println("hc_06 is started"); BTserial.begin(9600);//蓝牙串口设置 delay(200);//延时200ms之后再行动 Serial.begin(9600);//串口设置 } void qianjin(int ti) { myPwmval1.moves(HIGH);//定义第一个是开或关。 myPwmval2.moves(LOW);//定义第二个是开或关。 myPwmval1.pwmmoshi(250); myPwmval2.pwmmoshi(0); myPwmval3.moves(HIGH);//定义第三个是开或关。 myPwmval4.moves(LOW);//定义第四个是开或关。 myPwmval3.pwmmoshi(250); myPwmval4.pwmmoshi(0); delay(ti*1000); } void houtui(int ti) { myPwmval1.moves(LOW);//定义第一个是开或关。 myPwmval2.moves(HIGH);//定义第二个是开或关。 myPwmval1.pwmmoshi(0); myPwmval2.pwmmoshi(250); myPwmval3.moves(LOW);//定义第三个是开或关。 myPwmval4.moves(HIGH);//定义第四个是开或关。 myPwmval3.pwmmoshi(0); myPwmval4.pwmmoshi(250); delay(ti*1000); } void zuoqianzhuan(int ti) { myPwmval1.moves(LOW);//定义第一个是开或关。 myPwmval2.moves(HIGH);//定义第二个是开或关。 myPwmval1.pwmmoshi(0); myPwmval2.pwmmoshi(80); myPwmval3.moves(HIGH);//定义第三个是开或关。 myPwmval4.moves(LOW);//定义第四个是开或关。myPwmval3.pwmmoshi(250); myPwmval4.pwmmoshi(0); delay(ti*1000); } void youqianzhuan(int ti) { myPwmval1.moves(HIGH);//定义第一个是开或关。 myPwmval2.moves(LOW);//定义第二个是开或关。 myPwmval1.pwmmoshi(250); myPwmval2.pwmmoshi(0); myPwmval3.moves(LOW);//定义第三个是开或关。 myPwmval4.moves(HIGH);//定义第四个是开或关。 myPwmval3.pwmmoshi(0); myPwmval4.pwmmoshi(80); delay(ti*1000); } void tingzhi(int ti) { myPwmval1.moves(LOW);//定义第一个是开或关。 myPwmval2.moves(LOW);//定义第二个是开或关。 myPwmval1.pwmmoshi(0); myPwmval2.pwmmoshi(0); myPwmval3.moves(LOW);//定义第三个是开或关。 myPwmval4.moves(LOW);//定义第四个是开或关。 myPwmval3.pwmmoshi(0); myPwmval4.pwmmoshi(0); delay(ti*1000); } void bizhangmove()//定义避障函数 { int s=1; while(s==1) { qianjin(); attachInterrupt(digitalPinToInterrupt(2),zuoganzhi,FALLING); attachInterrupt(digitalPinToInterrupt(3),youganzhi,FALLING); while(BTserial.available()>0) s=0; } } void loop() { char mode; mode=BTserial.read(); switch(mode) { case'1':qianjin(1);break; case'2':zuoqianzhuan(2);break; case'3':houtui(1);break; case'4':youqianzhuan(1);break; case'5':tingzhi(1);break; case'6':bizhangmove();break; } } 使用arduino编译程序时无法完成,(我是新手) 希望各位帮帮我 |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
PD诱骗取电芯片_PD_Sink端芯片之XSP05实战应用电路
1924 浏览 1 评论
BLDC、PMSM电机智能栅极驱动芯片之TMC6140知识分享
720 浏览 0 评论
国产电源芯片DP4054 软硬件兼容TP4054 规格书资料
1233 浏览 0 评论
2835 浏览 3 评论
1304 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 14:18 , Processed in 0.715349 second(s), Total 67, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号