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

基于MicroPython的ESP8266控制舵机的设计方案

       以下是一个基于MicroPython的ESP8266控制舵机的设计方案:

 一、硬件准备

1. ESP8266开发板(如NodeMCU)。

2. 舵机(如SG90)。

3. 杜邦线若干。

 二、硬件连接

1. 将5V直流电源连接到舵机的电源引脚(通常为红色线)。

2.将3.3V直流电源连接到ESP8266的3.3V管脚。

3. 将ESP8266的GND引脚连接到舵机的地线引脚(通常为黑色线)。

4. 将ESP8266的任意一个GPIO引脚(如D1管脚对应GPIO5)连接到舵机的控制信号线(通常为黄色线)。 

三、MicroPython编程

#导入所需库
import machine
import time

# 连接舵机控制引脚的GPIO编号
servo_pin = machine.Pin(5, machine.Pin.OUT)

# 创建一个PWM对象
pwm = machine.PWM(servo_pin)

# 设置PWM频率为50Hz,这是舵机常用的控制频率
pwm.freq(50)

# 定义舵机的最小和最大角度对应的脉宽值
min_duty = 30  #根据实际情况调整
max_duty = 120  #根据实际情况调整

# 定义角度转换为占空比函数
def set_angle(angle):
    duty = int((angle / 180) * (max_duty - min_duty) + min_duty)
    pwm.duty(duty)

# 测试,将舵机转动到不同角度
set_angle(0)
time.sleep(1)
set_angle(90)
time.sleep(1)
set_angle(180)
time.sleep(1)

# 停止PWM输出
pwm.deinit()
 
       以上代码首先设置了连接舵机的GPIO引脚为输出模式,并创建了一个PWM对象。然后定义了舵机最小和最大角度对应的占空比值,之后定义了将角度转换为占空比的函数,并使用这个函数将舵机转动到不同角度进行了测试。最后停止PWM输出。
       请注意,不同的SG90舵机可能在脉宽值和角度对应关系上略有差异,需要根据实际情况调整min_duty和max_duty的值。


http://www.kler.cn/a/298791.html

相关文章:

  • 本原多项式
  • 重温设计模式--4、组合模式
  • docker commit生成的镜像瘦身
  • YOLOv9-0.1部分代码阅读笔记-lion.py
  • Python爬虫(入门+进阶)
  • 【论文阅读笔记】IC-Light
  • 继承QWidget样式表无效的
  • Learn ComputeShader 10 HUD Overlay
  • Android13 Hotseat客制化--去掉hotseat(热座)
  • tushare库获取金融股票数据
  • 如何使用Filter(过滤器一)
  • discuz论坛3.4 截图粘贴图片发帖后显示不正常问题
  • Java 利用ASM读取变量值(Field value)问题研究
  • 2024级新生数组字符串专题题解
  • Docker 容器技术在简化 MySQL 主从复制部署与优化
  • 快速入门游戏领域,开发游戏需要哪些技术?
  • Lua垃圾回收机制
  • 跨境网红营销SOP流程1.0丨出海笔记
  • 博科测试IPO上市关注:创新驱动发展,加速技术成果转化
  • 使用datax从mysql导入数据到taosdb中
  • Vue框架学习笔记-9
  • Android12——Launcher3文件夹布局修改调整
  • 鸿蒙HarmonyOS应用开发者高级认证重点知识详解
  • 2024国赛数学建模C题论文:基于优化模型的农作物的种植策略
  • 根据NVeloDocx Word模板引擎生成Word(一)
  • 【C++】容器list常用接口详解