本帖最后由 学员 于 2016-3-1 10:00 编辑
本人手头有Arduino uno r3、L298N电机驱动模块(直流六光耦全隔离)、HC-05主从机一体蓝牙模块、24V直流小型主轴电机40W想拿来蓝牙遥控车,但是不知道怎么写代码,有哪位大神给指点一二?(以下是蓝牙小车代码有带增减速的)
- char getstr;
- int in1=3;
- int in2=4;
- int in3=7;
- int in4=8;
- int n=0;
- int inEN1=9;
- int inEN2=10;
- //上面定义了板上的4个控制端,1、2一组,3、4一组
- void _mRight(int pin1,int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
- {
- digitalWrite(pin1,HIGH);
- digitalWrite(pin2,LOW);
- }
- void _mLeft(int pin1,int pin2)//同上
- {
- digitalWrite(pin1,LOW);
- digitalWrite(pin2,HIGH);
- }
- void _mStop(int pin1,int pin2)//紧急制动,实际就是将电机两个端短接了
- {
- digitalWrite(pin1,HIGH);
- digitalWrite(pin2,HIGH);
- }
- void setup()
- {
- Serial.begin(9600);
- pinMode(in1,OUTPUT);
- pinMode(in2,OUTPUT);
- pinMode(in3,OUTPUT);
- pinMode(in4,OUTPUT);
- pinMode(inEN1,OUTPUT);
- pinMode(inEN2,OUTPUT);
- //下面程序开始时让控制端都为高电平,电机保持不动。
- digitalWrite(in1,HIGH);
- digitalWrite(in2,HIGH);
- digitalWrite(in3,HIGH);
- digitalWrite(in4,HIGH);
- }
-
- void loop()
- {
- getstr=Serial.read();
- if(getstr=='8')
- {
- Serial.println("go forward!");
- _mStop(in1,in2);
- _mStop(in3,in4);
- _mRight(in1,in2);
- _mRight(in3,in4);
- }
- else if(getstr=='2'){
- Serial.println("go back!");
- _mStop(in1,in2);
- _mStop(in3,in4);
- _mLeft(in1,in2);
- _mLeft(in3,in4);
- }
- else if(getstr=='4'){
- Serial.println("go left!");
- _mStop(in1,in2);
- _mStop(in3,in4);
- _mRight(in1,in2);
- _mLeft(in3,in4);
- }
- else if(getstr=='6'){
- Serial.println("go right!");
- _mStop(in1,in2);
- _mStop(in3,in4);
- _mRight(in3,in4);
- _mLeft(in1,in2);
- }
- else if(getstr=='1'){
- Serial.println("growth!");
- n=n+85; //每次累加值为5
- if (n>=255)
- n=255;
- analogWrite(9,n);
- analogWrite(10,n);
- }
- else if(getstr=='0'){
- Serial.println("Slow down!");
- n=n-85;
- if (n<=0)
- n=0;
- analogWrite(9,n);
- analogWrite(10,n);
- }
- else if(getstr=='5'){
- Serial.println("Stop!");
- _mStop(in1,in2);
- _mStop(in3,in4);
- }
- }
复制代码
|