L'objectif est de récupérer dans Python des mesures réalisées par un Arduino en utilisant la liaison série.
La photorésistance est connectée à une entrée analogique (A0) et nécessite un diviseur de tension réalisé avec une résistance de 1 KΩ (marron / noir / rouge).
Le code suivant permet d'afficher dans le moniteur série les valeurs lue sur la broche analogique A0.
void setup() { Serial.begin(9600); // Initialise la communication avec l'ordinateur } void loop() { int valeur = analogRead(A0); // Mesure la tension sur la broche A0 Serial.println(valeur); // Affiche la mesure sur l'ordinateur delay(250); }
Avant de lire avec Python les données envoyées sur le port série, il faut fermer le moniteur série d'Arduino !
Pour lire sur le port série, il faut :
import serial port_serie = serial.Serial(port = "COM4", baudrate = 9600) print(port_serie.readline()) port_serie.close()
Après l’exécution de ce code, la console Python pourrait afficher une chaine de caractères (byte) de la forme : b'795\r\n'
Les données envoyées par l’Arduino peuvent être stockées dans une liste :
import serial port_serie = serial.Serial(port = "COM4", baudrate = 9600) liste_mesures = [] for i in range(10): # pour lire les 10 premières lignes sur le port série mesure = port_serie.readline().split() # la fonction split() décompose la chaîne de caractères est supprime '\r\n' liste_mesures.append(mesure) # ajoute la valeur de "mesure" à la liste "liste_mesures" port_serie.close() print(liste_mesures)