Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Writing Program in Python

> vi sample.py

Code Block
languagepy
titlesample.py
# External module imports
import RPi.GPIO as GPIO
import time

# Pin Definitons:
pwmPinPIN_TRUNK_SENSOR = 18 # Broadcom pin 18 (P1 pin 12)
ledPin = 23 # Broadcom pin 23 (P1 pin 16)
butPin = 17 # Broadcom pin 17 (P1 pin 11)

dc = 95 # duty cycle (0-100) for PWM pin27 
PIN_DOOR_SENSOR  = 6


PIN_DOOR_1 	   = 12
PIN_DOOR_2 	   = 25


PIN_TRUNK_1 	   = 22
PIN_TRUNK_2      = 13


# Pin Setup:
GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme



GPIO.setup(PIN_TRUNK_SENSOR, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 
GPIO.setup(ledPinPIN_DOOR_SENSOR, GPIO.IN, pull_up_down=GPIO.OUTPUD_DOWN) # LED pin set as output 

GPIO.setup(pwmPinPIN_DOOR_1, GPIO.OUT) # PWM pin set as output
pwm = GPIO.PWM(pwmPinsetup(PIN_DOOR_2, 50GPIO.OUT)  # Initialize PWM on pwmPin 100Hz frequency
GPIO.setup(butPinPIN_TRUNK_1, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Button pin set as input w/ pull-upOUT) 
GPIO.setup(PIN_TRUNK_2, GPIO.OUT) 


# Initial state for LEDs:
GPIO.output(PIN_DOOR_1, GPIO.LOW)
GPIO.output(PIN_DOOR_2, GPIO.LOW)
GPIO.output(ledPinPIN_TRUNK_1, GPIO.LOW)
pwmGPIO.start(dc)

output(PIN_TRUNK_2, GPIO.LOW)

doorSensorVal=False
trunkSensorVal=False


newDoorSensorVal=False
newTrunkSensorVal=False

print("Here we go! Press CTRL+C to exit")
try:
    while 1:
		
		#read        if DOOR sensors
		newDoorSensorVal=GPIO.input(butPin): # button is released
            pwm.ChangeDutyCycle(dc)
            GPIO.output(ledPinPIN_DOOR_SENSOR)	
		if (newDoorSensorVal != doorSensorVal):
			doorSensorVal=newDoorSensorVal	
			if(doorSensorVal==True):
				#lock
				print(">DOOR SENSOR = LOW (LOCK)")
				GPIO.output(PIN_DOOR_1, GPIO.HIGH)
				GPIO.output(PIN_DOOR_2, GPIO.LOW)
				time.sleep(0.075)
				GPIO.output(PIN_DOOR_1, GPIO.LOW)
				GPIO.output(PIN_DOOR_2, GPIO.LOW)
        else: # button is pressed:
            pwm.ChangeDutyCycle(100-dc)
            GPIO.output(ledPin			else:
				print(">DOOR SENSOR = HIGH (UNLOCK)")
				GPIO.output(PIN_DOOR_1, GPIO.LOW)
				GPIO.output(PIN_DOOR_2, GPIO.HIGH)
				time.sleep(0.075)
				GPIO.output(PIN_DOOR_1, GPIO.LOW)
				GPIO.output(PIN_DOOR_2, GPIO.LOW)

		#read TRUNK sensors
		newTrunkSensorVal=GPIO.input(PIN_TRUNK_SENSOR)	
		if (newTrunkSensorVal != trunkSensorVal):
			trunkSensorVal=newTrunkSensorVal	
			if(trunkSensorVal==True):
				#lock
				print(">TRUNK SENSOR = LOW (LOCK)")
				GPIO.output(PIN_TRUNK_1, GPIO.HIGH)
            				GPIO.output(PIN_TRUNK_2, GPIO.LOW)
				time.sleep(0.075)

				GPIO.output(PIN_TRUNK_1, GPIO.LOW)
				GPIO.output(PIN_TRUNK_2, GPIO.LOW)
			else:
				print(">DOOR SENSOR = HIGH       (UNLOCK)")
				GPIO.output(PIN_TRUNK_1, GPIO.HIGH)
				GPIO.output(ledPinPIN_TRUNK_2, GPIO.LOW)
            				time.sleep(0.075)
				GPIO.output(PIN_TRUNK_1, GPIO.LOW)
				GPIO.output(PIN_TRUNK_2, GPIO.LOW)



except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly:
    pwm.stop() # stop PWM
    GPIO.cleanup() # cleanup all GPIO



Run the program

> sudo python sample.py


References