Code RPI-PY-act 101
Version Pi - Python⚓
import RPi.GPIO as GPIO
import time
numPin = 18 # la LED ou le buzzer est reliée à la broche 37 (BOARD) ou 18 (BCM)
def setup():
#GPIO.setmode(GPIO.BOARD) # Numérotation physique, sinon GPIO.BCM pour la notation BCM
GPIO.setmode(GPIO.BCM)
GPIO.setup(numPin, GPIO.OUT) # La broche est configurée en sortie
GPIO.output(numPin, GPIO.LOW) # On éteint la LED ou le arrête le buzzer
print ('using pin%d'%numPin) # On affiche le n° de broche
def loop():
while True:
GPIO.output(numPin, GPIO.HIGH) # led ou buzz on
print ('...led ou buzz on')
time.sleep(1) # on attend 1 seconde
GPIO.output(numPin, GPIO.LOW) # led ou buzz off
print ('led ou buzz off...')
time.sleep(1)
def destroy():
GPIO.output(numPin, GPIO.LOW) # led off
GPIO.cleanup() # libérer les ressources
if __name__ == '__main__': # Démarrage du programme
setup()
try:
loop()
except KeyboardInterrupt: # Quand 'Ctrl+C' est activé, la méthode destroy est appelée pour mettre fin au programme
destroy()
Détail du code⚓
La librairie RPi.GPIO permet d'accéder aux différentes fonctions permettant d'accéder l'initialisation de la notation des broches (setmode
), au sens du port DIO (fonction setup
avec le sens GPIO.OUT ou GPIO.IN).
La librairie time permet d'intégrer dans le code des fonctions liées au temps, ici, on utilisera la fonction sleep()
.
La fonction output permet de définir le niveau de la sortie (LOW ou HIGH)
On notera la boucle qui est infinie jusqu'à ce que le programme principal détecte une exception de type Interruption clavier via CTRL+C
.
Enfin, il est important de noter les 3 phases :
setup : que faire au début du programme
loop : que doit répéter le programme
destroy : que faire à la fin du programme
Alternative⚓
On utilise une boucle for pour faire un certain nombre de cycles avant d'arrêter le programme.
import RPi.GPIO as GPIO
import time
Pin = 18 # la LED est reliée à la broche 37
NbCycles = 5
def setup():
#GPIO.setmode(GPIO.BOARD) # Numérotation physique, sinon GPIO.BCM pour la notation BCM
GPIO.setmode(GPIO.BCM)
GPIO.setup(Pin, GPIO.OUT) # La broche est configurée en sortie
GPIO.output(Pin, GPIO.LOW) # On éteint la LED
def code():
for i in range(1, NbCycles):
print('Cycle n°%d'%i)
GPIO.output(Pin, GPIO.HIGH)
time.sleep(2)
GPIO.output(Pin, GPIO.LOW)
time.sleep(1)
print('fin de la boucle')
def destroy():
GPIO.output(Pin, GPIO.HIGH)
GPIO.cleanup()
print('Ressources libérées')
if __name__ == '__main__': # Démarrage du programme
setup()
try:
print('Lancement du programme dans la méthode code")
code()
except KeyboardInterrupt: # Quand 'Ctrl+C' est activé, la méthode destroy est appelée pour mettre fin au programme
print('Interrom