Arduino > Envoyer une lecture analogique par série

1.  À 1 seul octet

1.1  Code Arduino

// 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.
                }
        }
}

1.2  Code Processing

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();


}

2.  En ASCII


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);
}