Arduino : créer un bouton

Un bouton, pour arduino, est un capteur. Un capteur minimal qui peut dire quand il est appuyé et quand il ne l’est pas.

Arduino vers le monde extérieur

On peut envoyer une information de arduino facilement.
Dans le setup, on déclarera :

void setup(){
Serial.begin(9600);
}

void loop(){
Serial.print("Voic une info sans retour a la ligne - ");
Serial.println("Voic une info AVEC retour a la ligne");
delay(1000);
}

Ceci établit une connection au port série à 9600 bauds

Ensuite, on emploie les deux fonctions de base, Serial.print() et Serial.println

Le port série est très utile pour débugguer nos code : tester un vairaible en temps réel, voir quand un événement est perçu par un capteur, etc.

Du monde extérieur vers arduino

Arduino peut lire l’information provenant du port série. Mais rappelez-vous que arduino est beaucoup plus rapide que l’information qui lui arrive. Il faut donc écrire un code qui attend l’info, la lit quand elle arrive et la traite.

int ledPin = 9;

void setup()
{
 // begin the serial communication
 Serial.begin(9600);
 pinMode(ledPin, OUTPUT);

}

void loop()
{
 byte val;

 // regarde si quelque chose se trouve dans le buffer 
 if (Serial.available()) {
  // lit le premier byte dans la pile (valeur entre 0 to 255)
  val = Serial.read();
  // set the brightness of the LED
  analogWrite(ledPin, val); // par exemple
 }
}

Le code ci-dessus dimme la led sur la pin 9, en power modulator. On peut aussi imaginer un traitement sur un caractere, parfois plus facile :

int ledPin = 9;

void setup()
{
 // begin the serial communication
 Serial.begin(9600);
 pinMode(ledPin, OUTPUT);
}

if (Serial.available() > 0) {

  char valeur = Serial.read();

  switch(valeur) {
  case 'a':
   analogWrite(ledPin, 30);

  case 'c':
   analogWrite(ledPin, 120);

  case 'd':
   analogWrite(ledPin, 230);
  }
}

Lorsque l’on veut coder l’information sur plusieurs bytes, il faudra plus d’astuce.