Cours de base Arduino avec exemples d'application
Sommaire
1. Présentation
2. Exemple d’apprentissage
3. Lexique de termes anglais
4. Reconnaître les composants
5. Rendre Arduino autonome
6. Les signaux d’entrée et de sortie
7. Câblage des composants
Une carte électronique Une communauté
qui échange
Arduino, une philosophie
Le matériel est « open source » :
• On peut le copier, le fabriquer et le modifier librement.
Le logiciel est libre :
• On peu l’utiliser et le modifier librement.
Sur l’internet, on trouve :
• Une communauté d’utilisateurs.
• Des guides d’utilisation.
• Des exemples.
• Des forums d’entraide.
Chemin d’accès des programmes : D: /Espace élève/Ressources/Quatrième/Programmes Arduino
Arduino, le principe de fonctionnement
1. On conçoit ou on ouvre un programme existant avec le logiciel Arduino.
2. On vérifie ce programme avec le logiciel Arduino (compilation).
3. Si des erreurs sont signalées, on modifie le programme.
4. On charge le programme sur la carte.
5. On câble le montage électronique.
6. L’exécution de programme est automatique après quelques secondes.
7. On alimente la carte soit par le port USB, soit par une source d’alimentation
8. autonome (pile 9 volts par exemple).
9. On vérifie que notre montage fonctionne.
La plaque d’essai sans soudure nous permet de réaliser rapidement un montage électronique en insérant les pattes des composants et les fils dans les trous.
Exemple d’apprentissage :
allumer une LED
Une LED est polarisée
Une résistance n’a pas de sens imposé
Schéma de câblage Schéma normalisé Montage d’essai
Pour éteindre la LED, il faut ouvrir le circuit à l’aide d’un interrupteur.
Exemple d’apprentissage : faire clignoter une LED
Etape 1 : lancer le logiciel Arduino
Etape 2 : ouvrir le programme « Clignoter LED »
Etape 3 : compiler le programme
Etape 4 : si il n’y a pas d’erreurs, brancher la carte Arduino avec le cordon USB
Etape 5 : charger le programme dans la carte Arduino
Lexique de termes anglais
ANALOG : Analogique.
AREF : Abréviation pour Analog REFérence, référence analogique.
AVAILABLE : Disponible.
BEGIN : Début.
BIT : bit, unité d'information informatique pouvant prendre soit la valeur 0 soit la valeur 1. BUFFER : Tampon, dans le sens de "zone tampon". Mémoire temporaire BYTE : Octet, soit un groupe de 8 bits.
bps : Abréviation pour Bits Per Second, Bits Par Seconde. Attention, abréviation toujours en minuscules. BREADBOARD: plaque d’expérimentation
CAPACITOR: condensateur
CHAR : Pour CHARacter, caractère (typographique). Type de variable d'une taille d'un octet. C'est un synonyme de "byte" utilisé pour déclarer des variables stockant un caractère ou des chaines de caractères.
DEFINE : Définit.
DIGITAL : Numérique.
DO : Faire.
FALSE : Faux.
FOR : Pour. Jusqu'à ce que.
GND : Abréviation pour GrouND, la terre. C'est la masse, 0 Volt.
HIGH : Haut.
ICSP : Abréviation pour In Cicuit Serial Programming, programmation série sur circuit.
IF / THEN/ ELSE : Si / Alors / Sinon.
IN : Souvent l'abréviation pour INput, Entrée. Est toujours en rapport avec le sens extérieur vers carte Arduino.
INCLUDE : Inclut.
INPUT : Entrée.
Lexique de termes anglais
IS : Est (souvent dans le sens d'une question : Est ?).
INT : Abréviation pour INTeger, entier. Groupe de 16 bits, 2 octets groupés, considérés comme représentant un nombre entier négatif ou positif. LONG : Abréviation pour "entier long". Groupe de 32 bits, 4 octets groupés, considérés comme représentant un nombre entier négatif ou positif.
LOOP : Boucle.
LOW : Bas.
OUT : Souvent l'abréviation pour OUTput, Sortie.
Est toujours en rapport avec le sens carte Arduino vers extérieur.
OUTPUT : Sortie.
PIN : Broche.
POWER : Puissance, alimentation.
PWM : Abréviation de (Pulse Width Modulation), soit Modulation en Largeur d'Impulsion.
PWR : Abréviation pour PoWeR, puissance, alimentation.
Lexique de termes anglais
READ: Lire.
RESISTOR: résistance.
RELAY: relais.
RX : Abréviation pour Receive, réception.
SERIAL : Série.
SETUP : Initialisation.
SENSOR: capteur
SWITCH : basculer, interrupteur TRUE : Vrai.
TX: Abréviation pour Transmit, transmission.
WIRE: câble, fil.
WHILE : Tant que.
WORD : mot, soit dans le sens de langage ; soit dans le sens d'un groupe de 16 bits,
2 octets groupés considérés comme représentant un nombre entier positif (>= 0). WRITE: Ecrire.
Reconnaître les composants
Reconnaître les composants
Rendre Arduino autonome
Lorsque la carte Arduino est connectée au port USB de l’ordinateur, celui lui fournie l’énergie électrique nécessaire à son fonctionnement.
Une fois le programme chargé, on peu débrancher le cordon USB et connecter la carte soit à une pile, soit à un transformateur.
Un transformateur qui convertie
Une pile 9 volst et un connecteur de 2,1 mm la tension du secteur en une
Avec le « + » au centre.
tension continue(DC) 9 volts et un
connecteur de 2,1 mm avec le « + » au centre.
Entrée/Sortie numérique
La carte Arduino possède 14 entrées / sorties numériques (digital en anglais) D0 à D13.
Dans « void setup », il faut déclarer une broche comme une entrée ou comme une sortie par une des deux instructions suivantes :
pinMode (nom_de_broche, INPUT) ; // broche en entrée pinMode (nom_de_broche, OUTPUT) ; // broche en sortie
En sortie, on envoie soit 5V sur la broche, soit 0V. Cela correspond à un « 1 » ou à un « 0 », à un niveau « haut » ou à un niveau « bas ».
Dans le programme cela correspond aux instructions suivantes :
En entrée, la carte peut lire soit un niveau haut (« 1 » ou HIGH), temps soit un niveau bas (« 0 » ou LOW).
Dans le programme cela correspond aux instructions suivantes :
Signal numérique : signal qui ne prend que deux états distinct comme 0V et 5V digitalWrite(nom_de_broche, HIGH) ; // lit 5V sur la broche soit « 1 ». soit « 0 » et « 1 ». digitalWrite(nom_de_broche, LOW) ; // lit 0V sur la broche soit « 0 ».
Les entrées analogiques
Contrairement au signal numérique qui ne peut prendre que deux états différents, Un signal analogique peut prendre une infinité de valeurs. Comme une tension que l’on fait varier progressivement de 0V à 5V.
La carte Arduino fonctionne en numérique, le microcontrôleur ne comprend que les « 0 » et les « 1 ». Les entrées de A0 à A5 sont dotées de convertisseurs analogique/numérique qui convertit une tension en une suite de « 0 » et de «1 » que la carte fait correspondre à un nombre variant de 0 à 1023.
On peut ainsi récupérer les informations d’un capteur.
Tension d’entrée :
0V 2.5V 5V
Nombre lu à utiliser dans le programme :
0 512 1023
000 001 010 011 (valeur binaire)
0 1 2 3 (nombre correspondant)
Lorsque l’interrupteur est ouvert, l’entrée de la carte lit un niveau bas ou LOW.
Lorsque l’interrupteur est fermé, l’entrée lit un niveau haut ou HIGH.
Donc, si on appuie sur un bouton poussoir ainsi câblé, la carte lira un « 1 » soit HIGH. Si on relâche le bouton poussoir, la carte lira un « 0 » soit LOW.
Exemple de programmation
void set up()
{
pinMode(inter, INPUT);
}
loop ()
{
int valinter = 0; // on crée une variable valinter pour lire l’état de l’interrupteur valinter = digitalRead(inter); // on lit la valeur de l’interrupteur (LOW ou HIGH) if (valinter == LOW) // Si valinter égale LOW, faireW.
{instructions} else // sinon, faireW.
{instructions}
}
Câbler un potentiomètre
Lorsque l’on tourne le potentiomètre, on fait varier la tension mesurée entre 0V et 5V.
Si on connecte le point de mesure sur un entrée analogique, la valeur enregistrée variera entre 0 et 1023.
On peut enregistrer cette valeur et l’utiliser pour piloter une led ou un moteur.
Il faut connecter la patte du milieu à une entrée analogique (A0 à A5)
Câbler une photorésistance
La mesure se fait sur entrée analogique. La résistance de la photorésistance diminue lorsque la lumière augmente.
On peut utiliser le même programme que celui du potentiomètre.
Le buzzer se câble sur une sortie numérique. On lui envoie alors un signal périodique dont on fait varier la fréquence en fonction de la note que l’on désire jouer. Exemple : le LA est un signal d’une fréquence f de 440 Hertz soit un signal qui varie 440 fois par seconde.
Câbler un buzzer piezzo en capteur de frappe
L’entrée analogique 0 mesure la tension produite par le buzzer lorsqu’il vibre. Le buzzer fonctionne alors comme un microphone. Plus il vibre, plus la tension mesurée est grande.
A utiliser avec le programme « piezzo_capteur_de_frappe ».
La diode zener est optionnelle.
On câble le servomoteur sur une des sortie numérique PWM. Les sorties numériques PWM sont : D11, D10, D9, D6, D5.
On envoie un signal que l’on fait varier en fonction du sens et de la position désirée.
Un sous programme appelé servo.h doit être inclus dans le programme. Il est alors facile de le commander.
Le fil noir est connecté au 0V ou Gnd.
Le fil rouge est connecté au 5V. Le fil jaune ou blanc est connecté à une sortie numérique PWM.
Câbler un moteur à courant continu
On utilise un transistor pour piloter le moteur.
Comme pour le buzzer, on envoie un signal dont la fréquence varie en fonction de la vitesse désirée.
La diode dite « de roue libre » permet d’évacuer le courant créer lorsque le moteur ralentie alors qu’il n’est plus alimenter.
La tension d’alimentation du moteur peut être différente, 9V par exemple.
Câbler un moteur à courant continu avec le circuit intégré L293D
Le circuit intégré L293D nous permet de piloter 2 moteurs à courant continu.
La broche 1 à l’état haut permet de démarrer le moteur, à l’état bas l’éteint.
Les entrées input1 et input 2 permettent de choisir le sens de rotation du moteur selon les niveaux logique envoyés :
Arduino D9
Arduino D6 Moteur
Arduino Gnd
Arduino Gnd
Moteur
Arduino D7 Arduino 5V
circuit intégré (CI), aussi appelé puce électronique, est un composant électronique reproduisant une ou plusieurs fonctions électroniques plus ou moins complexes, intégrant souvent plusieurs types de composants électroniques de base dans un volume réduit, rendant le circuit facile à mettre en œuvre. Il existe une très grande variété de ces composants divisés en deux grandes catégories : analogique et numérique."
int led = 2; //la led réceptrice est sur la broche analogique 2 Int lecture = 0; // variable qui stocke la valeur lue sur A2 void setup()
{} Attention : les deux L.E.D. sont
void loop () // se répète en boucle
{ identiques en apparence.
lecture=analogRead(led); //lecture de la valeur lue
If (lecture>=1000) // comparaison de la valeur lue au seuil de détection
{
ACTION // si > ou = faire
}
else // sinon faire
{ ACTION }
}
Câbler un capteur de température
La tension mesurée sur l’entrée analogique varie en fonction de la température.
Le programme « temperature_led » permet de l’utiliser.