arduino                
            Communication série
        
        
            
    Recherche…
Syntaxe
-  
Serial.begin(speed)// Ouvre le port série sur le débit en bauds donné -  
Serial.begin(speed, config) -  
Serial[1-3].begin(speed)// Arduino Mega uniquement! Lorsque vous écrivez 1-3, cela signifie que vous pouvez choisir entre les numéros 1 à 3 lors du choix du port série. -  
Serial[1-3].begin(speed, config)// Arduino Mega seulement! Lorsque vous écrivez 1-3, cela signifie que vous pouvez choisir entre les numéros 1 à 3 lors du choix du port série. -  
Serial.peek()// Lit le prochain octet de l'entrée sans le retirer du tampon -  
Serial.available()// Obtient le nombre d'octets dans le tampon -  
Serial.print(text)// Écrit le texte sur le port série -  
Serial.println(text)// Identique àSerial.print()mais avec une nouvelle ligne 
Paramètres
| Paramètre | Détails | 
|---|---|
| La vitesse | Le taux du port série (généralement 9600) | 
| Texte | Le texte à écrire sur le port série (n'importe quel type de données) | 
| Bits de données | Nombre de bits de données dans un paquet (de 5 à 8), la valeur par défaut est 8 | 
| Parité | Options de parité pour la détection des erreurs: none (par défaut), pair, impair | 
| Bits d'arrêt | Nombre de bits d'arrêt dans un paquet: un (par défaut), deux | 
Remarques
L'Arduino Mega dispose de quatre ports série parmi lesquels il est possible de choisir. Ils sont accédés de la manière suivante
  Serial.begin(9600);
  Serial1.begin(38400);
  Serial2.begin(19200);
  Serial3.begin(4800);
Le port série d'un Arduino peut être configuré avec des paramètres supplémentaires. Le paramètre config définit les bits de données, la parité et les bits d'arrêt. Par exemple:
 8 bits de données, même parité et 1 bit d'arrêt seraient - SERIAL_8E1 
 6 bits de données, parité impaire et 2 bits d'arrêt seraient - SERIAL_6O2 
 7 bits de données, pas de parité et 1 bit d'arrêt serait - SERIAL_7N1 
Simple à lire et à écrire
Cet exemple écoute les entrées provenant de la connexion série, puis les répète sur la même connexion.
byte incomingBytes;
void setup() {                
  Serial.begin(9600); // Opens serial port, sets data rate to 9600 bps.
}
void loop() {
  // Send data only when you receive data.
  if (Serial.available() > 0) {
    // Read the incoming bytes.
    incomingBytes = Serial.read();
    // Echo the data.
    Serial.println(incomingBytes);
  }
}
        Filtrage Base64 pour les données d'entrée série
String base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
void setup() {
    Serial.begin(9600); // Turn the serial protocol ON
    Serial.println("Start Typing");
}
void loop() {
    if (Serial.available() > 0) { // Check if data has been sent from the user
        char c = Serial.read();   // Gets one byte/Character from serial buffer
        int result = base64.indexOf(c); // Base64 filtering
        if (result>=0)
            Serial.print(c); // Only print Base64 string
    }
}
        Gestion des commandes sur série
byte incoming;
String inBuffer;
void setup() {
    Serial.begin(9600); // or whatever baud rate you would like
}
void loop(){
    // setup as non-blocking code
    if(Serial.available() > 0) {
        incoming = Serial.read();
        
        if(incoming == '\n') {  // newline, carriage return, both, or custom character
        
            // handle the incoming command
            handle_command();
            // Clear the string for the next command
            inBuffer = "";
        } else{
            // add the character to the buffer
            inBuffer += incoming;
        }
    }
    // since code is non-blocking, execute something else . . . .
}
void handle_command() {
    // expect something like 'pin 3 high'
    String command = inBuffer.substring(0, inBuffer.indexOf(' '));
    String parameters = inBuffer.substring(inBuffer.indexOf(' ') + 1);
    
    if(command.equalsIgnoreCase('pin')){
        // parse the rest of the information
        int pin = parameters.substring("0, parameters.indexOf(' ')).toInt();
        String state = parameters.substring(parameters.indexOf(' ') + 1);
        if(state.equalsIgnoreCase('high')){
            digitalWrite(pin, HIGH);
        }else if(state.equalsIgnoreCase('low)){
            digitalWrite(pin, LOW);
        }else{
            Serial.println("did not compute");
        }
    } // add code for more commands 
}
        Communication série avec Python
Si vous avez un Arduino connecté à un ordinateur ou à un Raspberry Pi et que vous souhaitez envoyer des données de l’Arduino au PC, vous pouvez procéder comme suit:
Arduino:
void setup() {
  // Opens serial port, sets data rate to 9600 bps:
  Serial.begin(9600);
}
void loop() {
  // Sends a line over serial:
  Serial.println("Hello, Python!");
  delay(1000);
}
Python:
import serial
ser = serial.Serial('/dev/ttyACM0', 9600)  # Start serial communication
while True:
    data = ser.readline()  # Wait for line from Arduino and read it
    print("Received: '{}'".format(data))  # Print the line to the console