4LED et un afficheur 7segment avec un Arduino

Salut à tous ! Aujourd’hui, j’aborde un sujet dont je n’ai pas du tout parlé jusqu’ici : l’électronique. Plus précisément, de l’électronique avec une carte Arduino. Ce tuto explique comment réaliser un petit circuit qui gèrera l’allumage/extinction de 4 LEDs et affichera le nombre de LEDs allumées sur un afficheur 7segment. Pour commencer, présentons la bête :

7segment

7_segment_display_labeled

7segment_connectionsUn afficheur 7segment est un type d’afficheur très utilisé (dans les montre numériques par exemple). Il permet d’afficher n’importe quel nombre de 0 à 9. Il est composé de 7 segments indépendants les uns des autres qui peuvent s’allumer à volonté si on applique une tension sur l’entrée(le pin) correspondant au segment que l’on souhaite utiliser. L’afficheur 7segment dont je vais parler est composé de 10 broches (7 pour les 7 segments, 2 pour être reliés à la masse -la cathode- et un autre qui correspond au point). Nous n’utiliseront pas dans cet exemple le dot (le point). Les segments sont numérotés par des lettres : n’hésitez à vous aider des schémas ci-dessus.

1 – Pré-requis

Pour faire cet exemple, il vous faut :

  • Un Arduino (UNO rev 3 SMD dans mon cas);
  • Un breadboard (Platine d’expérimentation);
  • Un afficheur 7segments;
  • 4 LEDs (de préférence de même marque, même taille, même voltage, même série);
  • Une résistance de 500 à 1000 Ω (820Ω marchent très bien) et une autre de 1kΩ;
  • Des fils électriques (suffisamment fins pour rentrer sur le breadboard, tout de même);
  • Une pince à dénuder, un cutter ou un ciseau pour dénuder vos fils (Eh oui, tous les moyens de bord sont bons !);

Bonne recherche (je ne vous donnerai pas de liens pour les acheter : je tiens à rester totalement neutre et à éviter de vous recommander du matériel qui pourrait être défectueux).

2 – Montage

Voici les plans bricolés vite fais sur fritzing, j’avoue que le résultat n’est pas exceptionnel, mais bon… :

led1_schema
Voilà ce que ça donne :

IMG_2645 IMG_2649

3 – Le code

Sur le logiciel de codage (L’IDE Arduino), voici le code que je fournis :

https://docs.google.com/document/d/1J1ypQdAnLxdB3di2rgDf5aCJ8A8eFdM5Rm32ANdeRXA/pub

Désolé si les commentaires sont en anglais, je préfére commenter avec un language universel, même si je le parle mal !

Une explication s’impose :

  • La première partie (#define A 8) déclare que les sortie (8 en l’occurence) sont occupées par la variable (ici A). Pour faire simple, A = 8 et chaque fois qu’on tapera A dans le circuit, le logiciel le transformera automatiquement en 8.
  • boolean et int sont des mot clés permettant de déclarer des variables.
  • pinMode(sortie, OUTPUT) permet de déclarer quelle sortie de l’arduino il faut utiliser et de les déclarer en sortie et non pas en entrées (on envoie des données, on n’en reçoit pas).
  • void clr() permet d’initialiser, de remettre à 0 tous les segments de l’afficheur et void zero, one, two, three et four permet des sélectionner les segments à allumer et de lancer l’ordre de les allumer.
  • random(1, 5); génère un nombre compris entre 1 et 5
  • Après, c’est une simple condition puis apparait un compteur du nombre de LEDs allumées. Particularité notable : result++; qui vaut la me chose que result = result + 1; mais en plus compact et plus court à écrire).
  • Ensuit, un switch applique la fonction correspondante ( zero() si result vaut o, one() si result vaut 1, etc).
  • pour finir, delay(650); dit au programme de patienter 650 millisecondes (soit 0.65 secondes) avant de tout reprendre à 0.

Vous cliquez alors sur téléverser (l’arduino doit être connecté en USB à l’ordinateur pour que cela marche, bien sûr) et le programme va se charger sur l’arduino et se lancer automatiquement. N’hésitez pas à me contacter en cas de problème. Cherchez à perfectionner mon code : cela fait un excellent exercice. Bon courage !