1. Faire clignoter une DEL (suite)
Reprenons le câblage de la semaine précédente. Rappels :
- Créer un compte : https://www.tinkercad.com/join
- Créer un câblage : https://www.tinkercad.com/dashboard?type=circuits&collection=designs

Le programme était le suivant :
void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
digitalWrite(3, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(3, LOW);
delay(1000); // Wait for 1000 millisecond(s)
}
Ce programme comporte deux parties :
- La fonction setup(), exécutée une seule fois pour définir la configuration initiale.
- La fonction loop(), exécutée en boucle.
Les différents éléments de ce programme sont expliqués dans le tableau ci-dessous :
| Elément de programme | Description |
|---|---|
| void | Définit une fonction ne retournant aucune valeur |
| pinMode(3, OUTPUT); | Le connecteur 3 est défini en sortie |
| digitalWrite(3, HIGH); | Le connecteur 3 délivre une tension de 5 V |
| digitalWrite(3, LOW); | Le connecteur 3 délivre une tension de 0 V |
| delay(1000); | Le programme se met en pause pendant 1000 ms soit 1 s |
| // | Il s'agit d'un commentaire destiné au programmeur |
Travail à effecuter :
Modifier le programme pour envoyer le signal de détresse SOS en code Morse. Ce signal est constitué de trois points, puis trois traits, et enfin trois points (· · · — — — · · ·). La DEL doit donc :
- Clignoter trois fois rapidement pour le caractère S.
- Puis attendre une seconde pour le prochain caractère.
- Clignoter trois fois lentement pour le caractère O.
- Puis attendre une seconde pour le prochain caractère.
- Clignoter à nouveau trois fois rapidement pour le caractère S.
- Puis rester éteinte deux secondes pour recommencer.
Faire appel à votre professeur si vous ne trouvez pas la solution.
2. Sortie pseudo-analogique
Une carte Arduino comporte 20 connecteurs pouvant se configurer en entrée ou en sortie logiques. Il sont repérés A0 à A5 et 0 à 13 sur la carte. Certains connecteurs disposent de fonctions complémentaires :
- Les six connecteurs A0 à A5 peuvent être configurés en entrée analogique.
- Les six connecteurs dont le numéro est précédé du signe "~" peuvent se configurer en sortie pseudo-analogique (signal MLI ou PWM).
- Les connecteurs 0 et 1 peuvent gérer les flux de données entrants et sortants d'une liaison série.
- Le connecteur 13 est associé à une résistance permettant de brancher une DEL sans y adjoindre de résistance.
Travail à effectuer :
Testez le programme ci-dessous. Constatez que la DEL s'allume et éteint progressivement.
float periode=2;
void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
for (float t=0; t<periode; t=t+0.01)
{
analogWrite(3, 127.5+127.5*sin(t*2*PI/periode));
delay(10);
}
}
Les différents éléments de ce programme sont précisés ci-dessous :
| Elément de programme | Description |
|---|---|
| float periode=2; | Le contenu de la variable "periode" est un nombre à virgule, auquel on affecte la valeur 2 |
| for | Pour mettre en place une boucle |
| analogWrite(); | Cette fonction prend deux paramètres. Le numéro du connecteur et un nombre compris entre 0 et 255. 0 pour 0 V, 255 pour 5 V, 127.5 pour 2.5 V etc. |
| analogWrite(3, 127.5+127.5*sin(t*2*PI/periode)); | Le connecteur 3 délivre une tension dont la moyenne est comprise entre 0 et 5 V selon le deuxième paramètre. |
En mathématique, la fonction sin(x) :
- Est positive pour 0 < x < π
- Est négative pour π < x < 2.π
- Retourne une valeur comprise entre -1 et 1.
En conséquence :
- 127,5×sin(x) retourne une valeur comprise entre -127,5 et 127,5.
- 127,5+127,5×sin(x) retourne une valeur comprise entre 0 et 255.
3. Pour aller plus loin en musique
Le bipeur (ou buzzer en anglais) piézoélectrique produit un son quand on lui applique une tension alternative. La fonction ton() prend deux paramètres :
- Le numéro du connecteur.
- La fréquence du signal alternatif en Hz.
Créez le câblage ci-dessous :

Puis testez le programme suivant :
void setup()
{
}
void loop()
{
tone(3, 300);
delay(200);
noTone(3);
delay(500);
}
Enfin adaptez ce programme pour envoyer un SOS.