首页 > 其他分享 >树莓派4B控制直流电机的使用

树莓派4B控制直流电机的使用

时间:2023-07-07 11:44:06浏览次数:50  
标签:ENA 树莓 input 引脚 INT1 output 直流电机 GPIO 4B

直流电机驱动

1、硬件介绍

树莓派4B、杜邦线、L298N驱动模块、直流电机、外接电源

2、硬件连接

注意:ENA和ENB的跳冒必须安上去,如果没有拿杜邦线连通,就是用一根母母线把尖头盖住

这里我只连接了一个直流电机,所以INT3和INT4的连线不用管,

3、代码编写

import RPi.GPIO as GPIO
import time
#控制电机使用
# GPIO.setmode(GPIO.BOARD) #编号方式,基于插座引脚编号 GPIO引脚编号的两种方式之一
#
# #接口定义
#INT1 = 11 #将L298 INT1口连接到树莓派Pin11
#INT2 = 12 #将L298 INT2口连接到树莓派Pin12
# #输出模式
# GPIO.setup(INT1,GPIO.OUT)
# GPIO.setup(INT2,GPIO.OUT)
#
# GPIO.output(INT1,GPIO.HIGH) #INT1为高电平
# GPIO.output(INT2,GPIO.LOW) #NT2为低电平
#
# time.sleeo(3) #休息3秒
# GPIO.cleanup() #释放GPIO

4、连接图

5、拓展:控制电机转速

# 控制电机转速
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD) # 编号方式,基于插座引脚编号 GPIO引脚编号的两种方式之一
# 接口定义
INT1 = 11
INT2 = 12
ENA = 16 # 将L298的ENA接到树莓派的Pin16。ENA为左电机的使能接口,通过树莓派PWM输出,可以用来控制电机转速(注:连接时需要将ENA、跳帽拔掉)
hz = 500 # 定义频率变量(等一下用)
speed = 0 # 定义占空比变量(等下用)
GPIO.setup(ENA, GPIO.OUT) # 将ENA对应的GPIO引脚设置为输出模式
GPIO.setup(INT1, GPIO.OUT) # 将IN1对应的GPIO引脚设置为输出模式
GPIO.setup(INT2, GPIO.OUT) # 将IN2对应的GPIO引脚设置为输出模式

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

time.sleep(1) # 休息一秒
c = input("if you want continue please use 'y' otherwise use 'e'")
while c == 'y':
speed = int(input("Please input motor speed (1-100): ")) # 因为输入为字符串,需要用int函数
# 程序运行时通过键盘输入占空比改变电机转速
pwma.ChangeDutyCycle(speed)
# 改变PWM占空比
GPIO.output(INT1, GPIO.LOW)
# 将IN1设置为低电平
GPIO.output(INT2, GPIO.HIGH)
# 将IN2设置为高电平
input() #再次输入不同的转速
c = input("'y' or 'e'") #询问是否继续
GPIO.cleanup() #释放接口
exit() #退出,关闭

6、控制电机正转,反转

#控制电机正转反转
import RPi.GPIO as GPIO
import time

INT1 = 11
INT2 = 12
ENA = 16 #定义对应的引脚变量(等一下用)
GPIO.setmode(GPIO.BOARD) # 使用BCM编号方式
GPIO.setup(ENA, GPIO.OUT) # 将连接ENA的GPIO引脚设置为输出模式
GPIO.setup(INT1, GPIO.OUT) # 将连接IN1的GPIO引脚设置为输出模式
GPIO.setup(INT2, GPIO.OUT) # 将连接IN2的GPIO引脚设置为输出模式
pwma = GPIO.PWM(16,80)
pwma.start(90)
c = input("If you want to continue, type 'y' please. Type 'e' to end.")
a = int(input('请输入数字:'))
while c == 'y':
if a == 0 :
GPIO.output(INT1, GPIO.LOW)
GPIO.output(INT2, GPIO.HIGH)
GPIO.output(ENA, GPIO.HIGH)
elif a == 1:
GPIO.output(INT1, GPIO.HIGH)
GPIO.output(INT2, GPIO.LOW)
GPIO.output(ENA, GPIO.HIGH)
elif a ==2:
break
time.sleep(2) #休息2秒,转换
c = input("'y' or 'e'?")
if c == 'y':
a = int(input('zhengzhuan:0,fanzhuan:1,pause:2'))
else:
break
GPIO.cleanup() #释放接口
exit() #退出

标签:ENA,树莓,input,引脚,INT1,output,直流电机,GPIO,4B
From: https://www.cnblogs.com/simple-one/p/17534513.html

相关文章

  • 【资料分享】RK3568评估板规格书(4x ARM Cortex-A55(64bit),主频1.8GHz)
     1 评估板简介创龙科技TL3568-EVM是一款基于瑞芯微RK3568J/RK3568B2处理器设计的四核ARMCortex-A55国产工业评估板,每核主频高达1.8GHz/2.0GHz,由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振、连接器等所有器件均采用国产工业级方案,国产化率100%。同时,评估底板大部......
  • 树莓派4B-MAX9814麦克风模块
    树莓派4B-MAX9814麦克风模块硬件需求树莓派MAX9814模块杜邦线MAX9814模块电子特性实验电路板实验电路局部典型工作特性引角接线代码展示importRPi.GPIOasGPIO#定义GPIO引脚DATAPIN=17CLKPIN=18defsetup():GPIO.setmode(GPIO.BCM)GPIO......
  • 【每日一题】Problem 414B. Mashmokh and ACM
    原题解决思路先计算\([1,n]\)中的约数集合\(dp[i][j](i\in[1,n],j\in[1,k])\)表示第\(j\)个数放置\(i\)所拥有的可能性以此类推,到达\(k\)时,计算\(\sum_{i=1}^{n}dp[i][k]\)即可#include<bits/stdc++.h>intmain(){intn,k;std::cin>>n>>k;......
  • 树莓派4B-GPIO控制步进电机
    树莓派4B-GPIO控制步进电机硬件需求:步进电机树莓派杜邦线L298N驱动模块选择步进电机首先需要确认步进电机,因为步进电机可分为单极性和双极步进电动机两种,这两种电机的驱动方式是不同的。步进电机优于伺服电机的主要优点是电机轴完全旋转分为几步并且可以通过给电机线圈通......
  • 使用numpy实现bert模型,使用hugging face 或pytorch训练模型,保存参数为numpy格式,然后使
     之前分别用numpy实现了mlp,cnn,lstm,这次搞一个大一点的模型bert,纯numpy实现,最重要的是可在树莓派上或其他不能安装pytorch的板子上运行,推理数据本次模型是随便在huggingface上找的一个新闻评论的模型,7分类看这些模型参数,这并不重要,模型占硬盘空间都要400+Mbert.embeddings.w......
  • 树莓派4B-GPIO控制舵机转动
    树莓派4B-GPIO控制舵机转动硬件需求:树莓派舵机杜邦线舵机什么是舵机?舵机(servomotor)是一种简化版本的伺服电机,是位置伺服的驱动器,能够通过输入PWM信号控制旋转角度,具备轻量、小型、简化和性价比高的特点。舵机适用于那些需要角度不断变化并可以保持的简单控制系统,它能实......
  • 树莓派集群真的可以顶上一台高性能计算机吗?(扩展篇)
    之前写过文章:树莓派集群真的可以顶上一台高性能计算机吗讨论过树莓派集群是否可以比得上一台高性能计算机的问题,本篇这里是对前文的扩展。   ========================================================  之所以写了本篇扩展是因为无意中在网上发现了下文:https://a......
  • LCD多键触摸驱动IC芯片VK36N3B/4B/5B/6B/7B/8B技术资料
    型号汇总:VK36N3B-8B按键数不同,分别对应3-8个触摸按键VK36N3B封装为sop8,VK36N4-8B为sop16,VK36N3B/4B为2位BCD码输出,VK36N5B-8B为3位BCD码输出。概述:VK36N3B具有3个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较高的集成度,仅需极少的外部组件便可实现触摸按键......
  • 闲来无事-树莓派控制风扇启停
    扯淡时间端午放假,本想注册个美团众包骑自行车送外卖体验一下生活,奈何这几天北京热的要死,只能作罢,还是苟在屋里空调续命吧。无事干的时候,想着给我花盆监控升个级,换个电容的土壤检测(之前的腐蚀了gg了)但是电容的是3v的,esp8266只能检测1v的,所以买了一个新的esp32-cam,正好带个摄像......
  • 闲来无事-控制树莓派风扇启停
    扯淡时间端午放假,本想注册个美团众包骑自行车送外卖体验一下生活,奈何这几天北京热的要死,只能作罢,还是苟在屋里空调续命吧。无事干的时候,想着给我花盆监控升个级,换个电容的土壤检测(之前的腐蚀了gg了)但是电容的是3v的,esp8266只能检测1v的,所以买了一个新的esp32-cam,正好带个摄像......