树莓派控制超声波和l298n代码

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
trig=5 #send-pin
echo=6 #receive-pin
GPIO.setup(trig,GPIO.OUT,initial=GPIO.LOW)
GPIO.setup(echo,GPIO.IN)
 
def Measure():
 
    #send
    GPIO.output(trig,True)
    time.sleep(0.00001) #1us
    GPIO.output(trig,False)
 
    #start recording
    while GPIO.input(echo)==0:
        pass
    start=time.time()
 
    #end recording
    while GPIO.input(echo)==1:
        pass
    end=time.time()
 
    #compute distance
    distance=round((end-start)*343/2*100,2)
    print("distance:{0}cm,{1}m".format(distance,distance/100))
    
while True:
    Measure()
    time.sleep(1)
    
GPIO.cleanup();

import RPi.GPIO as GPIO         # 引入GPIO模块
import time                     # 引入time模块
 
ENB = 21
ENA = 5
IN1 = 19
IN2 = 26
IN3 = 13
IN4 = 6
 
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引脚设置为输出模式
        GPIO.setup(ENB, GPIO.OUT)       # 将连接ENA的GPIO引脚设置为输出模式
        GPIO.setup(IN3, GPIO.OUT)       # 将连接IN1的GPIO引脚设置为输出模式
        GPIO.setup(IN4, GPIO.OUT)
 
        while True:
            # 驱动电机正向旋转5秒
            GPIO.output(IN1, False)     # 将IN1设置为0
            GPIO.output(IN2, True)      # 将IN2设置为1
            GPIO.output(ENA, True)      # 将ENA设置为1,启动A通道电机
            GPIO.output(IN3, False)     # 将IN1设置为0
            GPIO.output(IN4, True)      # 将IN2设置为1
            GPIO.output(ENB, True)
            time.sleep(2)               # 等待电机转动5秒
 
            # 电机停止2秒
            GPIO.output(ENA, False)     # 将ENA设置为0
            GPIO.output(ENB, False)
            time.sleep(1)               # 等待电机停止2秒
 
            # 驱动电机反向旋转5秒
            GPIO.output(IN1, True)      # 将IN1设置为1
            GPIO.output(IN2, False)     # 将IN2设置为0
            GPIO.output(ENA, True)      # 将ENA设置为1,启动A通道电机
            GPIO.output(IN3, True)      # 将IN1设置为1
            GPIO.output(IN4, False)     # 将IN2设置为0
            GPIO.output(ENB, True)
            time.sleep(2)               # 等待电机转动5秒
 
            # 电机停止2秒
            GPIO.output(ENA, False)     # 将ENA设置为0
            GPIO.output(ENB, False) 
            time.sleep(1)               # 等待电机停止2秒
 
    finally:
        pwm.stop()                      # 停止PWM
        GPIO.cleanup()                  # 清理释放GPIO资源,将GPIO复位
 
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jun_军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值