Les activités Arduino UNO avec electro-robot by electro & Robot - HTML preview
Download the book in PDF, ePub, Kindle for a complete version.

Attention : Nous vous rappelons qu'il est recommandé de faire attention lorsque vous manipulez votre carte Arduino. Si vous ne

disposez pas encore des compétences avancées en électronique, n'utilisez jamais une source d'énergie externe couplée avec votre
carte. Cela pourra vous endommager votre carte Arduino UNO.
Dans cette activité proposée, nous n'utilisons uniquement qu'une carte Arduino sans aucune autre source d'alimentation externe.
Comme vous l'avez remarqué, la GND (le point de référence 0V) dans notre circuit et celle de notre carte déployée.
Codage, compilation et téléversement
Afin de commencer à écriture de notre code en langue C++ sous Arduino IDE, nous allons définir un scénario simple pour le bon
fonctionnement pour notre appliation compteur dans l'ordre croissant numérique de 0 à 9 à base un afficheur de 7 segments tel
que:
1. Afficher 0, puis attendre 2 secondes,
2. Afficher 1, puis attendre 2 secondes,
3. Afficher 2, puis attendre 2 secondes,
4. Afficher 3, puis attendre 2 secondes,
5. Afficher 4, puis attendre 2 secondes,
6. Afficher 5, puis attendre 2 secondes,
7. Afficher 6, puis attendre 2 secondes,
8. Afficher 7, puis attendre 2 secondes,
9. Afficher 8, puis attendre 2 secondes,
10. Afficher 9, puis attendre 2 secondes → aller à l'étape 1.
Pour cela, nous allons mettre dans une matrice à 2 dimensions (une matrice est un tableau organisé en lignes et colonnes. Elle peut
contenir au minimum 2 dimensions ou plusieurs) les valeurs exprimées en 0 ou 1 qui nous indiquent respectivement éteindre ou allumer
les segments de notre afficheur à 7 segments. Par exemple, pour afficher le chiffre 0, nous aurons la série 1,1,1,1,1,1,0 et pour afficher le
chiffre 1, nous aurons la suite suivante 0,1,1,0,0,0,0. Ce qui nous donne la matrice suivante :
byte chiffres[10][7] = {
// a, b, c, d, e, f, g
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7

{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1} // 9
};
Ensuite, nous envoyons bloc par bloc via la fonction digitalWrite les différentes valeurs d'une ligne (que nous pouvons aussi appelé
vecteur) vers les sorties respectives de notre carte Arduino espacés de 2 secondes. Pour cela, nous allons écrire une fonction
afficherChiffre qui lit les valeurs d'une entrée (soir notre vecteur en question) vers les pins de notre carte numérotés de 4 à 10.
// Fonction d’affichage d’un chiffre
void afficherChiffre(int n) {
for (int i = 0; i < 8; i++) {
digitalWrite(segments[i], chiffres[n][i]);
}
}
Avec le tableau segment qui représente le tableau des broches dans l'ordre de notre afficheur 7 segments. Sa définition est comme suit :
// Tableau des broches dans l'ordre
int segments[] = {a, b, c, d, e, f, g};
Maintenant sous Arduino IDE, si nous écrivons notre code, nous aurons le code suivant :
// Définition des broches reliées à chaque segment de notre afficheur 7 segments
const int a = 4;
const int b = 5;
const int c = 6;
const int d = 7;
const int e = 8;
const int f = 9;
const int g = 10;
// Définition du tableau des segments de l'afficheur dans l'ordre alphabétique
int segments[] = {a, b, c, d, e, f, g};
// Déclaration de la matrice des états de chaque segment pour chaque affichage de chaque chiffre de 0 à 9
// Pour cela, nous définissons 1 pour un segment allumé et 0 pour un segment éteint
byte chiffres[10][7] = {
// a, b, c, d, e, f, g, dp
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1} // 9
};
void setup() {
// Définition de toutes les broches nécessaires pour notre programme comme pin de sortie for (int i = 0; i < 7; i++) {
pinMode(segments[i], OUTPUT);
}
}
void loop() {
// Boucle de 0 à 9
for (int n = 0; n <= 9; n++) {
afficherChiffre(n);
delay(2000); // attendre 2 seconde
}
}
// Fonction pour afficher un chiffre à partir de la matrice de définition de segments
void afficherChiffre(int n) {
for (int i = 0; i < 8; i++) {
digitalWrite(segments[i], chiffres[n][i]);
}
}
L'image ci-dessous nous présente notre code écrit sous Arduino IDE :
