Arduino > Exemple de communication à un octet pour interrupteur et DEL
Contents (hide)
// See http://wiki.t-o-f.info/Arduino/ExempleDeCommunication%C3%80UnOctetPourInterrupteurEtDEL #include <Bounce2.h> // Inclure la logithèqe Bounce Bounce button; // Une instance de Bounce void setup() { Serial.begin(57600); // Initialiser le port serie. // Attacher l'instance de Bounce a la broche 12 // avec un temps de remondissement de 5. button.attach(12,INPUT_PULLUP); button.interval(5); // Configuration de la broche relie a la DEL de debogage // en tant que sortie numerique. pinMode(LED_BUILTIN,OUTPUT); } void loop() { // Mettre a jour l'etat du bouton. button.update(); if ( button.fell() ) { // Si le bouton a ete envoye. Serial.print('L'); // Envoyer un L. } else if ( button.rose() ) { Serial.print('H'); // Envoyer un H. } 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 = "/dev/tty.usbserial-A20022bM"; // Declarer une instance de la classe Serial: Serial serial; // Declarer une variable qui correspondra // a l'etat de l'interrupteur. int interrupteur; 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); textAlign(LEFT,TOP); } void draw() { if ( interrupteur == 0 ) { background(0); } else { background(255); } } 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. int data = p.read(); if ( data == 'H' ) { interrupteur = 0; } else if ( data == 'L' ) { interrupteur = 1; } }