L298N是一种双H桥电机驱动模块,能够驱动两个直流电机或一个步进电机 ,广泛应用于机器人、智能小车等嵌入式控制项目中。本文详细介绍如何使用树莓派Pioc微控制器通过Python编程来控制L298N模块驱动电机马达正反功能。
L298N接口定义图如下


通过控制IO输入端的逻辑电平可实现电机的正反转和制动效果,其中IN1和IN2是控制马达A,IN3和IN4是控制马达B 具体原理如下:
IN1高电平,IN2低电平:马达A正转
IN1低电平,IN2高电平:马达A反转
IN1低电平,IN2低电平:马达A停止
IN3高电平,IN4低电平:马达B正转
IN3低电平,IN4高电平:马达B反转
IN3低电平,IN4低电平:马达B停止

| 以下是树莓派Pico开发板为例,提醒: 请按下图的引脚标识接线,务必不能接错。如果接错线通电后会导致设备烧毁! |

| main | 下载这个main源代码文件直接上传至树莓派pico文件内,运行查看数据(如下图) |
如果你还没有搭建好树莓派Python编程环境可参考这个帖子→:如何搭建Python编程环境

通过按Pico扩展板上的A按键就能实现马达正转, 按B就能实现马达反转,按C马达停止!
硬件注意:请使用本教程的Pico+扩展板一起,不能将驱动板电源直接在Pico主板上。如果没有依靠扩展板,马达会烧掉Pico主板。因为单片机开发板自身电流不足以驱动马达。只能作为程序运行!
引脚初始化:
马达控制引脚(GP1、GP2)设置为输出模式,初始电平为低;
按键引脚(A按键GP20/B按键GP21/C按键GP22)设置为输入模式,并启用上拉电阻(Pin.PULL_UP),此时按键未按下时引脚为高电平,按下后为低电平。
按键防抖处理:
加入debounce函数,通过 20ms 延时避免按键机械抖动导致的误触发;
按键触发后加入循环等待按键释放,防止一次按下多次触发。
总结
核心逻辑:通过检测按键引脚电平变化,控制马达引脚的高低电平状态;
代码优化:加入防抖处理和按键释放等待,避免误触发;
使用L298N+树莓派主板打造一个遥控小车完整例程:https://www.ydxhuo.com/index.php?c=read&id=25
| 本次使用ESP32-S3开发板为例,使用4个GPIO引脚来控制两个马达正反转(接线图如下) |
GPIO4和GPIO5引脚给驱动板IN4与IN3输入高低电平。实现控制马达A的正反启停!
GPIO6和GPIO7引脚给驱动板IN2与IN1输入高低电平。实现控制马达B的正反启停!

| L298N 下载这个源代码用Arduino IDE编译上传程序到主板查看控制效果(如下图) |
如果你还没有搭建好ESP32的ArduinoIDE的编程环境可参考这个帖子→:搭建ArduinoIDE编程环境

1.将上面程序上传至ESP32开发板后,用手机连接ESP32主板的热点:ESP32_Motor ,密码:12345678
2.连接热点后,在手机端游览器输入IP地址:192.168.4.1,就能进入控制页面(如下图)
3.正反转调节:如果你的马达正反方向不同,可改动马达2根线反接或IN1~IN4调换直到调试正常为止

接线序号务必不能出错,必须共负极
联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意
提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...