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 :

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 :

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 :

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) :

sin(x)x-1-0.75-0.5-0.2500.250.50.75100.7851.572.3553.143.9254.715.4956.28

En conséquence :

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 :

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/

Affichages : 2786