首页 > 其他分享 >树莓派4B-GPIO控制步进电机

树莓派4B-GPIO控制步进电机

时间:2023-06-30 19:44:54浏览次数:61  
标签:树莓 电机 delay sleep 步进 time GPIO 4B

树莓派4B-GPIO控制步进电机

硬件需求:

  1. 步进电机
  2. 树莓派
  3. 杜邦线
  4. L298N驱动模块

选择步进电机

首先需要确认步进电机,因为步进电机可分为单极性和双极步进电动机两种,这两种电机的驱动方式是不同的。步进电机优于伺服电机的主要优点是电机轴完全旋转分为几步并且可以通过给电机线圈通电来精确定位步进电机。即使没有像伺服电机那样的反馈机制,步进电机的步进角也会更小提供非常精确的角度定位。在这个项目中,将使用一个简单的12V双极性步进电机。

选择驱动模块

树莓派驱动这个步进电机,需要连接一个电机驱动模块,如L293D或L298N。这两个模块都适用于12V步进电机。因此,选择驱动程序模块取决于您,这里选择了L298N电机驱动器模块。  L298N是专用驱动集成电路,属于H桥集成电路,与L293D的差别是其输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。

连接树莓派与步进电机

下图显示了使用L298N的Raspberry Pi步进电机控制的连接图:

树莓派的pin11、pin12、pin13、pin15分别连接L298N的IN1、IN2、IN3、IN4。

步进电机的线不要接错了,不然可能会出现来回摆动

代码

import RPi.GPIO as GPIO
import time
 
IN1 = 11    # pin11
IN2 = 12
IN3 = 13
IN4 = 15
 
def setStep(w1, w2, w3, w4):
	GPIO.output(IN1, w1)
	GPIO.output(IN2, w2)
	GPIO.output(IN3, w3)
	GPIO.output(IN4, w4)
 
def stop():
	setStep(0, 0, 0, 0)
 
def forward(delay, steps):  
	for i in range(0, steps):
		setStep(1, 0, 0, 0)
		time.sleep(delay)
		setStep(0, 1, 0, 0)
		time.sleep(delay)
		setStep(0, 0, 1, 0)
		time.sleep(delay)
		setStep(0, 0, 0, 1)
		time.sleep(delay)
 
def backward(delay, steps):  
	for i in range(0, steps):
		setStep(0, 0, 0, 1)
		time.sleep(delay)
		setStep(0, 0, 1, 0)
		time.sleep(delay)
		setStep(0, 1, 0, 0)
		time.sleep(delay)
		setStep(1, 0, 0, 0)
		time.sleep(delay)
 
def setup():
	GPIO.setwarnings(False)
	GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
	GPIO.setup(IN1, GPIO.OUT)      # Set pin's mode is output
	GPIO.setup(IN2, GPIO.OUT)
	GPIO.setup(IN3, GPIO.OUT)
	GPIO.setup(IN4, GPIO.OUT)
 
def loop():
	while True:
		print ("backward...")
		backward(0.003, 512)  # 512 steps --- 360 angle
		
		print ("stop...")
		stop()                 # stop
		time.sleep(3)          # sleep 3s
		
		print ("forward...")
		forward(0.005, 512)
		
		print ("stop...")
		stop()
		time.sleep(3)
 
def destroy():
	GPIO.cleanup()             # Release resource
 
if __name__ == '__main__':     # Program start from here
	setup()
	try:
		loop()
	except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child function destroy() will be  executed.
		destroy()

结果展示

看!它轻松的把我的笔盖弹飞了!

最后,祝大家学业有成,生活顺心!

标签:树莓,电机,delay,sleep,步进,time,GPIO,4B
From: https://www.cnblogs.com/itduan/p/17517683.html

相关文章

  • 使用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,正好带个摄像......
  • TVS二极管DW05-4R3P-S 保护GPIO端口免受ESD静电威胁
    General-purposeInputOutput,中文:通用输入/输出端口,简称GPIO或总线扩展器。GPIO端口能够提供额外的控制和监视功能,每个GPIO端口可通过软件分别配置成输入或输出,由于其可能需要引线至外部传输数据,极其容易受到ESD静电放电及其他电磁脉冲浪涌的影响,为产品的稳定性和可靠性带来挑战......
  • 0.GPIO
    1、LSI RC,低速内部时钟(RC振荡器),是看门狗(WatchdogLS)的唯一时钟来源,可以作为实时时钟RTC和主时钟输出(MCO)的时钟源。2、LSE OSC,外部低速时钟(晶振),输入输出引脚接OSC32_IN、OCS32_OUT可以作为实时时钟RTC和主时钟输出(MCO)的时钟源。精度高于内部低速时钟。3、MSI RC,全称为Multispeedi......
  • 闲来无事-控制树莓派风扇启停
    扯淡时间端午放假,本想注册个美团众包骑自行车送外卖体验一下生活,奈何这几天北京热的要死,只能作罢,还是苟在屋里空调续命吧。无事干的时候,想着给我花盆监控升个级,换个电容的土壤检测(之前的腐蚀了gg了)但是电容的是3v的,esp8266只能检测1v的,所以买了一个新的esp32-cam,正好带个摄像......
  • 树莓派4B改造成云桌面客户端,连接DoraCloud免费版
     RaspberryPi(树莓派)是为学习计算机编程教育而设计的只有信用卡大小的微型电脑,自问世以来受众多计算机发烧友和创客的追捧,曾经一“派”难求。DoraCloud是一款多平台的桌面虚拟化管理软件,支持Hyper-V、VMware、Proxmox、XenServer等多种虚拟化平台。DoraCloud提供免费版,可以支......
  • linux gpio dev,linux gpio子系统 devicetree中GPIO_ACTIVE_LOW
    一直没怎么理解GPIO_ACTIVE_LOW的作用对于以上的dts你应该再熟悉不过,当然这里不是教你如何使用dts,而是关注gpio和irq最后一个数字可以如何利用。例如rst-gpio的OF_GPIO_ACTIVE_LOW代表什么意思呢?可以理解为低有效。什么意思呢?举个例子,正常情况下,我们需要一个gpio口控制灯,我们认......