Il s'agit d'exemples de code incomplets, et non du code qu'il faut écrire tel quel.

Activité 3

Communication série

void setup() {
  Serial.begin(9600);  /* permet de définir la vitesse de transmission des données entre
         la carte et le PC (9600 bauds = 9600 bits transmis par seconde).
         Nécessaire pour utiliser le moniteur série et les fonctions Serial.print
         et .println*/
}

void loop() {
  Serial.println("Winter is coming !"); // affiche sur l'écran du PC 
                                        // la chaîne de caractères "Winter is coming !"
  Serial.println("  "); // avec un retour à la ligne 
  delay(500);           // attend 500 ms
}

Activité 4

Bouton poussoir

byte BPpin = 4, BPvaleur; // déclare les variables BPpin (numero de broche) et BPvaleur
                          // comme des entiers. La variable BPpin aura comme valeur 4

// A mettre dans setup
  pinMode(BPpin,INPUT);      // configure la broche BPpin (ici 4) comme une entrée

// A mettre dans loop
  BPvaleur = digitalRead(BPpin); // lit la valeur de l'entrée numérique BPpin : 0 ou 1 
                              // (car les tensions 0V ou 5V sont converties en 0 ou 1), 
                              // puis affecte cette valeur à la variable BPvaleur

Potentiomètre

byte Potpin = A2;   // déclare la variable Potpin comme un entier 
                    // non signé de valeur A2 (constante prédéfinie)
int Potvaleur1023;  // déclare la variable Potvaleur1023 comme un entier

// A mettre dans setup
  pinMode(Potpin, INPUT);

// A mettre dans loop
  Potvaleur1023 = analogRead(Potpin);

Diode

Pour une commande logique

// COMMANDE LOGIQUE
int Ledpin = 10; // déclare la variable Ledpin comme un entier de valeur 10
// A COMPLETER

// A mettre dans setup
  pinMode(Ledpin,OUTPUT);    // configure la broche Ledpin comme une sortie

// A mettre dans loop
  digitalWrite(Ledpin,1);    // allume la Led avec une tension de +5V sur la broche
  // digitalWrite(Ledpin,0); // éteint la Led avec une tension de 0V sur la broche

Pour une commande pseudo-analogique

// COMMANDE PSEUDO ANALOGIQUE
int Ledpin = 10; // déclare la variable Ledpin comme un entier de valeur 10
int Potvaleur255; // déclare la variable définissant la tension (entre 0 et 255)

// A mettre dans setup
  pinMode(Ledpin,OUTPUT);  // configure la broche Ledpin comme une sortie

// A mettre dans loop
  Potvaleur255 = map(Potvaleur1023, 0, 1023, 0, 255); //change l'échelle de 0 à 1023 
                                        // en 0 à 255 afin que la variable Potvaleur255
                                        // soit compatible avec les sorties MLI
  analogWrite(Ledpin, Potvaleur255);   // définit le rapport cyclique de sortie MLI
                                       // Ledpin (nécessairement entre 0 et 255) 
                                       // (NB : 255 signifie +5V en continu)

Mesure de position avec un codeur incrémental

Le code suppose que la broche numérique 2 (interruption 0) est raccordée au codeur A.

int pinCA=2, pinCB=12; // broches des codeurs A et B. Codeur A sur interruption 0.
volatile int inc=0;    // variable associée au nombre d incréments

// A mettre dans setup
    pinMode(pinCA,INPUT); pinMode(pinCB,INPUT);
    attachInterrupt(0,fcodeur,CHANGE); // attache la fonction fcodeur à l interruption
                                       // 0 (broche D2).
                                       // La fonction est appelée à chaque changement
                                       // du niveau de tension de la broche

// A mettre en dehors des fonctions setup et loop
// La fonction modifie le nombre d'incréments à chaque interruption
void fcodeur() { // Incrémente (ou décrémente inc en mettant inc--)
  if(digitalRead(pinCA)==digitalRead(pinCB)) inc++ ;
  else inc--;
}

Boucle de temporisation pour mesure de la vitesse

long T0,T1;     // variables pour gérer le pas de temps
long dT=100000; // pas de temps en microsecondes

// A mettre dans loop
    // boucle de temporisation
    // attente du pas de temps dT (sans blocage des interruptions)
    T0=micros(); // durée de fonctionnement en microsecondes au début du pas de temps
    do {
        T1=micros();
    } while (T1-T0<dT);