test_stand.py

 avatar
unknown
python
a year ago
1.6 kB
2
Indexable
# Import the RPi.GPIO library for GPIO control
import RPi.GPIO as GPIO 

# Import the sleep function for introducing delays
from time import sleep

# Set the pin numbering mode to use physical pin numbers on the Raspberry Pi
GPIO.setmode(GPIO.BCM)

# Set up GPIO pins 4, 17, and 18 as output pins for controlling the motor
GPIO.setup(4, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)

#Set up GPIO pin 13 as output pins for controlling the servo motor
GPIO.setup(13, GPIO.OUT)

btn1 = 26
btn2 = 16
#Set up GPIO pins 26 and 19 as input pins for getting input from buttons
GPIO.setup(btn1, GPIO.IN)
GPIO.setup(btn2, GPIO.IN)



# Create a PWM (Pulse Width Modulation) object on pin 18 with a frequency of 100 Hz
p = GPIO.PWM(18, 100)
p2 = GPIO.PWM(13, 50)

p.start(0)
p2.start(0)

btn1_stat = 1
btn2_stat = 2
GPIO.output(18, False)
def check_btn():
    global btn1_stat
    global btn2_stat
    if GPIO.input(btn1) == 0:
        if btn1_stat == 0:
            btn1_stat = 1
        else:
            btn1_stat = 0
            
        
    if GPIO.input(btn2) == 0:
        if btn2_stat == 0:
            btn2_stat = 1
        else:
            btn2_stat = 0
   
        
    sleep(0.5)
        
    
    
while True:
    check_btn()
    while btn1_stat == 0:
        GPIO.output(18, True)
        GPIO.output(4, True)
        GPIO.output(17, False)
        p.start(25)
        check_btn()
    while btn2_stat == 0:
        
        p2.ChangeDutyCycle(2.5)
        check_btn()
        p2.ChangeDutyCycle(5)
        check_btn()
    p.start(0)
    GPIO.output(18, False)
        
        
    
Leave a Comment