12345上山打老虎 发表于 2020-4-28 00:11:55

【临沂】第四课Python——控制舵机转动速度

上一节课我们讨论 了下舵机,更早的时候我们也探讨了舵机,关于占空比,关于舵机在何种输出时间会快,会慢的说明请往前翻阅,今天继续我们的代码旅程,用代码控制舵机转动。
转动一:顺时针速度由快到慢,停,逆时针由慢到快,停止
import RPi.GPIO as GPIO

import time

Duoji = 18             # 舵机接在18号口

GPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)

GPIO.setup(Duoji, GPIO.OUT, initial=False)

p = GPIO.PWM(Duoji, 50)

p.start(0)

zkb = 5               # 占空比作为变量

for i in range(50):

    zkb = 5 + i * 0.1# 根据循环次数每次变化一点点

    p.ChangeDutyCycle(zkb)

    time.sleep(0.5)

p.stop()

GPIO.cleanup()

转动二:顺时针由快到慢,停,逆时针由慢到快到慢,停,顺时针由慢到快到慢,停,再逆时针重复
import RPi.GPIO as GPIO
import time
Duoji = 18      # 舵机接在18号口
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(Duoji, GPIO.OUT, initial=False)
p = GPIO.PWM(Duoji, 50)
p.start(0)
for n in range(5):
    zkb = 5
    for i in range(50):
      zkb = 5 + i * 0.1
      p.ChangeDutyCycle(zkb)
      time.sleep(0.5)
    zkb = 10   # for循环从10减小到5
    for i in range(50):
      zkb = 10 - i * 0.1
      p.ChangeDutyCycle(zkb)
      time.sleep(0.5)
p.stop()
GPIO.cleanup()
通过观察这两个程序,我们抛开第一个For循环不看,要想实现慢快慢,只要加一个for循环,把第一个程序中速度最大将要停止时给接力上就可以实现由快到慢的转动了,舵机是实现硬件移动的灵魂所在,学好怎样使用舵机从我做起。

DFrJ5KYVQaH 发表于 2020-4-28 09:27:25

好,收藏,接着学习
页: [1]
查看完整版本: 【临沂】第四课Python——控制舵机转动速度