【树莓派驱动直流电机】

树莓派驱动直流电机

感谢树老师。

直流电机

直流电机(DC电机)是一种将直流电能转化为机械能的电动机。它由电枢(有时也称为转子)和电枢磁场(有时也称为定子)组成。

在DC电机中,电枢由绕组和通电的铁芯组成。电枢绕组是由导线绕制而成,在通电时会产生电流。电枢磁场通常是由永磁体或电磁线圈产生的。当电流通过电枢绕组时,由于电磁感应的作用,电枢会受到力矩的作用,发生旋转运动。

具体来说,当电流通过电枢绕组时,根据右手螺旋定则,电流在磁场中受到力矩的作用,使电枢发生旋转。而电枢绕组与磁场的磁力相互作用,产生机械输出功。这样就实现了将电能转化为机械能的过程。

DC电机具有调速范围广、启动扭矩大、结构简单、维护方便等优点,因此被广泛应用于工业、交通、家电等领域。

树莓派与电机链接

在这里插入图片描述

直流电机驱动

TB6612FNG

硬件调试 PWN输出

PWM是脉宽调制(Pulse Width Modulation)的缩写,是一种常用的调制技术,用于控制电子系统中的电压或电流。

PWM通过周期性改变电信号的脉冲宽度来实现电压或电流的控制。在一个固定的时间周期内,信号的高电平时间(脉冲宽度)和低电平时间可以调节。通过改变高电平时间和低电平时间的比例,可以控制输出信号的平均电压或电流。

在PWM控制中,调制信号的周期一般是固定的,通常用一个稳定的时钟源来确定。脉冲的高电平时间可以根据需要进行调节,通过调节高电平时间的比例,可以改变信号的平均电压或电流值。

PWM在很多应用中非常常见,例如:

  • 电子调光:通过改变LED的亮度,可以使用PWM控制LED的亮度级别。
  • 电机控制:使用PWM可以控制直流电机的转速和方向。
  • 电源调节:PWM在开关电源中广泛应用,可以实现高效的电压调节和转换。
  • 控制系统:PWM可以用于控制系统中的位置、速度和功率。

总的来说,PWM是一种基于脉冲宽度的调制技术,通过控制信号的高电平时间比例来实现对电压或电流的精确控制。它被广泛应用于各种电子设备和系统中。
在这里插入图片描述

# coding=utf-8
import RPi.GPIO as GPIO
from time import sleep
p_ pin= 16
f_pin=18
GPIO.setmode(GPIO. BCM)
GPIO.setup(p_ pin, GPIO.OUT)
GPIO.setup(f_ _pin, GPIO.OUT)
pwm_ pin = GPIO.PWM(p_ pin, 70)
pwm_ pin.start(0)
try:
while 1:
speed = int(input("请输入速度")) * 0.390
pwm_ _pin.ChangeDutyCycle(speed)
GPlO.output(f_ pin, GPIO.HIGH)
sleep(2)
GPIO.output(f pin, GPIO.LOW)
sleep(2)
pwm_ pin.ChangeDutyCycle(0)
except KeyboardInterrupt:
pwm_ pin.stop(0)
GPlO.cleanup()

对模块的使用

在树莓派上使用GPIO输出PWM(脉宽调制)信号,可以使用Python的 RPi.GPIO 库来实现。以下是一个简单的示例代码,演示如何在树莓派上使用GPIO输出PWM信号:

import RPi.GPIO as GPIO
import time

# 设置GPIO模式为BCM
GPIO.setmode(GPIO.BCM)

# 指定使用的GPIO引脚
pwm_pin = 18

# 设置GPIO引脚为输出模式
GPIO.setup(pwm_pin, GPIO.OUT)

# 创建PWM对象,第一个参数为GPIO引脚号,第二个参数为频率(Hz)
pwm = GPIO.PWM(pwm_pin, 100)

# 启动PWM,第一个参数为占空比(0-100),即脉冲高电平时间所占百分比
pwm.start(50)  # 这里是以50%的占空比启动PWM

try:
    while True:
        # 改变PWM的占空比,实现不同的输出
        duty_cycle = float(input("请输入占空比(0-100):"))
        pwm.ChangeDutyCycle(duty_cycle)
except KeyboardInterrupt:
    pass

# 停止PWM
pwm.stop()

# 清除GPIO设置
GPIO.cleanup()

需要注意的是,在运行该代码之前,需要先在树莓派上安装 RPi.GPIO 库,可以通过在终端中运行 pip install RPi.GPIO 命令来进行安装。

上述代码中,首先导入了 RPi.GPIO 库,并设置GPIO的模式为BCM。然后指定使用的GPIO引脚,这里以GPIO 18为例。

接下来,通过调用 GPIO.setup() 函数将指定的GPIO引脚设置为输出模式。然后,创建一个PWM对象,指定GPIO引脚和频率(Hz)。可以通过调用 pwm.start(duty_cycle) 方法启动PWM,并设置初始的占空比。

while 循环中,可以通过从用户输入获取新的占空比,并使用 pwm.ChangeDutyCycle(duty_cycle) 方法来改变PWM的占空比,从而实现不同的输出。

最后,当程序被中断(通过键盘输入Ctrl+C)时,停止PWM并进行清理操作。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值