1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Python实现旋转按钮控制小风扇

Python实现旋转按钮控制小风扇

时间:2024-07-04 00:16:00

相关推荐

Python实现旋转按钮控制小风扇

Python实现对小风扇的控制

1.本次小实验总共需要准备的物品包括:Pico开发板、扩展板、电脑、USB数据线、电位器模块、电机驱动模块、电机小风扇、6根母对母杜邦线。

(1).电位器模块:电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。简而言之就是调节小风扇的转速的旋转开关,和家里的电风扇一样通过旋转开关调节风速档位,如下图1。

(2).电机驱动模块:通过主动工作来控制电机按照设定的方向、速度、角度、响应时间进行工作的集成电路。就是说当电机驱动模块接到电位器的指令(档位)时,就把电路中的电能转换为电机驱动模块所需的电能,来控制小风扇的转速,如下图。

2.实验现象:本课程是制作一个电位器调节电机小风扇速度的实验。按照下图接线后,下载程序,用手转动电位器,可以看到电机小风扇的速度会变化。

运行效果如下视屏链接

控制风扇的效果视频

3.我们使用Thonny这个编程软件进行编程和程序的运行。

下面是对代码的个人理解,非常简单通俗化。

from machine import Pin, PWM, ADC#从机器内置函数里引用Pin引脚和PWM脉冲宽带调制和ADC数模转换器

import utime#引用utime定时函数,也就是可以用来设定某个工作过程的时间

rp = ADC(28)#初始化电位器引脚,电位器IO端连接是Pico开发板的扩展板上的引脚GP28

pwm1 = PWM(Pin(13))#PWM输出初始化,电机引脚,因为我们电机驱动模块IN4端口连接的引脚Pico开发板扩展板的引脚是GP13

pwm1.freq(1000)# 设置频率

conver_100 = 101 / (65536)# 数值转化参数

def my_map(x, in_min, in_max, out_min, out_max):#定义一个my_map()函数,定义输入和输出的最大值和最小值四个参数和一个X参数

return int((x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)# 数值重映射(把电位器的值与电机模块的值一一对应),就是说把电位器的信号(数值)转换为电机模块能够理解的脉冲

def pwm_motor(speed):#定义一个pwm_motor函数,并给函数定义一个speed参数,设置风扇的转速,speed=[0, 100]

if speed > 100 or speed < 0:#如果风扇的转速大于100或者小于0,就返回重新获取0到100之间的速度

print(‘Please enter a limited speed value of 0-100’)

return

pulse = my_map(speed, 0, 100, 0, 65535)#如上面的代码pluse=(speed-0)(65535-0)/(100-0)+0=65535speed/100,把speed这个信号的值转换为脉冲值

print(pulse)#输出pluse

pwm1.duty_u16(pulse)#电机根据这个脉冲值进行风扇的转速的控制

while True:

val_rp = int(rp.read_u16() * conver_100)# 把读取的电位器数值转化成[0, 100]

utime.sleep(.1)#设定睡眠时间1秒

pwm_motor(val_rp)# print(val_rp)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。