11064浏览
查看: 11064|回复: 6

[求助] 大功率蓝牙遥控车代码这么写行吗?

[复制链接]
本帖最后由 学员 于 2016-3-1 10:00 编辑

本人手头有Arduino uno r3、L298N电机驱动模块(直流六光耦全隔离)、HC-05主从机一体蓝牙模块、24V直流小型主轴电机40W想拿来蓝牙遥控车,但是不知道怎么写代码,有哪位大神给指点一二?(以下是蓝牙小车代码有带增减速的)
  1. char getstr;
  2. int in1=3;
  3. int in2=4;
  4. int in3=7;
  5. int in4=8;
  6. int n=0;
  7. int inEN1=9;
  8. int inEN2=10;
  9. //上面定义了板上的4个控制端,1、2一组,3、4一组
  10. void _mRight(int pin1,int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
  11. {
  12.   digitalWrite(pin1,HIGH);
  13.   digitalWrite(pin2,LOW);
  14. }
  15. void _mLeft(int pin1,int pin2)//同上
  16. {
  17.   digitalWrite(pin1,LOW);
  18.   digitalWrite(pin2,HIGH);
  19. }
  20. void _mStop(int pin1,int pin2)//紧急制动,实际就是将电机两个端短接了
  21. {
  22.   digitalWrite(pin1,HIGH);
  23.   digitalWrite(pin2,HIGH);
  24. }
  25. void setup()
  26. {
  27.   Serial.begin(9600);
  28.   pinMode(in1,OUTPUT);
  29.   pinMode(in2,OUTPUT);
  30.   pinMode(in3,OUTPUT);
  31.   pinMode(in4,OUTPUT);
  32.   pinMode(inEN1,OUTPUT);
  33.   pinMode(inEN2,OUTPUT);
  34.   //下面程序开始时让控制端都为高电平,电机保持不动。
  35.   digitalWrite(in1,HIGH);
  36.   digitalWrite(in2,HIGH);
  37.   digitalWrite(in3,HIGH);
  38.   digitalWrite(in4,HIGH);
  39. }
  40. void loop()
  41. {
  42.   getstr=Serial.read();
  43.   if(getstr=='8')
  44.   {
  45.     Serial.println("go forward!");
  46.     _mStop(in1,in2);
  47.     _mStop(in3,in4);
  48.     _mRight(in1,in2);
  49.     _mRight(in3,in4);
  50.   }
  51.   else if(getstr=='2'){
  52.     Serial.println("go back!");
  53.     _mStop(in1,in2);
  54.     _mStop(in3,in4);
  55.     _mLeft(in1,in2);
  56.     _mLeft(in3,in4);
  57.   }
  58.   else if(getstr=='4'){
  59.     Serial.println("go left!");
  60.     _mStop(in1,in2);
  61.     _mStop(in3,in4);
  62.     _mRight(in1,in2);
  63.     _mLeft(in3,in4);
  64.   }
  65.   else if(getstr=='6'){
  66.     Serial.println("go right!");
  67.     _mStop(in1,in2);
  68.     _mStop(in3,in4);
  69.     _mRight(in3,in4);
  70.     _mLeft(in1,in2);
  71.   }
  72.   else if(getstr=='1'){
  73.     Serial.println("growth!");
  74.     n=n+85;                         //每次累加值为5
  75.     if (n>=255)
  76.       n=255;
  77.       analogWrite(9,n);
  78.       analogWrite(10,n);
  79.     }
  80.     else if(getstr=='0'){
  81.     Serial.println("Slow down!");
  82.      n=n-85;
  83.     if (n<=0)
  84.       n=0;
  85.       analogWrite(9,n);
  86.       analogWrite(10,n);
  87.     }
  88.   else if(getstr=='5'){
  89.     Serial.println("Stop!");
  90.     _mStop(in1,in2);
  91.     _mStop(in3,in4);   
  92.   }
  93. }
复制代码


电机驱动光耦模式

电机驱动光耦模式

arduino uno r3

arduino uno r3

L298N电机驱动模块(直流六光耦全隔离)

L298N电机驱动模块(直流六光耦全隔离)

24V直流小型主轴电机40W

24V直流小型主轴电机40W

HC-05主从机一体蓝牙模块

HC-05主从机一体蓝牙模块

NewWay298N-M 用户说明手册.pdf

688.04 KB, 下载次数: 3301

丄帝De咗臂  高级技匠

发表于 2016-2-29 13:00:30

好大一个
回复

使用道具 举报

dsweiliang  初级技神

发表于 2016-3-1 08:40:26

这么大的电机,控制板的电流够不够过啊~?
回复

使用道具 举报

学员  见习技师
 楼主|

发表于 2016-3-1 09:47:22

本帖最后由 学员 于 2016-4-6 14:04 编辑
dsweiliang 发表于 2016-3-1 08:40
这么大的电机,控制板的电流够不够过啊~?

你可看仔细咯是光耦隔离的,各用各的电。
回复

使用道具 举报

20060606  高级技匠 来自手机

发表于 2019-12-30 05:24:32

学员 发表于 2016-3-1 09:47
你可看仔细咯是光耦隔离的,各用各的电。

电机驱动是l298n,是这个驱动电流不够
回复

使用道具 举报

帅猫  高级技师

发表于 2020-3-8 18:25:03

没错啊,可以用的
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-5 05:06:54

??????????????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail