# 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