极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12690|回复: 2

通过Arduino用PWM控制L298N转速

[复制链接]
发表于 2015-11-5 23:35:40 | 显示全部楼层 |阅读模式
  1. int IN1=4;
  2. int IN2=5;
  3. int IN3=6;
  4. int IN4=7;
  5. int ENA=10;//使能端口1
  6. int ENB=11;//使能端口2
  7. int i;
  8. //数字端口4与5为一组,6与7为另一组

  9. //数字端口10 11 作为直流电机的使能端
  10. void setup() {   
  11.   pinMode(4, OUTPUT);
  12.   pinMode(5, OUTPUT);
  13.   pinMode(6, OUTPUT);
  14.   pinMode(7, OUTPUT);
  15.   pinMode(10, OUTPUT);
  16.   pinMode(11, OUTPUT);
  17. }
  18.   void Motor1(boolean reverse)//电机1
  19. {
  20.   if (reverse)
  21.   {
  22.    for(i=0;i<=255;i++)

  23. {analogWrite(ENA,i);
  24. analogWrite(ENB,i);
  25.    delay(500);}
  26.   }   
  27.   else
  28.   {
  29.      for(i=255;i>=0;i--)      
  30. {analogWrite(ENA,i);
  31. analogWrite(ENB,i);
  32.          delay(500);}   
  33.    }
  34. }
  35. void Motor2(boolean reverse)//电机2
  36. {
  37.   if (reverse)
  38.   {
  39.    for(i=0;i<=255;i++)
  40.    {analogWrite(ENB,i);
  41.    delay(500);}
  42.   }   
  43.   else
  44.   {
  45.      for(i=255;i>=0;i--)      
  46.     {analogWrite(ENB,i);
  47.          delay(500);}
  48.    }
  49. }
  50. void loop()
  51. {
  52. digitalWrite(IN1,HIGH);
  53. digitalWrite(IN2,LOW);
  54. digitalWrite(IN3,HIGH);
  55. digitalWrite(IN4,LOW);
  56.   Motor1(1);
  57.   Motor1(0);
  58.   Motor2(1);
  59.   Motor2(0);
  60. }
复制代码

回复

使用道具 举报

发表于 2015-12-27 16:48:03 | 显示全部楼层
电机1的可以写成这样吗?就是把i给个固定值
  1. void Motor1(boolean reverse)//电机1
  2. {
  3.     if (reverse)
  4.   {
  5.    int  i=10;
  6.    analogWrite(ENA,i);
  7.    delay(500);
  8.   }   
  9. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-9-24 11:10:53 来自手机 | 显示全部楼层
原来如此,我一直直接写pwm的都不知道有使能端
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 01:49 , Processed in 0.057560 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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