找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8784|回复: 10
收起左侧

全网首发,Proteus仿真Arduino控制L298驱动板

  [复制链接]
ID:230913 发表于 2018-8-9 16:06 | 显示全部楼层 |阅读模式
1.代码,hex文件在L298文件夹
2.我的电脑会跳出错误信息,不用管,不影响仿真
3.实验现象:直流电机先正转一秒 暂停一秒 反转一秒 如此反复
4.Arduino IDE 项目选项可导出hex,proteus可加载


QQ图片20180809160321.png



  1. /*
  2. 为了看清电机的转动,使用了 带齿轮减速箱的微型马达,
  3. 由于它的需要的电压低,可以直接使用Arduino板上的5伏电压。

  4. L298N也使Arduino板载 5伏电压

  5. L298N电机驱动自己焊的
  6. */

  7. //这个电机驱动板使用数字端口4 5 6 7 控制电机
  8. //正确连接你的电机到M1+ M1- M2+ M2-
  9. //数字端口10 11 连接到L298N的使能端接口
  10. //下载代码到Arduino/
  11. // 控制两个直流电机的正反转
  12. //本程序作用两个直流电机先正转一秒 暂停一秒 反转一秒 如此反复


  13. int IN1=4;
  14. int IN2=5;
  15. int IN3=6;
  16. int IN4=7;

  17. int EN1=10;//使能端口1
  18. int EN2=11;//使能端口2
  19. //数字端口4与5为一组,6与7为另一组
  20. //数字端口10 11 作为直流电机的使能端
  21. void Motor1(boolean reverse)//电机1正转
  22. {
  23.   if (reverse) //正转
  24.   {
  25.     digitalWrite(IN1,HIGH);
  26.     digitalWrite(IN2,LOW);
  27.   }

  28.   else //反转
  29.   {
  30.     digitalWrite(IN1,LOW);
  31.     digitalWrite(IN2,HIGH);
  32.   }

  33. }

  34. void Motor2(boolean reverse)//电机2转动
  35. {
  36.   if (reverse) //正转
  37.   {
  38.     digitalWrite(IN3,HIGH);
  39.     digitalWrite(IN4,LOW);
  40.   }

  41.   else //反转
  42.   {
  43.     digitalWrite(IN3,LOW);
  44.     digitalWrite(IN4,HIGH);
  45.   }

  46. }

  47. void aa()//先正转1秒停1秒后反转1秒
  48. {


  49.   //正转
  50.   digitalWrite(IN3,LOW);
  51.   digitalWrite(IN4,HIGH);
  52.   digitalWrite(IN1,LOW);
  53.   digitalWrite(IN2,HIGH);
  54.   delay(1000);

  55.   //暂停一秒
  56.   stopMotor(true);
  57.   delay(1000);
  58.   stopMotor(false);//恢复电机使能端高电平


  59.   //反转
  60.   digitalWrite(IN3,HIGH);
  61.   digitalWrite(IN4,LOW);
  62.   digitalWrite(IN1,HIGH);
  63.   digitalWrite(IN2,LOW);


  64.   delay(1000);
  65.   // 暂停
  66.   stopMotor(true);
  67.   delay(1000);
  68.   stopMotor(false);



  69. }

  70. void stopMotor(boolean r)//电机停转
  71. {
  72.   if (r)
  73.   {
  74.     analogWrite(EN1,0);
  75.     analogWrite(EN2,0);
  76.   }
  77.   else
  78.   {
  79.     analogWrite(EN1,255);
  80.     analogWrite(EN2,255);
  81.   }
  82. }

  83. void setup()
  84. {
  85.   int i;


  86.   for (i=4;i<=7;i++) //为Ardunio 电机驱动板
  87.     pinMode(i,OUTPUT); //设置数字端口4,5,6,7为输出模式

  88.   for (i=4;i<=7;i++)
  89.     digitalWrite(i,HIGH); //设置数字端口4,5,6,7为HIGH,电机保持不动


  90.   pinMode(10,OUTPUT);//设置数字端口10  11为输出模式
  91.   pinMode(11,OUTPUT);
  92.   Serial.begin(9600);

  93. }

  94. void loop()
  95. {
  96.   aa();//两个直流电机正转1秒 暂停一秒 反转一秒


  97. }
复制代码



L298.zip

25.26 KB, 下载次数: 129, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:44037 发表于 2018-8-9 22:06 | 显示全部楼层
谢谢分享  这里的2个模块  在Proteus库没有  也不添加dll  但是能正常运行  百思不得其解?  能解释一下吗
回复

使用道具 举报

ID:230913 发表于 2018-8-11 19:43 | 显示全部楼层
by64214 发表于 2018-8-9 22:06
谢谢分享  这里的2个模块  在Proteus库没有  也不添加dll  但是能正常运行  百思不得其解?  能解释一下吗
...

Proteus都这样文件和库分离,这样打开以前的文件也可以兼容,这2个元件是老外制作的,下载地址在元件上的网址
回复

使用道具 举报

ID:20345 发表于 2018-11-1 23:14 | 显示全部楼层
proteus要8.7的版本,我才8.0.另外L298N元件网址是什么?
回复

使用道具 举报

ID:138918 发表于 2018-12-20 13:26 | 显示全部楼层
不错,果断收藏学习。
回复

使用道具 举报

ID:466118 发表于 2019-1-10 20:43 | 显示全部楼层
果断收藏学习。
回复

使用道具 举报

ID:878834 发表于 2021-1-19 11:33 | 显示全部楼层

果断收藏学习。
回复

使用道具 举报

ID:893293 发表于 2021-3-17 22:48 | 显示全部楼层
感谢 不会用原来的那个
回复

使用道具 举报

ID:893293 发表于 2021-3-18 09:42 | 显示全部楼层
谢谢分享  这里的2个模块  在Proteus库没有
回复

使用道具 举报

ID:937433 发表于 2021-6-14 18:08 | 显示全部楼层
problem with the code... i think you must add some comments
回复

使用道具 举报

ID:138707 发表于 2021-7-3 21:01 | 显示全部楼层
不错,果断收藏学习。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表