当前位置:   article > 正文

L298N直流电机总结_l298n输出电压是多少

l298n输出电压是多少

L298N基础数据

请添加图片描述

  • 采用L298N双桥直流电机驱动芯片
  • 工作电压范围5V35V,如果需要从模块内取电,则供电范围为7V35V
  • 峰值输出电流2A
  • 每个通道有一个使能输入端
  • 可以驱动两个直流电机或者一个四线步进电机

L298N双H桥直流电机驱动模块的引脚可以归纳成电源、控制和输出等三大类,下面是各类引脚的功能说明。

电压类引脚

+12V输入:L298N芯片的电源正极,模块上标称+12V,但实际范围可以是5V35V,如果需从模块内取电,则其范围为7V35V。
GND:L298N芯片的电源地,使用的时候应该把树莓派的GND接到这里,即两者需要共地。
+5V输出:L298N芯片输出的5V电源,可以给外部设备供电,使用的时候需要用跳线把5V输出使能端短接起来。

控制类引脚

ENA、ENB:A、B通道的使能端,高电平有效,可以用PWM来实现调速。使用时,可以接到树莓派的GPIO上,实现用程序进行控制。
IN1、IN2、IN3、IN4:IN1、IN2为A通道的控制输入,IN3、IN4为B通道的控制输入。

输出类引脚

OUT1、OUT2、OUT3、OUT4:OUT1、OUT2由A通道输出,OUT3、OUT4由B通道输出,可以用于连接直流电机等设备。

控制直流电机的转向和转速实际是通过给控制类引脚设置不同的值来实现的,表7.1是使用通道A的控制直流电机的真值表,通道B与此类似。

在这里插入图片描述

控制程序

在这里插入图片描述

控制电机转向

BEGIN  
    引入GPIO库  
    将连接ENA的GPIO引脚设置为输出模式
    将连接IN1的GPIO引脚设置为输出模式
    将连接IN2的GPIO引脚设置为输出模式
    
    DO FOREVER  
        将IN1设置为0,IN2设置为1,将电机设置为正向转动  
        将ENA设置为1,驱动A通道电机转动  
        等待5秒  

        将ENA设置为0,停止电机转动  
        等待2秒  

        将IN1设置为1,IN2设置为0,将电机设置为反向转动  
        将ENA设置为1,驱动A通道电机转动  
        等待5秒  

        将ENA设置为0,停止电机转动  
        等待2秒
    ENDO  
    停止PWM  
    清理释放GPIO资源  
END  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
import RPi.GPIO as GPIO         # 引入GPIO模块
import time                     # 引入time模块

ENA = 13                        # 设置GPIO13连接ENA
IN1 = 19                        # 设置GPIO19连接IN1
IN2 = 26                        # 设置GPIO26连接IN2

if __name__ == '__main__':
    try:
        # 初始化
        GPIO.setmode(GPIO.BCM)          # 使用BCM编号方式
        GPIO.setup(ENA, GPIO.OUT)       # 将连接ENA的GPIO引脚设置为输出模式
        GPIO.setup(IN1, GPIO.OUT)       # 将连接IN1的GPIO引脚设置为输出模式
        GPIO.setup(IN2, GPIO.OUT)       # 将连接IN2的GPIO引脚设置为输出模式

        while True:
            # 驱动电机正向旋转5秒
            GPIO.output(IN1, False)     # 将IN1设置为0
            GPIO.output(IN2, True)      # 将IN2设置为1
            GPIO.output(ENA, True)      # 将ENA设置为1,启动A通道电机
            time.sleep(5)               # 等待电机转动5秒

            # 电机停止2秒
            GPIO.output(ENA, False)     # 将ENA设置为0
            time.sleep(2)               # 等待电机停止2秒

            # 驱动电机反向旋转5秒
            GPIO.output(IN1, True)      # 将IN1设置为1
            GPIO.output(IN2, False)     # 将IN2设置为0
            GPIO.output(ENA, True)      # 将ENA设置为1,启动A通道电机
            time.sleep(5)               # 等待电机转动5秒

            # 电机停止2秒
            GPIO.output(ENA, False)     # 将ENA设置为0
            time.sleep(2)               # 等待电机停止2秒

    finally:
        pwm.stop()                      # 停止PWM
        GPIO.cleanup()                  # 清理释放GPIO资源,将GPIO复位
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

控制电机转速

BEGIN  
    引入GPIO库  
    将连接ENA的GPIO引脚设置为输出模式
    将连接IN1的GPIO引脚设置为输出模式
    将连接IN2的GPIO引脚设置为输出模式

    设置ENA输入一定频率的PWM脉冲信号,创建PWM对象  
    开始向ENA输入占空比为0的PWM脉冲信号  
    
    DO FOREVER  
        将IN1设置为0,IN2设置为1,将电机设置为正向转动  
        将ENA设置为1,驱动A通道电机转动  
        
        speed = 0
        DOWHILE speed < 100  
            将输入ENA的PWM脉冲信号的占空比修改为speed
            speed += 5
            等待1秒
        ENDDO

        将IN1设置为1,IN2设置为0,将电机设置为反向转动  
        将ENA设置为1,驱动A通道电机转动  
        
        speed = 0
        DOWHILE speed < 100  
            将输入ENA的PWM脉冲信号的占空比修改为speed
            speed += 5
            等待1秒
        ENDDO
    ENDO  
    
    停止PWM  
    清理释放GPIO资源  
END  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
import RPi.GPIO as GPIO         # 引入GPIO模块
import time                     # 引入time模块

ENA = 13                        # 设置GPIO13连接ENA
IN1 = 19                        # 设置GPIO19连接IN1
IN2 = 26                        # 设置GPIO26连接IN2

if __name__ == '__main__':
    try:
        # 初始化
        GPIO.setmode(GPIO.BCM)              # 使用BCM编号方式
        GPIO.setup(ENA, GPIO.OUT)           # 将ENA对应的GPIO引脚设置为输出模式
        GPIO.setup(IN1, GPIO.OUT)           # 将IN1对应的GPIO引脚设置为输出模式
        GPIO.setup(IN2, GPIO.OUT)           # 将IN2对应的GPIO引脚设置为输出模式

        freq = 500
        speed = 0
        pwm = GPIO.PWM(ENA, freq)           # 设置向ENA输入PWM脉冲信号,频率为freq并创建PWM对象
        pwm.start(speed)                    # 以speed的初始占空比开始向ENA输入PWM脉冲信号

        while True:
            # 将电机设置为正向转动
            GPIO.output(IN1, False)         # 将IN1设置为0
            GPIO.output(IN2, True)          # 将IN2设置为1

            # 通过改变PWM占空比,让电机转速不断加快
            for speed in range(0, 100, 5):
                pwm.ChangeDutyCycle(speed)  # 改变PWM占空比
                time.sleep(1)

            # 将电机设置为反向转动
            GPIO.output(IN1, True)          # 将IN1设置为1
            GPIO.output(IN2, False)         # 将IN2设置为0

            # 通过改变PWM占空比,让电机转速不断加快
            for speed in range(0, 100, 5):
                pwm.ChangeDutyCycle(speed)  # 改变PWM占空比
                time.sleep(1)
    finally:
        pwm.stop()                          # 停止PWM
        GPIO.cleanup()                      # 清理释放GPIO资源,将GPIO复位
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

参考链接

第7章 用树莓派控制直流电机(L298N)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/695007
推荐阅读
相关标签
  

闽ICP备14008679号