【micropython】使用microbit控制9G舵机

本文介绍了如何使用Microbit的PIN1口通过A键和B键控制9G舵机正转和反转。程序通过set_analog_period()设置周期,并用write_analog设置脉宽来调整舵机角度。当按下A键时,舵机转动160度,B键则使舵机转动10度。

9G舵机的控制脚接在microbit的PIN1上,分别按下A键和B键控制舵机正转和反转
程序通过set_analog_period()函数设置设置周期
使用
write_analog
来设置脉宽控制舵机角度
程序如下:

from microbit import *
def servo(pin,angle):  # pin:analog   angle:0~180
    analog_output = 0
    pulse_width = 0
    angle_servo = 0
    angle_servo = angle
    pulse_width 
基于MicroPython的ESP32单片机控制SG90舵机的实现方法如下: ### 舵机原理与硬件连接 舵机实验涉及舵机原理、代码所用函数解析等内容。硬件连接方面,SG90舵机的橙色(信号线)连接ESP32的引脚(如17或2),红色(电源正)连接5V,褐色(电源负)连接GND [^1][^3][^4]。 ### 代码实现方式 #### 直接控制角度循环代码 ```python from machine import Pin,PWM import time servo = PWM(Pin(2),freq=50) def set_angle(angle): min_duty = 36 max_duty = 140 duty = int(min_duty + (max_duty - min_duty) *(angle / 180)) servo.duty(duty) while True: for angle in range(0,181,10): set_angle(0) time.sleep_ms(200) for angle in range(180,-1,-10): set_angle(180) time.sleep_ms(200) ``` 此代码通过`PWM`控制舵机,定义了`set_angle`函数用于根据输入角度计算并设置占空比,然后在循环中让舵机在0 - 180度之间循环转动 [^2]。 #### 串口控制代码 ```python #导入Pin模块 from machine import Pin import time from servo import Servo #定义SG90舵机控制对象 my_servo = Servo(Pin(17)) #程序入口 if __name__=="__main__": while True: a=int(input("舵机角度(0 - 180)")) my_servo.write_angle(a) ``` 该代码通过串口输入角度值,使用`Servo`类的`write_angle`方法控制舵机转动到指定角度 [^3]。 #### 摇杆控制代码 ```python #导入Pin模块 from machine import Pin import time from servo import Servo from machine import ADC from machine import Timer #定义SG90舵机控制对象 my_servo = Servo(Pin(17)) adc=ADC(Pin(32)) adc.atten(ADC.ATTN_11DB) #开启衰减,量程增大到3.3V b=0 def time0_irq(time0): b=180*adc.read()//4095 my_servo.write_angle(b) #程序入口 if __name__=="__main__": time0=Timer(0) #创建time0定时器对象 time0.init(period=20,mode=Timer.PERIODIC,callback=time0_irq) while True: pass ``` 此代码利用`ADC`读取摇杆的模拟值,通过定时器定期将模拟值转换为角度并控制舵机转动 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值