» elettronica » Arduino »Telemetro sulla piattaforma Arduino!

Il telemetro sulla piattaforma Arduino!


Buona giornata a tutti! In questo articolo vorrei dire come usare Arduino, un set di LED e un sensore a ultrasuoni, puoi assemblare un dispositivo che determina la distanza dall'osservatore all'oggetto, in altre parole, telemetro. E allora andiamo!
Di cosa abbiamo bisogno:
solito scatola. È desiderabile essere di piccole dimensioni, poiché conterrà solo un microcontrollore.

con trasduttore ad ultrasuoni HC-SR04 possiamo determinare la distanza.

Indicatore a quattro cifre dobbiamo generare i valori ottenuti.

set LED qualsiasi colore (ho usato il verde, poiché sono più luminosi), resistenze a 220 ohm fili o anche i jumper basetta.





In modo che i componenti del nostro dispositivo siano fissati saldamente, li salderò.
Per questo abbiamo bisogno saldatore, flusso, saldaturaanche tagliere per saldatura.

E ovviamente, senza Arduino non possiamo fare! (Puoi scegliere qualsiasi microcontrollore, ho preferito Arduino Leonardo o il suo equivalente Iskra Neo)

Degli strumenti abbiamo bisogno di un saldatore, come ho detto sopra, coltello e tronchesi.

Ora iniziamo a assemblare il dispositivo.
Passaggio n. 1
Per iniziare, utilizzando una breadboard, assembleremo un prototipo del nostro dispositivo futuro. Sembrerà qualcosa del genere ..

Non ti preoccupare! Non c'è niente di terribile in questo casino di fili!
Il sensore HC-SR04 ha quattro pin: più, meno (che inseriamo nei 5V e GND del controller), Trig ed Echo (inseriamo i pin arduino in 12 e 11, rispettivamente)
L'indicatore a quattro cifre ha 3 fili: alimentazione, terra e segnale. Quest'ultimo è collegato all'Arduino a 9 pin.
Colleghiamo tre LED a 6, 5 e 4 contatti del controller in serie con resistori. Non dimenticare la polarità. La corrente scorre da una gamba più lunga a una più corta.
Questo è tutto, quando abbiamo assemblato il nostro dispositivo su una breadboard, abbiamo caricato lo schizzo (sarà alla fine dell'articolo) e ci siamo assicurati che tutto funzionasse, sentiti libero di iniziare a saldare.
Passo numero 2
Innanzitutto, saldare il sensore ad ultrasuoni sulla breadboard. Ho usato una piccola breadboard di dimensioni, in quanto il numero di elementi non supera 7.

Dopodiché, con l'aiuto delle tronchesi, mordi le gambe (chiedo scusa per la tautologia), rendendole più corte in modo che non interferiscano e sembrino più belle!

Successivamente, saldare i quattro fili contro i contatti del sensore.


Inoltre, non dimenticare le pinze!


Passaggio n. 3
Il sensore è in posizione, resta da saldare i tre LED insieme alle resistenze.


Sul retro, si presenta così:

Passaggio 4
Sul lato della scatola, praticare un foro rotondo per il cibo.

Sul coperchio, è necessario tagliare una cavità delle dimensioni (leggermente più piccole in lunghezza) della breadboard e praticare anche dei fori per le viti.


Ora, se avvitiamo una breadboard vuota senza elementi (l'ho fatta solo per dimostrazione ..), otteniamo qualcosa di simile al seguente:

Passaggio n. 5
Quindi, per renderlo più conveniente, propongo di collegare prima i fili all'Arduino e solo successivamente avvitare la breadboard al coperchio della scatola. Inoltre, non dimenticare il nostro indicatore, che ho posizionato sopra il layout.

Tutto su questo dispositivo è finito!
Resta solo da scaricare il prossimo abbozzo e goditi il ​​giocattolo!
#include
#include
NewPing sonar (12.11, 400);
int a, j, b;
unsigned long t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
void setup ()
{
 per (int i = 4; i & lt; 7; i ++)
 {
   pinMode (i, OUTPUT);
 }
 displayClear (9);
 per (int i = 4; i & lt; 7; i ++)
 {
   digitalWrite (i, 0);
 }
  }
void loop ()
{
  j = 7;
  per (int i = 0; i100) tono (2,70);
    digitalWrite (j, masiv [i]);
    while (millis () & lt; = t + b)
    {
    ritardo (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
    }
    t = millis ();
    if (j == 4) j = 7;
    if (i == 8)
    {
     digitalWrite (4.1);
     while (millis () & lt; = (t + b) + (b * 2))
     {
    ritardo (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
     }
     digitalWrite (4.0);
     t = millis ();
    }
  }



Poche parole codice del programma. Grazie a lui, i nostri tre LED lampeggeranno alternativamente uno dopo l'altro e la velocità del loro lampeggiamento dipenderà dalla distanza dall'oggetto, che viene calcolata dal sensore ad ultrasuoni. Ma per far lampeggiare i LED, non è del tutto logico utilizzare la funzione delay (), poiché quando viene utilizzato, il controller si blocca e non vengono eseguiti calcoli. Esistono diversi modi per risolvere questo problema. In particolare, uno di questi è l'uso della funzione millis (), che restituisce un numero in millisecondi dal momento in cui il controller funziona. E come ritardare un condizionale di 100 millisecondi? Per fare ciò, ho creato un ciclo essenzialmente vuoto, l'uscita da cui avverrà solo dopo questi 100 millisecondi, quindi il programma procede all'accensione / spegnimento dei LED.

Bene, tutto qui! Grazie per aver letto questo articolo fino alla fine. Spero che non solo ti sia piaciuta, ma abbia anche ispirato un nuovo mare mestieri e invenzioni!
6
5
5

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
7 commento
L'autore
Ciao)
Forse hai ancora uno schizzo funzionante? In questo, si scopre che anche il segno "<" è stato sostituito da "& lt;")
Benvenuti! Quando carico il tuo schizzo, produce un sacco di errori di sintassi per qualche motivo. Certo, non sto molto giocherellando con la sintassi, ma in alcuni punti non riesco proprio a capire cosa debba essere risolto. Ad esempio, in un pezzo:
per (int i = 0; i100) tono (2,70);
digitalWrite (j, masiv [i]);
, cosa significa i100 unito? perché non incrementare? Hai bisogno di parentesi graffe in modo che le successive due funzioni appartengano allo stesso loop o sbaglio? E così il compilatore giura in tutto il codice. Posso in qualche modo contattarti, chiarire il codice? Sto cercando di realizzare un progetto di corso basato sul tuo articolo.

Inoltre, nel codice nel punto in cui sono collegate le librerie, i loro nomi non sono indicati. Certo, puoi indovinare, ma ancora questo schizzo non è del tutto adatto per i test istantanei, devi pensarci su)
L'autore
Sì, è possibile)
Cioè, la penultima foto (in cui 77) non ha semplicemente successo a causa dell'illuminazione parassita dei segmenti superiori a causa di un funzionamento errato del display dinamico? Il sei ha anche una retroilluminazione spuria, sebbene non così ovvio.
L'autore
Ivan, letture 6 cm e 11 cm è la distanza dal sensore al palmo)
Spiega perché una così strana testimonianza nelle ultime due fotografie.

Ti consigliamo di leggere:

Passalo per lo smartphone ...