Raspberry Pi GPIO : controle d'une LED en Python ou avec Scratch
Tout d'abord quelques mots sur les LEDs.
- Le courant ne passe que dans un seul sens dans une LED. L'anode (connecteur long de la LED) doit être du côte du pôle + de la pile.
- La tension minimale pour emmètre de la lumière est d'environ 2V.
- Les LED courantes supportent au maximum un courant de 20mA. Il faut généralement associer un résistance sinon le courant est trop fort et détruit la diode
- Pour calculer la valeur de la résistance à appliquer il faut utiliser la loi d'Ohm : U=RI. Par exemple :
- avec une pile de 9V. R=U/I donc R=9/0,02 soit R=450 Ohm. Il faut au minimum une résistance de 450 Ohm
- avec une pile de 1.5V , R=1.5/0.02 , une résistance de 75 Ohm suffit.
- avec une alim de 3.5V (RasPI GPIO) : R=3,5/0,02, une résistance de 175 Ohm convient.
- avec une alim de 5V : R=5/0.02, il faut au moins 250 Ohm
Voyons maintenant quelques infos sur le GPIO:
Il y a 40 pins sur un raspberry PI3.
- On peut les noter en fonction de leur position physique). Dans ce cas le pin1 correspond au pin en haut à gauche du GPIO (si on place le PI avec la prise d'alimentation en haut à gauche), le pin2 est juste a coté le pin3 sous le pin1 le 4 sous le 2 et ainsi de suite...
- On peut aussi les noter en fonction de leur rôle (numérotation BCM) dans ce cas il faut avoir un schéma indiquant les positions.
- Pin + : pin 11 (ou pin 17 si numérotation en BCM)
- Pin ground : GND pin 9
- Une résistance 330Ohms
- Une diode
- Pour pouvoir accéder au GPIO en python : sudo python
- Importer la library pour le GPIO : import RPi.GPIO as GPIO
- Pour utiliser les pins phyisiques : GPIO.setmode(GPIO.BOARD)
- Pour indiquer quel pin est une sortie : GPIO.setup(11,GPIO.OUT)
- Pour mettre le pin ON : GPIO.output(11,True)
ou : GPIO.output(11,1) - Pour mettre le pin OFF : GPIO.output(11,False)
ou : GPIO.output(11,0) - Pour faire un reset du GPIO a la fin du programme : GPIO.cleanup()
On peut mettre tout ça dans un script python (sudo nano monscript.py). Ne pas oublier sudo python pour pouvoir accéder au GPIO :
#script blink.py
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
diode=17
GPIO.setup(diode,GPIO.OUT)
while(True):
GPIO.output(diode,True)
time.sleep(0.1)
GPIO.output(diode,False)
time.sleep(0.1)
Un article détailllé en français
Copie d'écran avec scrot -cd 10 /home/pi/myscreen.png