1. Faire clignoter une DEL (suite)

Reprenons le câblage de la semaine précédente. Rappels :

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.
sin(x)x-1-0.75-0.5-0.2500.250.50.75100.7851.572.3553.143.9254.715.4956.28

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.

Source : http://eleydet.free.fr/SNT/confinement/semaine6/

En poursuivant votre navigation sur mon site, vous acceptez l’utilisation des Cookies et autres traceurs  pour réaliser des statistiques de visites et enregistrer sur votre machine vos activités pédagogiques. En savoir plus.