ESP8266 PWM输出控制

本文介绍了如何使用ESP8266通过PWM控制360°舵机,讲解了舵机的工作原理以及ESP8266的PWM输出配置,包括设置GPIO12为PWM输出,通过占空比调整舵机转动状态,并提到了使用定时器进行控制的方法。
摘要由CSDN通过智能技术生成

1、 舵机介绍
我用的是MG 946R 360°舵机
在这里插入图片描述
这种360°舵机相当于无极变速的减速电机,只能控制速度和方向,控制方式跟180°舵机是一样的,使用pwm进行控制。
2、 如何控制
我使用的是ESP8266进行控制
ESP8266 PWM输出,输出引脚为GPIO12

//1.头文件
#include “gpio.h”
#include “pwm.h”

//2.全局变量

uint32 pwm_duty_init[1] = {0};
uint32 io_info[1][3] =
	{
			
			 {PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12,12},
			//{PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13,13},            //GPIO13
			//{PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15,15}            //GPIO15

	};

//3初始化引脚和pwm

PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);//设置输出模式
gpio_output_set(0,BIT12,BIT12,0);//gpio12输出低电平
pwm_init(20000,pwm_duty_init,1,io_info);   //配置PWM的周期为20ms,占空比为0,PWM通道数量为1

//4、设置占空比,舵机进行转动 注意:360度舵机其实只有三个状态:正传、反转和停止。除了给定的(停止)

根据提供的引用内容,步进电机必须加驱动才可以运转,驱动信号必须为脉冲信号。因此,我们需要使用ESP8266的GPIO口输出脉冲信号来控制步进电机。同时,步进电机的转动方向可以通过改变脉冲的顺序来实现。 以下是ESP8266控制42步进电机的代码示例: ```python import machine import time # 步进电机的4个线圈对应的GPIO口 coil_A_1_pin = 5 coil_A_2_pin = 4 coil_B_1_pin = 0 coil_B_2_pin = 2 # 步进电机的4种状态 forward_seq = ['1000', '1100', '0100', '0110', '0010', '0011', '0001', '1001'] reverse_seq = forward_seq[::-1] # 初始化GPIO口 def set_pin(pin, value): p = machine.Pin(pin, machine.Pin.OUT) p.value(value) # 步进电机正转 def forward(delay, steps): for i in range(steps): for step in forward_seq: set_pin(coil_A_1_pin, int(step[0])) set_pin(coil_A_2_pin, int(step[1])) set_pin(coil_B_1_pin, int(step[2])) set_pin(coil_B_2_pin, int(step[3])) time.sleep_ms(delay) # 步进电机反转 def backwards(delay, steps): for i in range(steps): for step in reverse_seq: set_pin(coil_A_1_pin, int(step[0])) set_pin(coil_A_2_pin, int(step[1])) set_pin(coil_B_1_pin, int(step[2])) set_pin(coil_B_2_pin, int(step[3])) time.sleep_ms(delay) # 控制步进电机转动 def run_stepper(delay, steps): forward(delay, steps) time.sleep(1) backwards(delay, steps) # 设置步进电机的转速和转动步数 delay = 5 steps = 4096 # 控制步进电机转动 run_stepper(delay, steps) ``` 在上述代码中,我们使用了ESP8266的GPIO口来控制步进电机的转动。通过改变`forward_seq`和`reverse_seq`列表中的顺序,可以方便地改变步进电机的转动方向。同时,通过调整`delay`和`steps`变量的值,可以控制步进电机的转速和转动步数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值