Premiers pas

Afin de se familiariser un peu avec la « bête », et avant de partir seul à l’aventure, voici une petite visite guidée, ponctuée d’exercices.

 

Mais avant de commencer, il faut impérativement avoir :

  1. Lu intégralement la présentation,
  2. Répondu au Quiz, jusqu’à obtenir la note maximale !!!

 

Préparation

  • Lancer le logiciel Arduino,

 

 

  • Brancher la carte Arduino au PC grâce au câble USB,

Le nom de la carte (Arduino Uno) et le port (COMx) doivent apparaitre dans le menu déroulant de la barre d’outil :

  • Dans le cas contraire, depuis le menu déroulant faire Sélectionner une autre carte et un autre port … ou bien de puis le menu, faire Outils>Port:
    • sélectionner le port série (nommé « COMx (Arduino UNO) » ) sur lequel est branché la carte (généralement le dernier de la liste).

 

Le microcontrôleur est désormais prêt à fonctionner …

 

 

Le programme minimum

Lorsqu’on lance le logiciel Arduino pour la première fois (ou que l’on fait Fichier/Nouveau), le programme suivant apparait :

void setup() { 
   // put your setup code here, to run once: 
} 

void loop() { 
   // put your main code here, to run repeatedly: 
}

 

C’est le plus petit programme que l’on puisse faire avec un Arduino … et il ne sert à RIEN !

Mais il contient les deux fonctions obligatoiressetup()et loop().

 

La fonction d’initialisation setup()

Cette fonction est exécutée une seule fois, à chaque initialisation du microcontrôleur.

void devant setup signifie que cette fonction ne renvoie rien.

 

La fonction de boucle loop()

Aussitôt après la fonction setup(), la fonction loop()est exécutée en boucle : elle se répète à l’infini (jusqu’à la réinitialisation ou la mise hors tension du microcontrôleur).

 

Les commentaires

Afin de rendre le code plus clair, rajouter des explications qui aident à sa lecture (par quelqu’un d’autre ou par soi-même !), on peut (il faut !!) y placer des commentaires :

  • soit après // :
// commentaire sur une seule ligne
  • soit entre /* et */ :
/*
du commentaire
sur plusieurs lignes
*/

 

En résumé …

 

 

Pour tous les exercices qui suivent, il est conseillé d’utiliser le shield breadboard du kit :

 

 

 


Exercice 1 : faire clignoter une LED

Téléversement du microgiciel

  • blink_tabOuvrir le croquis ; depuis le menu, faire :

Fichier > Exemples > 01.Basics > Blink

  • Vérifier le programme : bouton_compil
  • Téléverser le programme : bouton_televerse

 

Le programme s’exécute sur la carte automatiquement après le téléversement :

la LED clignote !

led_13

 

 

 

 

Quelques explications

La plupart des cartes Arduino ont une LED intégrée. Sur le modèle UNO, elle est liée au port numérique 13 et elle est orange.

Modifier le programme « Blink » pour faire clignoter la LED intégrée selon le rythme suivant :led_13

0.1 s allumée … 0.8 s éteinte … 0.1 s allumée … 0.8 s éteinte …

Modifier à nouveau le programme pour envoyer un S.O.S. en code morse : · · · — — — · · ·

 

 

 

 

Câblage d’une LED externe

RAPPEL : avant tout câblage électrique, débrancher le microcontrôleur !

Lire les articles :

Matériel nécessaire :

  • une LED et sa résistance 220Ω (Rouge – Rouge – Marron)

Resistance_220

Schéma :

À l’aide de la platine de prototypage (breadboard), réaliser le câblage de la LED externe, de sorte qu’elle soit elle aussi pilotée par le port numérique 13.

Vérifier qu’elle s’allume (et clignote !) après le mise sous tension de l’Arduino.

en cas de problème ...
Si la LED ne s’allume pas :

  • vérifier le câblage, et notamment que les « pattes » des composants sont bien insérées dans la breadboard, et dans les bonnes rangées de connecteurs (voir les bases du câblage)
  • vérifier que le circuit est bien connecté au port n°13, et que le port 13 est bien initialisé dans le programme,
  • vérifier que la LED (dipôle polarisé !! voir les LED) est branchée à l’endroit : les ports numériques à l’état haut sont au potentiel +5V.

Si la LED ne s’allume pas :

  • vérifier que le micrologiciel a bien été téléversé (et que le téléversement s’est bien déroulé)

 

 

 


Exercice 2 : faire varier l’intensité d’une LED

L’objectif est de faire varier l’intensité de la LED en utilisant un petit potentiomètre.

Téléversement du microgiciel

  • blink_tabOuvrir le croquis ; depuis le menu, faire :

Fichier > Exemples > 03.Analog > AnalogInOutSerial

  • Vérifier le programme : bouton_compil
  • Téléverser le programme : bouton_televerse

Lire les articles :

Matériel nécessaire :

  • une LED et sa résistance 220Ω (Rouge – Rouge – Marron)

Resistance_220

  • un potentiomètre 10kΩ

 

Schéma :

La LED est câblée comme dans l’exercice précédent (en série avec une résistance), sauf qu’elle doit être sur un port numérique capable de générer un signal PWM (le port 9 dans le programme).

Le potentiomètre est relié à un port analogique, afin de permettre acquisition de la consigne d’intensité de la part de l’utilisateur :

RAPPEL : avant tout câblage électrique, débrancher le microcontrôleur !

 

En utilisant le shield de prototypage (avec breadboard), réaliser le montage de la LED et du potentiomètre.

Tester le bon fonctionnement du montage

en cas de problème ...
Si la LED ne s’allume pas :

  • vérifier le câblage, et notamment que les « pattes » des composants sont bien insérées dans la breadboard, et dans les bonnes rangées de connecteurs (voir les bases du câblage)
  • vérifier que le circuit de la LED est bien connecté au port nommé analogOutPin dans le programme,
  • vérifier que la LED (dipôle polarisé !! voir les LED) est branchée à l’endroit : les ports numériques à l’état haut sont au potentiel +5V.

Si l’intensité de la LED ne varie pas :

  • vérifier que les bornes du potentiomètres sont bien connectées, et notamment la borne liée au curseur qui doit être connectée au port A0.
  • vérifier que le microgiciel a bien été téléversé (et que le téléversement s’est bien déroulé)

 

 

Comment ça marche ?

Acquisition de la consigne

Le potentiomètre est utilisé pour acquérir la consigne de l’utilisateur : monté en diviseur de tension, la tension sur son connecteur central (relié au curseur) varie ainsi de 0V à 5V.

Le port analogique utilisé est le port A0, valeur stockée pour ce programme dans une constante de type int  appelée analogInPin) :

const int analogInPin = A0;

Dans la boucle principale, la tension sur le connecteur A0 est convertie en nombre grâce la fonction analogRead(), puis affectée à une variable sensorValue :

sensorValue = analogRead(analogInPin);

 

Variation de l’intensité lumineuse

En principe, un port numérique ne peut délivrer qu’une information logique (« tout ou rien ») : allumé/éteint ou état haut (HIGH) ou bas (LOW).

Mais grâce à la technique PWM (Pulse Width Modulation), le port numérique choisi est capable de délivrer une information (presque) analogique, donné par la valeur moyenne du signal rectangulaire.

L’instruction

analogWrite(analogOutPin, outputValue);

génère un signal PWM de valeur outputValue  sur le port numérique analogOutPin .

 outputValueest un nombre entier (int) compris entre 0 et 255.

 

Adaptation des valeurs

La valeur sensorValue , obtenue via le port analogique, est comprise entre 0 (0V sur la broche) et 1023 (5V sur la broche).

La valeur attendue par la fonction analogWrite() , outputValue , doit être comprise entre 0 et 255.

Il faut opérer un « changement d’échelle », ce qui est réalisé par la fonction map :

outputValue = map(sensorValue, 0, 1023, 0, 255);

 

En résumé :

varia_sketch

 

 


Exercice 3 : les vases communicants

Lire les articles :

Matériel nécessaire :

Resistance_220Resistance_220

  • 1 potentiomètre 10kΩ

 

  • Ajouter une autre LED au circuit de manière à ce que les deux LED puissent êtres commandées indépendamment (les deux LED doivent donc être pilotées par des ports numériques différents !).
  • Modifier le programme de telle sorte qu’à la rotation du potentiomètre, l’intensité lumineuse d’une des deux LED augmente tandis que celle de l’autre diminue.
en cas de problème ...
Si les LEDs ne s’allument pas :

  • vérifier le câblage, et notamment que les « pattes » des composants sont bien insérés dans la breadboard, et dans les bonnes rangées de connecteurs
  • vérifier que le circuit est bien connecté au port n°13
  • vérifier que les LED (dipôles polarisés !!) sont branchées à l’endroit : le + est du coté du port numérique

 

 

D’autres exercices …

Et encore :

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *