Arduino > Envoyer une lecture analogique par série
Contents (hide)
// See http://wiki.t-o-f.info/Arduino/EnvoyerUneLectureAnalogiqueParSérie int lectureAnalogiquePrecedente; void setup() { Serial.begin(57600); // Initialiser le port serie. // Configuration de la broche relie a la DEL de debogage // en tant que sortie numerique. pinMode(LED_BUILTIN,OUTPUT); } void loop() { // effectuer une nouvelle lecture analogique. int nouvelleLectureAnalogique = analogRead(0); // si la nouvelle lecture est differente de la precedente. if ( lectureAnalogiquePrecedente != nouvelleLectureAnalogique ) { // La lecture analogique varie entre 0 et 1023. // Nous la divisons par 4 pour qu'elle soit entre 0 et 255. Serial.write( nouvelleLectureAnalogique / 4 ); // mettre en memoire la nouvelle lecture. lectureAnalogiquePrecedente = nouvelleLectureAnalogique; } while ( Serial.available() ) { // Verifier s'il y a des donnees a lire. int data = Serial.read(); // Lire la donnee. if ( data == 'H' ) { digitalWrite(13,HIGH); // Allumer la DEL de debogage. } else if ( data == 'L' ) { digitalWrite(13,LOW); // Eteindre la DEL de debogage. } } }
import processing.serial.*; /* * ___ __ __ ___ ___ ___ _____ _ _ _ _____ * |_ _| \/ | _ \/ _ \| _ \_ _/_\ | \| |_ _| * | || |\/| | _/ (_) | / | |/ _ \| .` | | | * |___|_| |_|_| \___/|_|_\ |_/_/ \_\_|\_| |_| * *Lorsque vous demarrez ce code, les noms de tous les ports series *sont affichés dans les messages de debogage de la fenetre Processing. *Vous devez changer la valeur de la variable "portName" *pour qu'elle corresponde au nom du port serie de l'Arduino. */ // Choisir le port serie. String portName = "COM4"; // Declarer une instance de la classe Serial: Serial serial; // Declarer une variable qui correspondra // a la valeur analogique. int lectureAnalogique; void setup() { size(256, 256); smooth(); println(Serial.list()); // Affiche les noms des ports. // Creer une instance de la classe Serial avec // un baud de 57600 et le port choisi. serial = new Serial(this, portName, 57600); } void draw() { background(0); float hauteurRectangle = lectureAnalogique/255.0*height; noStroke(); fill(255); rect(0,0,width, hauteurRectangle); } void mousePressed() { serial.write('H'); } void mouseReleased() { serial.write('L'); } // Definir une fonction pour recevoir les donnees du port serie. void serialEvent(Serial p) { // Lire la donnee. lectureAnalogique = p.read(); }
void setup() { // CONFIGURER LA COMMUNICATION SERIE Serial.begin(57600); } void loop() { // FAIRE UNE LECTURE ANALOGIQUE int lecture = analogRead(A0); // ENVOYER LA LECTURE Serial.println( lecture ); // PRENDRE UNE PETITE PAUSE delay(100); }