L298N是一种双H桥电机驱动模块,能够驱动两个直流电机或一个步进电机 ,广泛应用于机器人、智能小车等嵌入式控制项目中。本文详细介绍如何使用树莓派Pioc微控制器通过Python编程来控制L298N模块驱动电机马达正反功能。
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.raspi.cc/index.php?c=read&id=25