Capteur de ping d'affichage pour Arduino Nano 7segment 4digit de Sarigiannis: 6 étapes

Capteur de ping d'affichage pour Arduino Nano 7segment 4digit de Sarigiannis: 6 étapes

Table des matières:

Anonim

dans cette instruction, nous connectons l'arduino nano à un capteur ping et nous exportons les résultats sur un afficheur à 7 chiffres et 7 segments.

Provisions:

Étape 1: rassemblez toutes les pièces dont vous avez besoin

1 - planche à pain

2 - fils de liaison

3 - arduino nano v3

4 - capteur de ping

Décodeur 5 - 7 segments (pourrait être 74ls47 ou cmos 4511)

Anode commune d'affichage à 6 ou 7 segments à quatre chiffres

7 - 7 résistances correspondant à 7 segments (350 Ohm serait bien)

8 - résistance 1k pour le décodeur

Étape 2: Connecter les pièces

connectez les pièces comme indiqué sur l'image.

j'ai utilisé vbb pour le schets mais je n'ai pas le sevensegment (voir ci-dessous)

1 - le nano au décodeur a0 / a1 / a2 / a3

2 - le nano aux broches de sélection du segment 7 y1 / y2 / y3 / y4

3 - le nano à la sonnerie

4 - le nano au capteur de ping

5 - les 3 broches du décodeur se connectent au point commun et à la résistance via 1k résistance

6 - le décodeur en vcc et au sol

7 - le décodeur à 7segment a / b / c / d / e / f / g à travers des résistances de 350 ohms

soyez très attentif au diagramme de connexion!

Étape 3: Les sept segments avec 12 broches

si vous avez un segment à quatre chiffres 7 c'est l'image sur la façon de le connecter

a-b-c-d-e-f-g est comme indiqué les éléments

y1 - y2 - y3 - y4 sont les broches de sélection sur lesquelles des quatre afficher

dp est l'affichage par points. nous n'avons pas besoin de ça.

Étape 4: Comment cela devrait-il fonctionner?

la distance entre le capteur et le segment doit être en cm

au-dessous de 10 cm, vous entendrez le son légèrement

au-dessous de 5 cm, vous devriez entendre une sonnerie plus intense

vous pouvez sauter le décodeur si vous savez ce que vous faites dans le code

Étape 5: le code

#include <NewPing.h>

#define TRIGGER_PIN 12 // Broche Arduino liée à une broche de déclenchement sur le capteur à ultrasons.

#define ECHO_PIN 11 // Broche Arduino liée à la broche d'écho du capteur à ultrasons.

#define MAX_DISTANCE 200 // Distance maximale pour laquelle nous voulons faire un ping (en centimètres). La distance maximale du capteur est évaluée à 400-500cm.

NewPing sound (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int protonomère;

int deyteronoumero;

int tritonourere;

int tetartonoumer;

int tetrapsifios = 0;

void setup () {

pinMode (2, OUTPUT);

pinMode (3, OUTPUT);

pinMode (4, OUTPUT);

pinMode (5, OUTPUT);

pinMode (6, OUTPUT);

pinMode (7, OUTPUT);

pinMode (8, OUTPUT);

pinMode (9, OUTPUT);

pinMode (13, OUTPUT);

}

boucle vide () {

unsigned int uS = sonar.ping ();

tetrapsifios = (US / US_ROUNDTRIP_CM);

if (tetrapsifios <= 9) {

digitalWrite (13.1);

délai (10);

si (tetrapsifios <= 5) {

retarder (20);

}

tetartonourere = tetrapsifios;

tritonomère = 0;

deyteronoumer = 0;

protonomère = 0;

}

if (tetrapsifios> 9 && tetrapsifios <= 99) {

tritoners = tétrapsiphos / 10;

tetartonourere = tetrapsifios- (tritonoure * 10);

deyteronoumer = 0; protonomère = 0;

}

if (tetrapsifios> 99 && tetrapsifios <= 999) {

deyteronoumero = tetrapsifios / 100;

tritonomère = ((tetrapsifios- (deyteronoumer * 100)) / 10);

tétartonomère = (tetrapsifios- (deyteronoumer * 100)) - (tritonoumer * 10);

protonomère = 0; }

si (tetrapsifios> 999) {tetartonoumero = 0; tritonomère = 0; deyteronoumer = 0; protonomère = 0; } pour (int t = 0; t <10; t) {

digitalWrite (13,0);

digitalWrite (8.1);

digitalWrite (7.0);

digitalWrite (6.0);

digitalWrite (5,0);

anama (tetartonoumer);

délai (5);

digitalWrite (8.0);

digitalWrite (7.1);

digitalWrite (6.0);

digitalWrite (5,0);

anama (tritonoumer);

délai (5);

digitalWrite (8.0);

digitalWrite (7.0);

digitalWrite (6.1);

digitalWrite (5,0);

anama (deyteronoumer);

délai (5);

digitalWrite (8.0);

digitalWrite (7.0);

digitalWrite (6.0);

digitalWrite (5.1);

anama (protonoumer);

délai (5);

t = t + 1;

}

}

void anama (int noumero) {

commutateur (nombre) {

cas 0:

digitalWrite (2.0);

digitalWrite (3,0);

digitalWrite (4.0);

digitalWrite (9.0);

pause

cas 1:

digitalWrite (2.1);

digitalWrite (3,0);

digitalWrite (4.0);

digitalWrite (9.0);

pause

cas 2:

digitalWrite (2.0);

digitalWrite (3.1);

digitalWrite (4.0);

digitalWrite (9.0);

pause

cas 3:

digitalWrite (2.1);

digitalWrite (3.1);

digitalWrite (4.0);

digitalWrite (9.0);

pause

cas 4:

digitalWrite (2.0);

digitalWrite (3,0);

digitalWrite (4.1);

digitalWrite (9.0);

pause

cas 5:

digitalWrite (2.1);

digitalWrite (3,0);

digitalWrite (4.1);

digitalWrite (9.0);

pause

cas 6:

digitalWrite (2.0);

digitalWrite (3.1);

digitalWrite (4.1);

digitalWrite (9.0);

pause

cas 7:

digitalWrite (2.1);

digitalWrite (3.1);

digitalWrite (4.1);

digitalWrite (9.0);

pause

cas 8:

digitalWrite (2.0);

digitalWrite (3,0);

digitalWrite (4.0);

digitalWrite (9.1);

pause

cas 9:

digitalWrite (2.1);

digitalWrite (3,0);

digitalWrite (4.0);

digitalWrite (9.1);

pause

}

}

Étape 6: Vous aurez aussi besoin de la bibliothèque Newping

et VOILA!

Je suis désolé que le code ne comporte pas de commentaires ou que certains termes soient en grec, c’est ma première publication, mais elle est facile à suivre et testée et démontrée. tant que vous établissez les bonnes relations, cela fonctionnera. n'hésitez pas à demander quoi que ce soit!

JOHN SARIGIANNIS INGÉNIEUR ÉLECTRIQUE ASPAITE