找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8827|回复: 7
收起左侧

L298N光耦电机驱动原理图 51 Arduino PWM调速程序 步进电机驱动及pdf中文资料

[复制链接]
ID:140725 发表于 2017-3-20 22:32 | 显示全部楼层 |阅读模式
分享一个很全面的L298N光耦电机驱动给51黑电子论坛的朋友们,有步进电机的驱动 包含51单片机和Arduino示例程序,有芯片的pdf中文资料和L298N各种常见电路的原理图.

L298N模块原理图:
0.png

L298N的pdf中文资料:
0.png 0.png 0.png 0.png



L298N模块51单片机PWM调速程序:
  1. /*
  2. //利用51计时器+中断来产生PWM信号,从而实现对电机速度
  3. //的控制
  4. //程序基于51单片机,晶振11.0592M 12M都可以
  5. */

  6. #include"reg52.h"
  7. #define uint unsigned int
  8. #define uchar unsigned char
  9. sbit in1 = P0^0;                      //IN1逻辑输入端
  10. sbit in2 = P0^1;                  //IN2逻辑输入端
  11. sbit in3 = P0^2;                  //IN3逻辑输入端
  12. sbit in4 = P0^3;                 //IN4逻辑输入端
  13. uchar count = 0;   //定义计数变量
  14. /****************************
  15. //T0初使化
  16. ****************************/
  17. void Init_timer()
  18. {
  19.         TH0 = (65535-10)/256;
  20.         TL0 = (65535-10)%256;
  21.         TMOD = 0x01;
  22.         TR0 = 1;
  23.         ET0 = 1;
  24.         EA = 1;
  25. }
  26. /****************************
  27. //电机速度调节,speed为速度
  28. //值,从0-100可调。
  29. //两个电机正转调速 speed值取决
  30. //电机速度,当定时器值小于speed
  31. //值的时候,电机正转,大于speed
  32. //值的时候,电机反转.从而达到
  33. //调速的目的
  34. ****************************/
  35. void motor_speed_ctl(uchar speed)
  36. {
  37.         if(count<=speed)
  38.         {
  39.                 in1 = 1;
  40.                 in2 = 0;
  41.                 in3 = 1;
  42.                 in4 = 0;
  43.         }
  44.         else
  45.         {
  46.                 in1 = 0;
  47.                 in3 = 0;
  48.         }
  49. }

  50. /****************************
  51. //main()主函数
  52. //大循环
  53. ****************************/
  54. void main()
  55. {
  56.         Init_timer();
  57.         while(1)
  58.         {
  59.                 motor_speed_ctl(20);  //电机向前行驶,速度可调节,改变括号里的值改变电机速度
  60.         }
  61. }
  62. /****************************
  63. //T0计时中断
  64. ****************************/
  65. void Timer0_int()interrupt 1
  66. {
  67.         TH0 = (65535-10)/256;
  68.         TL0 = (65535-10)%256;
  69.         count ++;
  70.         if(count >= 100)
  71.         {
  72.                 count = 0;
  73.         }               
  74. }
复制代码

Arduino示例程序小车加速运动:
  1. //小车前进与后退
  2. //时间20120902
  3. int PWM1=6;  //ena port
  4. int in1=9; //IN1 port
  5. int in2=10;  //IN2  port
  6. int PWM2=7;  //enb port
  7. int in3=11;  //in3 port
  8. int in4=12; //in4 port
  9. void setup()
  10. {   
  11. pinMode(PWM1, OUTPUT); //定义PWM输出
  12. pinMode(in1, OUTPUT);     
  13. pinMode(in2, OUTPUT);     
  14. pinMode(PWM2, OUTPUT); //定义PWM输出
  15. pinMode(in3, OUTPUT);   
  16. pinMode(in4, OUTPUT);  
  17. }
  18. void advance()//前进加速
  19. {
  20.   int i = 0;
  21.   for(i=0;i<255;i++)
  22.   {
  23.     analogWrite(PWM1,i);
  24.     analogWrite(PWM2,i);
  25.     digitalWrite(in1,HIGH);
  26.     digitalWrite(in2,LOW);
  27.     digitalWrite(in3,HIGH);
  28.     digitalWrite(in4,LOW);
  29.     delay(5);
  30.   }
  31. }
  32. void back()//后退加速
  33. {
  34.     int i = 0;
  35.     for(i=0;i<255;i++)
  36.     {
  37.       analogWrite(PWM1,i);
  38.       analogWrite(PWM2,i);
  39.       digitalWrite(in1,LOW);
  40.       digitalWrite(in2,HIGH);
  41.       digitalWrite(in3,LOW);
  42.       digitalWrite(in4,HIGH);
  43.       delay(5);
  44.     }
  45. }
  46. void loop()
  47. {
  48.     advance();//小车匀加速前进
  49.    delay(1000);//延迟1秒
  50.     back();//小车匀加速后退
  51.    delay(1000);//延迟1秒
  52. }

复制代码

0.png
资料下载: L298N光耦电机驱动.rar (898.33 KB, 下载次数: 98)
回复

使用道具 举报

ID:151348 发表于 2017-3-21 10:01 | 显示全部楼层
之间也有设计L298N驱动板,跟你这个差不多。后来做别的去了,所以还没做出实物图
回复

使用道具 举报

ID:151000 发表于 2017-8-11 00:55 | 显示全部楼层
楼主能把L298N和光耦电机驱动的连接图发过来看吗?谢谢!
回复

使用道具 举报

ID:495287 发表于 2020-6-25 00:35 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

ID:495287 发表于 2020-6-25 00:48 | 显示全部楼层
谢谢楼主分享,很完善的光耦隔离指导。
回复

使用道具 举报

ID:495287 发表于 2020-6-26 01:53 | 显示全部楼层
楼主好,俺有个大胆滴想法
每次被out1.2.3.4的续流二极管搞得懵逼,
续流二极管的作用主要是抵消驱动设备的反电动势,
在int1-4加光耦,out1-4再加光耦,这样取消续流二极管,您看可行吗 ?
回复

使用道具 举报

ID:340220 发表于 2020-7-22 14:45 | 显示全部楼层
地没有隔离啊,你这个光耦加了意义不大,还不如加一个缓冲器
回复

使用道具 举报

ID:228467 发表于 2020-8-16 10:14 | 显示全部楼层
阿哲呀 发表于 2020-7-22 14:45
地没有隔离啊,你这个光耦加了意义不大,还不如加一个缓冲器

我看有的电路中的缓冲器也是和大电源共地的,感觉也没啥隔离效果啊?所以我不知道加缓冲器的原因是啥,您能方便讲讲吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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