极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 71507|回复: 20

L298N双直流电机控制代码

[复制链接]
发表于 2013-4-26 23:22:04 | 显示全部楼层 |阅读模式
直流电机控制代码


  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.   

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

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

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

  34. }

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

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

  47. }

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


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

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


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


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



  70. }

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

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


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

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


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

  94. }

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


  98. }
复制代码



回复

使用道具 举报

发表于 2013-4-27 00:13:11 | 显示全部楼层
沙个发,等版主射你,同顶下~~
回复 支持 1 反对 0

使用道具 举报

发表于 2013-10-19 10:12:42 | 显示全部楼层
第116行是不是错了。digitalWrite(i,OUTPUT); //设置数字端口4,5,6,7为HIGH,电机保持不动。应当改为:digitalWrite(i,HIGH); //设置数字端口4,5,6,7为HIGH,电机保持不动
回复 支持 1 反对 0

使用道具 举报

发表于 2013-4-27 12:49:50 | 显示全部楼层
好贴,顶一下。
回复 支持 反对

使用道具 举报

发表于 2013-4-28 10:12:53 | 显示全部楼层
是不是木有转速?
回复 支持 反对

使用道具 举报

发表于 2013-10-21 08:27:34 | 显示全部楼层
细心的楼主!支持一下!
回复 支持 反对

使用道具 举报

发表于 2014-2-2 22:28:37 | 显示全部楼层
void Motor1(boolean reverse)//电机1转动
void Motor2(boolean reverse)//电机2转动

这两段函数没有看到程序后续哪里调用,为什么要这么写呢?求指教
回复 支持 反对

使用道具 举报

发表于 2014-4-16 08:38:58 | 显示全部楼层
l298n的驱动芯片确实很好 就是一旦需要驱动大型的电机电压比较是问题
回复 支持 反对

使用道具 举报

发表于 2014-11-13 18:25:20 | 显示全部楼层
为什么我按照这个来的,却只有一个电机会转
回复 支持 反对

使用道具 举报

发表于 2014-12-25 16:03:43 | 显示全部楼层
谢谢楼主!同9楼的点,为什么我的一开始是两个电机转动,可是后来就一个电机转?
回复 支持 反对

使用道具 举报

发表于 2014-12-25 16:05:40 | 显示全部楼层
奋斗的悦悦 发表于 2014-12-25 16:03
谢谢楼主!同9楼的点,为什么我的一开始是两个电机转动,可是后来就一个电机转?

估计是发帖时间太久了,楼主已经忘记发过这个帖子了
回复 支持 反对

使用道具 举报

发表于 2014-12-30 17:17:30 | 显示全部楼层
同楼上……仅有一电机在转……
回复 支持 反对

使用道具 举报

发表于 2015-3-28 21:23:46 | 显示全部楼层
void Motor1(boolean reverse)//电机1正转
{
  if (reverse) //正转
  {
    digitalWrite(IN1,HIGH);
    digitalWrite(IN2,LOW);
  }

  else //反转
  {
    digitalWrite(IN1,LOW);
    digitalWrite(IN2,HIGH);
  }

}

void Motor2(boolean reverse)//电机2转动
{
  if (reverse) //正转
  {
    digitalWrite(IN3,HIGH);
    digitalWrite(IN4,LOW);
  }

  else //反转
  {
    digitalWrite(IN3,LOW);
    digitalWrite(IN4,HIGH);
  }

}
这些代码可以不写吗,感觉与aa();功能一样,
回复 支持 反对

使用道具 举报

发表于 2015-4-18 00:19:33 | 显示全部楼层
好贴   必须顶 啊
回复 支持 反对

使用道具 举报

发表于 2015-5-10 17:31:56 | 显示全部楼层
好像不能调转速
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 23:23 , Processed in 0.048017 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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