初识电机驱动
L298N引脚图:
Drive_car.ino
L298N引脚说明图.jpg
L298N英文数据手册.pdf
MT-1电机驱动说明文档.pdf
Speed_change.ino
定时器生成PWM调节小车速度.C
控制小车方向.c
定时器生成PWM调节小车速度单片机源程序如下:
- /******************************************************************************************
- 程序名:定时器生成PWM调节小车速度
- 编写人:Yayi
- 论坛:rtrobot.org
- /******************************************************************************************/
- #include <STC12C5A60S2.H>//头文件
- sbit IN1=P1^0;
- sbit IN2=P1^1;
- sbit IN3=P1^2;
- sbit IN4=P1^3;
- sbit ENA=P1^4;
- sbit ENB=P1^5;
- unsigned int k=0;
- unsigned int HZENA;
- unsigned int HZENB;
- /********************************************************************************************
- 延迟函数
- /********************************************************************************************/
- void DELAY_MS (unsigned int a)
- {
- unsigned int i;
- while( a-- != 0)
- {
- for(i = 0; i < 600; i++);
- }
- }
- void Forward(void)
- {
- IN1=1;
- IN2=0;
- IN3=0;
- IN4=1;
- }
- /********************************************************************************************
- 定时器0初始化
- /********************************************************************************************/
- void T_init (void)
- {
- TMOD = 0x11; //高4位控制T1,低4位控制T0
- EA = 1; //中断总开关
- TH0 = 0; //16位计数寄存器T0高8位
- TL0 = 0; //16位计数寄存器T0低8位
- ET0 = 1; //T0中断开关
- TR0 = 1; //T0启动开关
- TH1 = 0; //16位计数寄存器T0高8位
- TL1 = 0; //16位计数寄存器T0低8位
- ET1 = 1; //T0中断开关
- TR1 = 1; //T0启动开关
- }
- /*********************************************************************************************
- 主程序
- /********************************************************************************************/
- void main(void)
- {
- T_init();
- Forward();
- while (1)
- {
- HZENA=60000;
- HZENB=60000;
- DELAY_MS(5000);
- HZENA=2000;
- HZENB=2000;
- DELAY_MS(5000);
- }
- }
- /********************************************************************************************
- 定时器0中断函数
- /********************************************************************************************/
- void T0 (void) interrupt 1 using 1
- {
- TH0=(65536-HZENA)/256; //16位计数寄存器T0高8位,尝试修改1000成其他值
- TL0=(65536-HZENA)%256; //16位计数寄存器T0低8位,尝试修改1000成其他值
- ENA=!ENA;
- }
- /********************************************************************************************
- 定时器1中断函数
- /********************************************************************************************/
- void T1 (void) interrupt 3 using 2
- {
- TH1=(65536-HZENB)/256; //16位计数寄存器T0高8位,尝试修改1000成其他值
- TL1=(65536-HZENB)%256; //16位计数寄存器T0低8位,尝试修改1000成其他值
- ENB=!ENB;
- }
复制代码
所有资料51hei提供下载:
L298N 电机驱动 双直流电机驱动模块.zip
(920.06 KB, 下载次数: 77)
|