# gpio01_allume_led.py
# Fait clignoter une led.
# Celle qui se trouve sur le port GPIO 13
#On import les modules nécessaires
from RPi import GPIO
import time
#On désactives les ‘warnings’ et on lui précise que l’on travaille avec les numéros des gpio et non le numéro des pins
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
#ON précise que le gpio 13 est en mode ‘sortie’, elle sert ici à envoyer du courant
GPIO.setup(13, GPIO.OUT)
#Le code même du programme, LOW correspond à ‘éteindre’ et HIGH à ‘allumer’
GPIO.output(13, GPIO.LOW)
print("Start")
nn=0
while (nn < 5):
nn = nn + 1
GPIO.output(13, GPIO.HIGH)
time.sleep(0.5)
GPIO.output(13, GPIO.LOW)
time.sleep(0.5)
print("Stop")
"""
c.f. https://ouiaremakers.com/posts/tutoriel-diy-gestion-des-gpio-du-raspberry-pi-avec-python3-x
Ce programme fonctionne avec Python 3.
1) Depuis un terminal, à installer :
i) évidemment, python 3, qui est probablement déjà installé.
sudo apt-get update
sudo apt-get install python3
ii) la librairie GPIO, qui permet d'accéder aux ports GPIO
sudo apt-get install RPi.GPIO
2) lancer Python 3 (IDLE) depuis le menu Raspbian
3) copier le programme ci-dessus.
4) brancher les pins correctements
5) exécuter le programme.
Normalement, la LED connectée à votre port GPIO devrait clignéter.
Ceci est une liste exhaustive, prenez le temps de la lire nous l’utiliserons dans l’étape 3 ;
Pour préciser que l’on travaille avec les numéros des gpio :
_GPIO.setmode(GPIO.BCM)
Pour préciser que l’on travaille avec les numéros des pins :
_GPIO.setmode(GPIO.BOARD)
Pour définir le mode ‘sortie’ du gpio :
_GPIO.setup(“numéro du gpio”, GPIO.OUT)
ou le mode ‘entrée’:
_GPIO.setup(“numéro du gpio”,GPIO.IN)
Pour l’état 0 :
_GPIO.output(“numéro du gpio”,GPIO.LOW)
Pour l’état 1 :
_GPIO.output(“numéro du gpio”,GPIO.HIGH)
"""

# gpio02_allume_3_led.py
# Allume 3 leds alternativement,
# en effectuant un comptage binaire.
#On import les modules nécessaires
from RPi import GPIO
import time
#On désactives les ‘warnings’ et on lui précise que l’on travaille avec les numéros des gpio et non le numéro des pins
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
# pin utilisés
pinA = 26
pinB = 19
pinC = 13
#ON précise que le gpio pinA pinB pinC sont en mode ‘sortie’.
GPIO.setup(pinA, GPIO.OUT)
GPIO.setup(pinB, GPIO.OUT)
GPIO.setup(pinC, GPIO.OUT)
#Le code même du programme, LOW correspond à ‘éteindre’ et HIGH à ‘allumer’
GPIO.output(pinA, GPIO.LOW)
GPIO.output(pinB, GPIO.LOW)
GPIO.output(pinC, GPIO.LOW)
nA = 0
nB = 0
nC = 0
print("Start")
nn=0
while (nn < 10):
time.sleep(0.5)
nn = nn + 1
nA = 1 - nA
GPIO.output(pinA, nA)
if (nA == 0):
nB = 1 - nB
GPIO.output(pinB, nB)
if (nB == 0):
nC = 1 - nC
GPIO.output(pinC, nC)
GPIO.output(pinA, GPIO.LOW)
GPIO.output(pinB, GPIO.LOW)
GPIO.output(pinC, GPIO.LOW)
print("Stop")
"""
Ceci est une liste exhaustive, prenez le temps de la lire nous l’utiliserons dans l’étape 3 ;
Pour préciser que l’on travaille avec les numéros des gpio :
_GPIO.setmode(GPIO.BCM)
Pour préciser que l’on travaille avec les numéros des pins :
_GPIO.setmode(GPIO.BOARD)
Pour définir le mode ‘sortie’ du gpio :
_GPIO.setup(“numéro du gpio”, GPIO.OUT)
ou le mode ‘entrée’:
_GPIO.setup(“numéro du gpio”,GPIO.IN)
Pour l’état 0 :
_GPIO.output(“numéro du gpio”,GPIO.LOW)
Pour l’état 1 :
_GPIO.output(“numéro du gpio”,GPIO.HIGH)
"""


# gpio06_lecture_phto_resistance_par_condensateur.py
# Test la résistance d'un port GPIO lorsqu'il est en INPUT
# Il semble qu'elle soit assez grande. > 1 Méga-ohms
#
# Le condensateur est de 33 nF, la résistance infinie, RC = infini
# La mesure du temps de décharge est de 2,48 [s] à 3% près, donc énorme ! C'est bien !
#
# Le condensateur est de 33 nF, la résistance de 3,3 k-ohms, RC = 0,109 [ms]
# La mesure du temps de décharge est de 0,112 [ms] à 3% près
#
# Le condensateur est de 33 nF, la résistance de 10 k-ohms, RC = 0,33 [ms]
# La mesure du temps de décharge est de 0,336 [ms] à 3% près
#
# Le condensateur est de 33 nF, la résistance de 33 k-ohms, RC = 1,09 [ms]
# La mesure du temps de décharge est de 1,15 [ms] à 3% près
#
# Le condensateur est de 4,7 nF, la résistance infinie, RC = infini
# La mesure du temps de décharge est de 2,56 [s] à 3% près, donc énorme ! C'est bien !
#
# Le condensateur est de 4,7 nF, la résistance de 10 k-ohms, RC = 0,047 [ms]
# La mesure du temps de décharge est de 0,040 [ms] à 10% près
#
# Avec le condensateur de 4,7 nF et une photo résistance, les variations de temps
# de décharge du condensateur vont de 0,3 [ms] à 0,016 [ms]
# On peut donc nettement mesurer une valeur à 10% près de la photorésistance
# Le temps de mesure est inférieur à 0,3 [ms],
# si on ne tient pas compte du temps de charge du condensateur.
# Avec un temps de charge de 0.01 [ms], on peut mesurer plus de 100 états différents
# de la photorésistance.
# Donc, un temps de mesure entre 0.02 et 0.3 [ms] peut être assuré.
#
# 0,02 [ms] est une limite inférieur au temps de mesure,
# limitation due à la vitesse de Python.
#On import les modules nécessaires
from RPi import GPIO
import time
#On désactives les ‘warnings’ et on lui précise que l’on travaille avec les numéros des gpio et non le numéro des pins
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
#ON précise que le gpio 13 est en mode ‘sortie’, elle sert ici à envoyer du courant
# GPIO.setup(13, GPIO.OUT)
GPIO.setup(21, GPIO.IN) # PORT 21 en INPUT
print("Start")
kk=0
while (kk < 100):
kk = kk + 1
GPIO.setup(21, GPIO.OUT)
GPIO.output(21, GPIO.HIGH) # sortie à l'état +3,3V Charge le condensateur
# time.sleep(0.00001) # le condensateur est très rapidement chargé.
time.sleep(0.00001)
nn = 0
GPIO.setup(21, GPIO.IN) # met le port en haute impédance
timeStart = time.time() # Temps en seconds au départ
while (GPIO.input(21) == 1) & (nn <400): # nn assure un temps de mesure pas trop long.
# Attente que le condensateur se décharge
nn = nn + 1
timeNow = time.time() # Temps actuel, pour mesurer le temps de décharge du condensateur
print("nn=", nn, " d-time=", 1000*(timeNow-timeStart))
print("Stop")
"""
c.f. https://ouiaremakers.com/posts/tutoriel-diy-gestion-des-gpio-du-raspberry-pi-avec-python3-x
Ce programme fonctionne avec Python 3.
1) Depuis un terminal, à installer :
i) évidemment, python 3, qui est probablement déjà installé.
sudo apt-get update
sudo apt-get install python3
ii) la librairie GPIO, qui permet d'accéder aux ports GPIO
sudo apt-get install RPi.GPIO
2) lancer Python 3 (IDLE) depuis le menu Raspbian
3) copier le programme ci-dessus.
4) brancher les pins correctements
5) exécuter le programme.
Normalement, la LED connectée à votre port GPIO devrait clignéter.
Ceci est une liste exhaustive, prenez le temps de la lire nous l’utiliserons dans l’étape 3 ;
Pour préciser que l’on travaille avec les numéros des gpio :
_GPIO.setmode(GPIO.BCM)
Pour préciser que l’on travaille avec les numéros des pins :
_GPIO.setmode(GPIO.BOARD)
Pour définir le mode ‘sortie’ du gpio :
_GPIO.setup(“numéro du gpio”, GPIO.OUT)
ou le mode ‘entrée’:
_GPIO.setup(“numéro du gpio”,GPIO.IN)
Pour l’état 0 :
_GPIO.output(“numéro du gpio”,GPIO.LOW)
Pour l’état 1 :
_GPIO.output(“numéro du gpio”,GPIO.HIGH)
"""

Plan du Site :
Home
Raspberry pi
pythongpio.html
( = http://www.juggling.ch/gisin/raspberrypi/pythongpio.html )
Page mise à jour le 20 février 2018 par Bernard Gisin
( Envoyer un e-mail )
Hébergement par : www.infomaniak.ch