当前位置: 首页 > news >正文

MicroPython+L298N+ESP32控制电机转速

要使用MicroPython控制L298N电机驱动板来控制电机的转速,你可以通过PWM(脉冲宽度调制)信号来调节电机速度。L298N是一个双H桥驱动器,可以同时控制两个电机的正反转和速度。

硬件准备:

1. L298N 电机控制板

2. ESP32 开发板,我用的是:USB Type-C ESP32开发板 CH340C

3. 直流电机一个

4. 电池,12v

硬件连接

1. VCC  连接到电机驱动板,我这里连接到的是驱动板上的12v供电

2. GND  接地线,驱动板与开发板要共用底线

3. 输入 IN1 IN2 电机驱动板与ESP32开发板连接,我这里连接对应的开发板GPIO口是:2和4

4. ENA或者ENB 我这里只有一个电机,所以用的ENA,将电机驱动板上的ENA接口与ESP32上的 GPIO 15 连接

完整的联系图如下:

编写代码测试

打开 Thonny 在里面新建一个py脚本,编写测试代码如下:

代码

from machine import Pin, PWM
import time# 定义GPIO引脚
in1 = Pin(2, Pin.OUT)  # 例如ESP32的GPIO2
in2 = Pin(4, Pin.OUT)  # 例如ESP32的GPIO4
enA = PWM(Pin(15), freq=5000)  # 例如ESP32的GPIO15,频率为5000Hz# 电机正转
def motor_forward(duty_cycle):in1.value(1)in2.value(0)enA.duty(duty_cycle)  # duty_cycle范围从0到1023,代表0%到100%的占空比# 电机反转
def motor_backward(duty_cycle):in1.value(0)in2.value(1)enA.duty(duty_cycle)# 电机停止
def motor_stop():in1.value(0)in2.value(0)enA.duty(0)  # 完全关闭PWM信号# 示例:让电机以不同的速度运行和停止
motor_forward(512)  # 50%速度正转
time.sleep(2)
motor_stop()       # 停止
time.sleep(1)
motor_backward(768) # 75%速度反转
time.sleep(2)
motor_stop()       # 停止

注意事项

  • 频率:PWM信号的频率可以根据你的需要进行调整,但通常5kHz到10kHz是常见的选择。

  • 占空比duty()函数的值从0(0%)到1023(100%),你可以根据需要调整这个值来改变电机的速度。

  • 引脚选择:根据你的具体硬件平台(如ESP8266, ESP32等),GPIO引脚的选择可能会有所不同。请参考你的开发板文档。

  • 电源:确保你的电机和驱动板能够承受所选择的电压和电流。建议大于5v,不然电机带不动,无反应

http://www.dtcms.com/a/222279.html

相关文章:

  • Wi-Fi 切换 5G 的时机
  • 公链地址生成曲线和算法
  • 【NLP入门系列一】NLP概述和独热编码
  • c/c++的opencv霍夫变换
  • LLM 使用 MCP 协议及其原理详解
  • Glide NoResultEncoderAvailableException异常解决
  • 安装启动Mosquitto以及问题error: cjson/cJSON.h: No such file or directory解决
  • leetcode:7. 整数反转(python3解法,数学相关算法题)
  • Python学习(5) ----- Python的JSON处理
  • IDEA 在公司内网配置gitlab
  • 室内VR全景助力房产营销及装修
  • 敏捷开发在AI团队的适配研究
  • Android 开发 Kotlin 全局大喇叭与广播机制
  • STM32G4 电机外设篇(二) VOFA + ADC + OPAMP
  • 云原生DMZ架构实战:基于AWS CloudFormation的安全隔离区设计
  • Spring生命周期中织入代理逻辑
  • 数据在AI中扮演什么角色?为什么“数据是新的石油”?
  • 智慧景区一体化建设方案
  • Lyra学习笔记2 GFA_AddComponents与ULyraPlayerSpawningManagerComponent
  • 主流 AI IDE 之一的 Windsurf 使用入门
  • 修改Docker镜像源
  • 如何迁移SOS数据库和修改sos服务的端口号
  • Linux操作系统之进程(四):命令行参数与环境变量
  • mac mini m4命令行管理员密码设置
  • linux、docker、git相关操作
  • 【MySQL】事务及隔离性
  • MongoTemplate 中如何构建复杂的查询条件 (Criteria API)?
  • 智能问数技术路径对比:NL2SQL vs NL2Semantic2SQL
  • 在 Linux 上安装 `pgvector`(这是一个 PostgreSQL 的向量类型扩展,常用于处理嵌入向量,便于进行向量相似度搜索)
  • 四、关系数据库标准语言SQL_1