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

Activité 2¶

Communication série¶

A copier tel quel.

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

void loop() {
  Serial.println("Winter is coming !") ; 
  Serial.println("  ") ; 
  delay(500) ;
}

Bouton poussoir seul¶

byte BPpin = 4, BPvaleur ;

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

// A mettre dans loop
  BPvaleur = digitalRead(BPpin) ;

Diode avec commande logique¶

// COMMANDE LOGIQUE
byte Ledpin = 10 ;

// A mettre dans setup
  pinMode(Ledpin, OUTPUT) ;

// A mettre dans loop
  digitalWrite(Ledpin, 1) ;

Potentiomètre¶

byte Potpin = A2 ;
int Potvaleur1023 ;

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

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

Diode avec commande pseudo-analogique¶

byte Ledpin = 10 ; 
int Potvaleur255 ;

// A mettre dans setup
  pinMode(Ledpin,OUTPUT) ;

// A mettre dans loop
  Potvaleur255 = map(Potvaleur1023, 0, 1023, 0, 255); 
  analogWrite(Ledpin, Potvaleur255);

Activité 3¶

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.

byte CApin=2, CBpin=3; // broches des codeurs A et B. Codeur A sur interruption 0
volatile int inc=0;    // nombre d incréments. Le mot clef volatile est obligatoire ici

// A mettre dans setup
    pinMode(CApin,INPUT);
    pinMode(CBpin,INPUT);
    attachInterrupt(0,fcodeurA,CHANGE); 

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

Actitivé 4¶

Boucle de temporisation pour définir un pas de calcul¶

long T0,T1;
long dT=20000; // pas de temps en microsecondes

// A mettre dans loop
    T0=micros(); // en début de la fonction loop

    do { // en fin de fonction setup
        T1=micros();
    } while (T1-T0<dT);