Bandeau lumineux de K2000

 

Carte Arduino Uno Rev 3

Carte Arduino Uno Rev 3

But : Réaliser un premier projet avec une carte Arduino.

Pour cela nous proposons de faire le bandeau lumineux comme sur la voiture de la célèbre série K 2000 . Il s’agit en fait d’allumer et éteindre à tour de rôle des leds. Ce projet nous permettra de découvrir ou redécouvrir les principes de l’électronique et de la programmation Arduino.

Pour cela nous allons procéder en trois temps. La première partie est consacrée à la programmation. En effet, la carte Arduino est une plaque équipé d’un circuit imprimé qui nous est possible de programmer. Dans un second temps nous ferons le montage. Et enfin nous transfèrerons le programme sur la carte et nous verrons le résultat.


Difficulté : Débutant


Temps : 30 min


Matériel :

  • Une carte Arduino Uno
  • 5 leds
  • 5 résistances
  • 12 cables de prototypages
  • 1 plaque d’essai
  • 1 ordinateur avec le logiciel arduino

Tutoriel :

1er partie : La programmation

Nous allons commencer par la partie programmation. Le but n’étant pas juste de vous permettre de faire de copier/coller mais de vous expliquer comment ça fonctionne afin que vous puissiez le refaire et peut être même l’adapter à votre goût ( plus de led, plus vite, etc). c’est pourquoi nous allons détailler pas à pas cette étape.

Ouvrir le logiciel Arduino

logiciel Arduino

logiciel Arduino

Si vous n’avez pas encore ce logiciel, vous pouvez le télécharger ici : http://arduino.cc/en/Main/Software

Nous allons commencer la programmation. Le but étant d’allumer/éteindre 5 leds, nous allons commencer par déclarer celles-ci. Il faut savoir qu’un programme Arduino est toujours composé de deux fonctions : setup et loop. La fonction setup est la fonction où l’on déclare par exemple qu’elle sortie de la carte on va utiliser. Tandis que la fonction loop, gère le comportement que l’on veut. Par exemple allumer et éteindre des leds.

Nous allons utiliser les sorties digitales numérotés de 13 à 9 de la carte Arduino. D’où le code suivant :

// **************** Déclaration de constantes ****************// --- constantes des broches ---

const int LED_1=13;
const int LED_2=12;
const int LED_3=11;
const int LED_4=10;
const int LED_5=9;

//*************** FONCTION SETUP = Code d'initialisation ****************
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup() { // debut de la fonction setup()

 // --- ici instructions à exécuter au démarrage --- 
 pinMode(LED_1, OUTPUT); //met la broche 13 en sortie
 pinMode(LED_2, OUTPUT); //met la broche 12 en sortie 
 pinMode(LED_3, OUTPUT); //met la broche 11 en sortie
 pinMode(LED_4, OUTPUT); //met la broche 10 en sortie
 pinMode(LED_5, OUTPUT); //met la broche 9 en sortie

} // fin de la fonction setup()

( en vert tout ce que est commenté afin d’expliquer le code). Vous obtenez alors :

copie_ecran_2

Occupons nous maintenant de la fonction loop. Il s’agit de la fonction principale du programme. Cette fonction est exécuté en boucle et à l’infini. Le but est d’allumer et d’éteindre à tour de rôle les 5 leds tout en effectuant un aller/retour.

Attention :  Comme il s’agit d’une boucle infini, il faut prendre en compte que la led qui démarre le cycle va également être celle qui fini le cycle. Cela implique qu’à la fin du cycle x la led initiale va être celle qui débute le cycle x+1. Il faut donc que le temps où la led est allumer reste égal à celui des autres led d’où le fait que cette led n’est allumé 2 fois moins longtemps que les autres dans un même cycle.
//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous   tension
void loop(){ // debut de la fonction loop()
// --- ici instructions à exécuter par le programme principal --- 
// L'aller
digitalWrite(LED_1,HIGH); // met la broche au niveau haut (5V) – allume la LED_1
delay(time/2); // pause de 75 millisecondes (ms)
digitalWrite(LED_1,LOW); // met la broche au niveau bas (0V) – éteint la LED_1

digitalWrite(LED_2,HIGH); // met la broche au niveau haut (5V) – allume la LED_2
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_2,LOW); // met la broche au niveau bas (0V) – éteint la LED_2

digitalWrite(LED_3,HIGH); // met la broche au niveau haut (5V) – allume la LED_3
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_3,LOW); // met la broche au niveau bas (0V) – éteint la LED_3

digitalWrite(LED_4,HIGH); // met la broche au niveau haut (5V) – allume la LED_4
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_4,LOW); // met la broche au niveau bas (0V) – éteint la LED_4

digitalWrite(LED_5,HIGH); // met la broche au niveau haut (5V) – allume la LED_5
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_5,LOW); // met la broche au niveau bas (0V) – éteint la LED_5

// Le retour
digitalWrite(LED_4,HIGH); // met la broche au niveau haut (5V) – allume la LED_4
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_4,LOW); // met la broche au niveau bas (0V) – éteint la LED_4

digitalWrite(LED_3,HIGH); // met la broche au niveau haut (5V) – allume la LED_3
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_3,LOW); // met la broche au niveau bas (0V) – éteint la LED_3

digitalWrite(LED_2,HIGH); // met la broche au niveau haut (5V) – allume la LED_2
delay(time); // pause de 150 millisecondes (ms)
digitalWrite(LED_2,LOW); // met la broche au niveau bas (0V) – éteint la LED_2

digitalWrite(LED_1,HIGH); // met la broche au niveau haut (5V) – allume la LED_1
delay(time/2); // pause de 75 millisecondes (ms)
digitalWrite(LED_1,LOW); // met la broche au niveau bas (0V) – éteint la LED_1

} // fin de la fonction loop()

On obtient au final ce programme :

copie_ecran_3

 

 

2e partie : Montage du projet 

Voici la représentation du montage. Pour cela j’ai utilisé le logiciel Fritzing.

schema_montage_K2000

Montage

Ce qui donne la vue schématique suivante :

Vue schématique

Vue schématique

3e partie : Compilation et transfert du programme sur la carte Arduino

Une fois que nous avons écrit le programme nous allons le compiler. Pour cela on utilise le logiciel Arduino qui va valider le code. Il vérifie qu’il n’y ait pas d’erreur de programmation et le compile.

Pour cela il suffit de cliquer sur l’icône icone en haut. Une fois la compilation terminée, vous obtenez un petit rapport qui vous indique la taille du programme compilé.

compilation

 

Ensuite il faut transférer le programme compilé sur la carte Arduino (la carte est bien sur relié par usb à votre ordinateur). Pour cela cliquez sur l’icône icone transferer en haut. Lorsque le transfère se déroule bien vous obtenez le petit rapport comme suivant :

transfère

Partager l'article

Vous aimerez aussi...

1 réponse

  1. duhamel dit :

    bonjour
    fonctionne très bien si on marque la valeur entre parenthèse au lieu de “time” dans les lignes de commande delay(time) il faut delay(150) dans l’exemple du programme.
    je trouve un meilleur rendu avec delay(80) // pause de 80 millisecondes.
    mais c’est affaire de gout.
    bon codage à tous.

Laisser un commentaire