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