» electronică » Arduino »Găsește gama pe platforma Arduino!

Găsitorul de gamă de pe platforma Arduino!


Bună ziua tuturor! În acest articol aș dori să vă spun cum să folosiți Arduino, un set de leduri și un senzor ultrasonic, puteți asambla un dispozitiv care determină distanța de la observator la obiect, cu alte cuvinte, căutător de gamă. Și așa să mergem!
De ce avem nevoie:
obișnuit cutie. Este de dorit să fie de dimensiuni mici, deoarece va conține un singur microcontroler.

cu Traductor ultrasonic HC-SR04 putem determina distanța.

Indicator de patru cifre trebuie să scoatem valorile obținute.

set LED-uri orice culori (am folosit verde, deoarece sunt mai luminoase), rezistențe la 220 ohmi fire sau jumperi de asemenea breadboard.





Pentru ca componentele dispozitivului nostru să fie bine fixate, le voi vinde.
Pentru asta avem nevoie fier de lipit, flux, lipitde asemenea panou pentru lipit.

Și, desigur, fără Arduino nu putem face! (Puteți alege orice microcontroler, am preferat Arduino Leonardo sau echivalentul său Iskra Neo)

Dintre scule avem nevoie de o fieră de lipit, așa cum am spus mai sus, cuțit și sfarcuri.

Acum să începem să asamblați dispozitivul.
Pasul 1
Pentru a începe, folosind o placă de pâine, vom asambla un prototip al viitorului nostru dispozitiv. Va arăta ceva ca acesta ..

Nu vă faceți griji! Nu este nimic groaznic în această mizerie de fire!
Senzorul HC-SR04 are patru pini: plus, minus (pe care-l lipim în 5V și GND-ul controlerului), Trig și Echo (introducem pinii arduino în 12 și, respectiv, 11)
Indicatorul format din patru cifre are 3 fire: putere, masă și semnal. Acesta din urmă este conectat la Arduino cu 9 pini.
Conectăm trei leduri la 6, 5 și 4 contacte ale regulatorului în serie cu rezistențe. Nu uita de polaritate. Curentul curge de la un picior mai lung la unul mai scurt.
Asta-i tot, când ne-am asamblat dispozitivul pe o panou de pâine, am încărcat schița (va fi la sfârșitul articolului) și ne-am asigurat că totul funcționează, nu ezitați să începeți să lipiți.
Pasul numărul 2
Mai întâi, lipit senzorul cu ultrasunete pe panou. Am folosit o panou mică de dimensiuni, deoarece numărul de elemente nu depășește 7.

Dupa aceea, cu ajutorul sfarcurilor, musca-ti picioarele (imi cer scuze pentru tautologie), facandu-le mai scurte, astfel incat sa nu se amestece si sa arate mai frumos!

După aceea, lipiți cele patru fire împotriva contactelor senzorului.


De asemenea, nu uita de sfarcuri!


Pasul # 3
Senzorul este în poziție, rămâne să lipim cele trei LED-uri împreună cu rezistențele.


Pe verso, arată așa:

Pasul 4
În lateralul cutiei, tăiați o gaură rotundă pentru mâncare.

Pe capac, trebuie să tăiați o cavitate la dimensiunea (puțin mai mică în lungime) a plăcii dvs. de panou și, de asemenea, să găuriți găuri pentru șuruburi.


Acum, dacă înșurubăm o pană goală fără elemente pe ea (am făcut-o doar pentru demonstrație ..), obținem ceva de genul:

Pasul 5
Așa că, pentru a o face mai convenabilă, vă propun să conectați mai întâi firele la arduino și abia apoi să înșurubați panoul de pâine pe capacul cutiei. De asemenea, nu uitați de indicatorul nostru, pe care l-am plasat deasupra machetei.

Totul pe acest ansamblu de dispozitiv este terminat!
Rămâne doar să descarci următoarea schiță și bucură-te de jucărie!
#include
#include
Sonar NewPing (12.11, 400);
int a, j, b;
nesemnat lung t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
void setup ()
{
 pentru (int i = 4; i & lt; 7; i ++)
 {
   pinMode (i, OUTPUT);
 }
 displayClear (9);
 pentru (int i = 4; i & lt; 7; i ++)
 {
   digitalWrite (i, 0);
 }
  }
nul buclă ()
{
  j = 7;
  pentru (int i = 0; i100) ton (2,70);
    digitalWrite (j, masiv [i]);
    în timp ce (millis () & lt; = t + b)
    {
    întârziere (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
    }
    t = millis ();
    dacă (j == 4) j = 7;
    if (i == 8)
    {
     digitalWrite (4.1);
     while (millis () & lt; = (t + b) + (b * 2))
     {
    întârziere (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
     }
     digitalWrite (4.0);
     t = millis ();
    }
  }



Câteva cuvinte codul programului. Mulțumită lui, cele trei LED-uri ale noastre vor clipi alternativ unul după altul, iar viteza de clipire a acestora va depinde de distanța față de obiect, care este calculată de senzorul cu ultrasunete. Dar, pentru a face LED-urile să clipească, nu este în totalitate logic să folosiți funcția de întârziere (), deoarece atunci când este utilizat, regulatorul îngheață și nu se efectuează calcule. Există mai multe moduri de a rezolva această problemă. În special, una dintre ele este utilizarea funcției millis (), care returnează un număr în milisecunde din momentul în care funcționează controlerul. Și cum amânăm o condiție de 100 de milisecunde? Pentru a face acest lucru, am creat un ciclu esențial gol, a cărui ieșire va fi numai după aceste 100 de milisecunde, iar apoi programul continuă să pornească / să stingă LED-urile.

Ei bine, asta este totul! Vă mulțumim că ați citit acest articol până la sfârșit. Sper că nu numai că ai plăcut-o, dar a inspirat și o nouă mare meșteșuguri și invenții!
6
5
5

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
7 comentariu
Autorul
Bună ziua)
Poate mai ai o schiță de lucru? În acest sens, se dovedește că chiar semnul "<" a fost înlocuit cu "& lt;")
Bine ai venit! Când îți încărc schița, produce o serie de erori de sintaxă dintr-un anumit motiv. Bineînțeles, nu mă înțeleg foarte mult cu sintaxa, dar în unele locuri, pur și simplu nu îmi dau seama ce trebuie rezolvat. De exemplu, într-o bucată:
pentru (int i = 0; i100) ton (2,70);
digitalWrite (j, masiv [i]);
ce înseamnă i100-ul combinat? de ce nu crește? Aveți nevoie de bretele cret, astfel încât următoarele două funcții de după aparțin aceleiași bucle, sau mă înșel? Deci, compilatorul înjură codul. Pot să vă contactez cumva, să clarific codul? Încerc să fac un proiect de curs pe baza articolului tău.

De asemenea, în codul din locul în care sunt conectate bibliotecile, numele lor nu sunt indicate. Desigur, puteți ghici, dar totuși această schiță nu este tocmai potrivită pentru testarea instantanee, trebuie să o gândiți mai departe)
Autorul
Da, este posibil)
Adică, penultima fotografie (în care 77) este pur și simplu nereușită din cauza unor iluminări parazitare a segmentelor superioare ca urmare a funcționării incorecte a afișajului dinamic? Șase au și un fundal spuriu, deși nu este atât de evident.
Autorul
Ivan, citiri 6cm și 11cm este distanța de la senzor la palmă)
Vă rugăm să explicați de ce o mărturie atât de ciudată în ultimele două fotografii.

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...