Arduino language reference guide de formation
Arduino language reference pdf guide de formation
...
Comment faire de l’électronique en utilisant un langage de programmation ?
Pourquoi Arduino ?
- Peu coûteux
- Un environnement de programmation clair et simple
- Multi-plateforme
- Logiciel Open Source et extensible
- Matériel Open source et extensible
Arduino, Genuino, Freeduino, Seeduino, …
Il existe trois types de cartes :
- « officielles » : fabriquées en Italie par le fabricant officiel : Smart Projects
- « compatibles » : compatibles avec les Arduino officielles.
- « autres » : commercialisées sous un nom différent (Freeduino, Seeduino, Femtoduino, …).
1) USB
2) Jack
3) GND
4-5) Sortie d’alimentation
6) Entrée Analog
(>=0 et <=1023)
7) Entrée / Sortie Digital
Arduino UNO(0 ou 1)
8) PWM
(Pulse-Width Modulation)
COTÉ MATÉRIEL(3, 5, 6, 9, 10 et 11)
9) AREF (Analog Reference)
- Micro-contrôleur ATmega328P10) Reset
11) Power LED
- 14 connecteurs pour toutes les entrées et 12)13) TX Micro& RX LED-contrôleur sorties numériques (dont 6 avec modulation de largeur d'impulsions)
- 6 entrées analogiques
- Port USB type B (carré) pour la programmation et/ou la communication
- Un connecteur d’alimentation
- Tension de fonctionnement : 5V
Tension d’entrée : 7-12V (limites: 6-20V)
Arduino UNO
COTÉ INFORMATIQUE
- Un environnement de programmation regroupant éditeur de code, compilation, upload et débuggeur
- Multi-plateforme
- Un langage C/C++ avec des simplifications pour les débutants
- Des bibliothèques open source
Bibliothèques
- EEPROM : lecture et écriture de données dans la mémoire permanente.
- Ethernet : pour se connecter à Internet en utilisant le Shield Ethernet.
- LiquidCrystal : pour contrôler les afficheurs à cristaux liquides (LCD).
- SD : pour la lecture et l'écriture de données sur des cartes SD.
- Servo : pour contrôler les servomoteurs.
- SPI : pour communiquer avec les appareils qui utilisent le protocole de communication SPI (Serial Peripheral Interface).
- Stepper : pour commander des moteurs « pas à pas ».
- Wire : pour interfacer plusieurs modules électroniques sur un bus de données utilisant le protocole de communication TWI/I2C.
- …
Programmation
void setup() {
//contenu de l'initialisation
}
void loop() {
//contenu de la fonction principale }
Les principales instructions
pinMode(pin, INPUT);
Configure la broche spécifiée pour qu'elle se comporte soit en entrée, soit en sortie OUTPUT, INPUT, INPUT_PULLUP Par défaut: INPUT
Une entrée est généralement utilisée par les capteurs qui envoient des informations à l’Arduino et les sorties servent à communiquer et/ou à alimenter les composants.
Les principales instructions
pinMode(pin, INPUT); Configure la broche spécifiée pour qu'elle se comporte soit en entrée, soit en sortie OUTPUT, INPUT, INPUT_PULLUP Par défaut: INPUT
digitalWrite(pin, HIGH); Envoie du courant positif ou négatif (+5v ou GND) dans un pin de l’Arduino. HIGH pour +5v ou LOW pour GND
digitalRead(pin); Permet de connaitre le courant circulant au niveau du pin concerné
HIGH ou LOW
Les principales instructions
pinMode(pin, INPUT); Configure la broche spécifiée pour qu'elle se comporte soit en entrée, soit en sortie OUTPUT, INPUT, INPUT_PULLUP Par défaut: INPUT
digitalWrite(pin, HIGH); Envoie du courant positif ou négatif (+5v ou GND) dans un pin de l’Arduino. HIGH pour +5v ou LOW pour GND
digitalRead(pin); Permet de connaitre le courant circulant au niveau du pin concerné
HIGH ou LOW
void setup() {
pinMode(7, INPUT); // on déclare notre entrée pinMode(8, OUTPUT); // on déclare notre sortie
}
void loop() {
if(digitalRead(7) == HIGH) { // on regarde si notre entrée capte du courant digitalWrite(8, LOW); // on éteint la DEL
} else { digitalWrite(8, HIGH); // on allume la DEL } }
Les principales instructions
pinMode(pin, INPUT); Configure la broche spécifiée pour qu'elle se comporte soit en entrée, soit en sortie OUTPUT, INPUT, INPUT_PULLUP Par défaut: INPUT
digitalWrite(pin, HIGH); Envoie du courant positif ou négatif (+5v ou GND) dans un pin de l’Arduino. HIGH pour +5v ou LOW pour GND
digitalRead(pin); Permet de connaitre le courant circulant au niveau du pin concerné
HIGH ou LOW
analogWrite(pin, 123); Permet de faire passer un courant plus ou moins puissant, compris entre 0 et 255 dans le pin concerné
analogRead(pin); Permet de connaitre le courant circulant au niveau du pin concerné Entre 0 et 1023
Les principales instructions
pinMode(pin, INPUT); Configure la broche spécifiée pour qu'elle se comporte soit en entrée, soit en sortie OUTPUT, INPUT, INPUT_PULLUP Par défaut: INPUT
digitalWrite(pin, HIGH); Envoie du courant positif ou négatif (+5v ou GND) dans un pin de l’Arduino. HIGH pour +5v ou LOW pour GND
digitalRead(pin); Permet de connaitre le courant circulant au niveau du pin concerné
HIGH ou LOW
analogWrite(pin, 123); Permet de faire passer un courant plus ou moins puissant, compris entre 0 et 255 dans le pin concerné
analogRead(pin); Permet de connaitre le courant circulant au niveau du pin concerné Entre 0 et 1023
delay(1000); Mettre en pause l’Arduino pendant un temps indiqué, en millisecondes
millis(); Retourne le nombre de millisecondes depuis que le programme a démarré Le compteur est réinitialisé à zéro après environ 50 jours.
Démonstration?
Questions ?
Merci pour votre attention
… … …
Qu’est-ce qu’une condition?
C’est un choix que l’on fait entre plusieurs propositions. En informatique, les conditions servent à tester des variables. Par exemple : Vous faites une recherche sur un site spécialisé pour acheter une nouvelle voiture. Vous imposez le prix de la voiture qui doit être inférieur à 5000€ (c’est un petit budget ). Le programme qui va gérer ça va faire appel à un test conditionnel. Il va éliminer tous les résultats de la recherche dont le prix est supérieur à 5000€.
If...else
La première condition que nous verrons est la condition if...else. Voyons un peu le fonctionnement.
if
On veut tester la valeur d’une variable. Prenons le même exemple que tout à l’heure. Je veux tester si la voiture est inférieure à 5000€.
1 int prix_voiture = 4800; // variable : prix de la voiture définit à 4800€
D’abord on définit la variable ”prix_voiture”. Sa valeur est de 4800€. Ensuite, on doit tester cette valeur. Pour tester une condition, on emploie le terme if (de l’anglais ”si”). Ce terme doit être suivi de parenthèses dans lesquelles se trouveront les variables à tester. Donc entre ces parenthèses, nous devons tester la variable prix_voiture afin de savoir si elle est inférieure à 5000€.
if(prix_voiture < 5000)
2 {
3 // la condition est vraie, donc j'achète la voiture
4 }
On peut lire cette ligne de code comme ceci : ”si la variable prix_voiture est inférieure à 5000, on exécute le code qui se trouve entre les accolades.
Les instructions qui sont entre les accolades ne seront exécutées que si la condition testée est vraie !
Le ”schéma” à suivre pour tester une condition est donc le suivant :
1 if(/* contenu de la condition à tester */)
2 {
3 // instructions à exécuter si la condition est vraie
4 }
else
On a pour l’instant testé que si la condition est vraie. Maintenant, nous allons voir comment faire pour que d’autres instructions soient exécutées si la condition est fausse. Le terme else de l’anglais ”sinon” implique notre deuxième choix si la condition est fausse. Par exemple, si le prix de la voiture est inférieur à 5000€, alors je l’achète. Sinon, je ne l’achète pas. Pour traduire cette phrase en ligne de code, c’est plus simple qu’avec un if, il n’y a pas de parenthèses à remplir :
int prix_voiture = 5500;
2
3 if(prix_voiture < 5000)
4 {
5 // la condition est vraie, donc j'achète la voiture
6 }
7 else
8 {
9 // la condition est fausse, donc je n'achète pas la voiture
10 }