#实验目的:通过测试外接可变压电源以及直流电机驱动板(L298N)这个组合,驱动自制的风扇,在pwm的调节下,展现转动速度连续发生变化的现象。
#接线效果如图:
#注:其中风扇造型可采用其他形式代替,只要可体现转动速度即可。
#驱动板:采用的是L298N的改进型,某宝有卖;他跟传统L298N驱动板控制pwm不同在于,它直接在对应电机的高电平引脚输出即可;单个板可同时驱动两个电机。具体接线效果如下:
#控制原理如下:
直流电机 | 转动形式 | IN1 | IN2 | IN3 | IN4 |
MOTOR-A | 正向(调速) | 高电平/PWM | 低电平 | | |
| 反向(调速) | 低电平 | 高电平/PWM | | |
| 停止 | 低电平 | 低电平 | | |
| 刹车 | 高电平 | 高电平 | | |
MOTOR-B | 正向(调速) | | | 高电平/PWM | 低电平 |
| 反向(调速) | | | 低电平 | 高电平/PWM |
| 停止 | | | 低电平 | 低电平 |
| 刹车 | | | 高电平 | 高电平 |
#实验代码:
#!/usr/bin/env python
#coding:utf-8
'''
from JiuJiang
树莓酱的操作实例
http:://www.shumeijiang.com
'''
import RPi.GPIO as GPIO ##引入GPIO模块
import time ##引入time库
motorA1 = 18 ##定义电机A的IN1引脚
motorA2 = 19 ##定义电机A的IN2引脚
GPIO.setmode(GPIO.BCM) ##此处采用BCM编码
GPIO.setup(motorA1, GPIO.OUT) ##设置引脚为输出模式
GPIO.setup(motorA2, GPIO.OUT)
pwm = GPIO.PWM(motorA1, 80) ##引脚A1高电平为正转,所以创建一个正转pwm实例并设置频率
pwm.start(70) ##初始化占空比 即单位时间高电平的时间占比
GPIO.output(motorA1, GPIO.HIGH) ##设置A1 引脚为高电平
GPIO.output(motorA2, GPIO.LOW) ##设置A2 引脚为低电平 如此可控制电机A正转,反之电机A反转
##通过一定时间间隔设置占空比,可见电机间隔一定时间后会发生速度变化 其中0则电机停止转动
try:
while True:
pwm.ChangeDutyCycle(30)
time.sleep(2)
pwm.ChangeDutyCycle(70)
time.sleep(2)
pwm.ChangeDutyCycle(0) ##电机停止转动
time.sleep(2) ##持续时间
except KeyboardInterrupt:
pass
pwm.stop()
GPIO.cleanup()
#实验效果:
1、执行代码 Python jiujiang.py;
2、可见小风扇快速转动,然后持续2秒钟;速度增强到原来两倍;
3、速度增强转动2秒钟后,风扇停止转动;
4、停转2秒后,风扇继续往复前面一个动作。
#视频效果如下: