» elektronik » Arduino »Range finder på Arduino platformen!

Rækkefølgen finder på Arduino platformen!


God dag til alle! I denne artikel vil jeg gerne fortælle, hvordan brug Arduino, et sæt LED'er og en ultralydssensor, kan du samle en enhed, der bestemmer afstanden fra observatøren til objektet, med andre ord, rækkevidde finder. Og så lad os gå!
Hvad har vi brug for:
sædvanlige kassen. Det er ønskeligt at være lille i størrelse, da det kun vil indeholde en mikrokontroller.

med ultralydstransducer HC-SR04 vi kan bestemme afstanden.

Firecifret indikator vi er nødt til at udsende de opnåede værdier.

sæt lysdioder alle farver (jeg brugte grønt, da de er lysere), modstande ved 220 ohm ledninger eller springere også breadboard.





Så at komponenterne på vores enhed er sikkert fastgjort, lodder jeg dem.
Til dette har vi brug for loddejern, flux, lodningså godt brødbræt til lodning.

Og selvfølgelig uden Arduino vi kan ikke gøre! (Du kan vælge en hvilken som helst mikrokontroller, jeg foretrak Arduino Leonardo eller dets tilsvarende Iskra Neo)

Af værktøjerne har vi brug for et loddejern, som jeg sagde ovenfor, kniv og nipper.

Lad os nu begynde at samle enheden.
Trin 1
For at komme i gang ved hjælp af en brødbræt samler vi en prototype af vores fremtidige enhed. Det vil se sådan ud ..

Bare rolig! Der er ikke noget forfærdeligt i dette rod med ledninger!
HC-SR04 sensoren har fire stifter: plus, minus (som vi holder fast i 5V og GND på controlleren), Trig og Echo (vi indsætter arduino-stifterne i henholdsvis 12 og 11)
Den fircifrede indikator har 3 ledninger: strøm, jord og signal. Den sidstnævnte er forbundet til den 9-polede Arduino.
Vi forbinder tre lysdioder til 6, 5 og 4 kontakter fra controlleren i serie med modstande. Glem ikke polariteten. Strøm flyder fra et længere ben til et kortere.
Det var alt, da vi samlet vores enhed på en brødbræt, uploadede skitsen (det vil være i slutningen af ​​artiklen) og sørgede for, at alt fungerer, er du velkommen til at begynde at lodde.
Trin nummer 2
Lod først den ultralydsensor til brødbrættet. Jeg brugte en lille brødbræt i størrelse, da antallet af elementer ikke overstiger 7.

Efter det, ved hjælp af nipere, bid benene af (jeg undskylder tautologien), så de bliver kortere, så de ikke forstyrrer sig og ser pænere ud!

Lod derefter de fire ledninger mod sensorkontakterne.


Glem heller ikke nipperne!


Trin 3
Sensoren er på plads, det gjenstår at lodde de tre LED'er sammen med modstanderne.


På bagsiden ser det sådan ud:

Trin 4
På siden af ​​kassen skal du skære et rundt hul til mad.

På låget skal du skære et hulrum til størrelsen (lidt mindre i længden) på din brødbræt og også bore huller til skruer.


Hvis vi nu skruer et tomt brødbræt uden elementer på det (jeg lige gjorde det til demonstration ..), får vi noget i det følgende:

Trin # 5
Så for at gøre det mere praktisk foreslår jeg først at tilslutte ledningerne til arduino og først derefter skrue brædbrættet til kasselåget. Glem heller ikke vores indikator, som jeg placerede over layoutet.

Alt på denne enhedsenhed er færdig!
Det gjenstår kun at downloade det næste skitse og nyd legetøjet!
#include
#include
NewPing-ekkolodd (12.11, 400);
int a, j, b;
usigneret lang t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
ugyldig opsætning ()
{
 for (int i = 4; i & lt; 7; i ++)
 {
   pinMode (i, OUTPUT);
 }
 displayClear (9);
 for (int i = 4; i & lt; 7; i ++)
 {
   digitalWrite (i, 0);
 }
  }
void loop ()
{
  j = 7;
  for (int i = 0; i100) tone (2,70);
    digitalWrite (j, masiv [i]);
    mens (millis () & lt; = t + b)
    {
    forsinkelse (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
    }
    t = millis ();
    hvis (j == 4) j = 7;
    hvis (i == 8)
    {
     digitalWrite (4.1);
     mens (millis () & lt; = (t + b) + (b * 2))
     {
    forsinkelse (50);
    a = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
     }
     digitalWrite (4.0);
     t = millis ();
    }
  }



Et par ord programkode. Takket være ham vil vores tre lysdioder blinke skiftevis efter hinanden, og hastigheden på deres blink vil afhænge af afstanden til objektet, der beregnes af ultralydssensoren. Men for at få lysdioderne til at blinke, er det ikke helt logisk at bruge funktionen forsinkelse (), da kontrollen fryser, når der bruges, og der udføres ingen beregninger. Der er flere måder at løse dette problem på. Især en af ​​dem er brugen af ​​funktionen millis (), der returnerer et tal i millisekunder fra det øjeblik, controlleren fungerer. Og hvordan udsætter vi betingede 100 millisekunder? For at gøre dette oprettede jeg en i det væsentlige tom cyklus, hvorfra udgangen først er efter disse 100 millisekunder, og derefter fortsætter programmet med at tænde / slukke lysdioderne.

Det er alt sammen! Tak, fordi du læser denne artikel til slutningen. Jeg håber du ikke kun kunne lide hende, men også inspirerede et nyt hav kunsthåndværk og opfindelser!
6
5
5

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
7 kommentar
Forfatteren
Hej)
Måske har du stadig en skitse, der fungerer? I dette viser det sig, at selv skiltet "<" blev erstattet af "& lt;")
Velkommen! Når jeg indlæser din skitse, producerer den en masse syntaksfejl af en eller anden grund. Selvfølgelig er jeg ikke rigtig genert i syntaksen, men nogle steder kan jeg bare ikke finde ud af, hvad der skal rettes. For eksempel i et stykke:
for (int i = 0; i100) tone (2,70);
digitalWrite (j, masiv [i]);
, hvad betyder den fusionerede i100? hvorfor ikke stigning? Har du brug for krøllede seler, så de næste to funktioner efter for hører til den samme sløjfe, eller har jeg forkert? Og så sværger kompilatoren hele koden. Kan jeg på en eller anden måde kontakte dig for at afklare koden? Jeg prøver at lave et kursusprojekt baseret på din artikel.

I koden på det sted, hvor bibliotekerne er forbundet, er deres navne heller ikke angivet. Selvfølgelig kan du gætte, men stadig er denne skitse ikke helt velegnet til en øjeblikkelig kontrol af anvendeligheden, du skal tænke over det)
Forfatteren
Ja, det er muligt)
Det vil sige, at det næstsidste foto (hvor 77) simpelthen ikke lykkes på grund af en vis parasitbelysning af de øvre segmenter som et resultat af forkert betjening af det dynamiske display? Også på de seks parasitiske baggrundsbelysning, skønt ikke så indlysende.
Forfatteren
Ivan, aflæsninger 6 cm og 11 cm er afstanden fra sensoren til håndfladen)
Forklar venligst hvorfor et så mærkeligt vidnesbyrd på de to sidste fotografier.

Vi råder dig til at læse:

Giv den til smartphonen ...