» elektronikk » Arduino »Range finder på Arduino-plattformen!

Rekkevidden på Arduino-plattformen!


God dag til alle! I denne artikkelen vil jeg fortelle hvordan du bruker Arduino, et sett lysdioder og en ultralydsensor, kan du sette sammen en enhet som bestemmer avstanden fra observatøren til objektet, med andre ord, rekkeviddersøker. Og så la oss gå!
Hva trenger vi:
vanlig boksen. Det er ønskelig å være liten i størrelse, siden den bare vil inneholde en mikrokontroller.

med ultralyd transduser HC-SR04 vi kan bestemme avstanden.

Firesifret indikator vi må levere de oppnådde verdiene.

sett LED alle farger (jeg brukte grønt, da de er lysere), motstander ved 220 ohm ledninger eller hoppere også Breadboard.





Slik at komponentene på enheten vår er ordentlig festet, løfter jeg dem.
For dette trenger vi loddejern, fluss, loddeogså brødplate for lodding.

Og selvfølgelig uten Arduino vi kan ikke gjøre! (Du kan velge hvilken som helst mikrokontroller, jeg foretrakk Arduino Leonardo eller tilsvarende Iskra Neo)

Av verktøyene trenger vi et loddejern, som jeg sa ovenfor, kniv og nipper.

La oss begynne å montere enheten.
Trinn 1
For å komme i gang ved å bruke en brødbrett, vil vi sette sammen en prototype av fremtidens enhet. Det vil se sånn ut ..

Ikke bekymre deg! Det er ikke noe forferdelig i dette rotet av ledninger!
HC-SR04-sensoren har fire pinner: pluss, minus (som vi stikker inn i 5V og GND på kontrolleren), Trig og Echo (vi setter arduino-pinnene inn i henholdsvis 12 og 11)
Den firesifrede indikatoren har 3 ledninger: strøm, jord og signal. Sistnevnte er koblet til 9-pinners Arduino.
Vi kobler tre lysdioder til 6, 5 og 4 kontakter til kontrolleren i serie med motstander. Ikke glem polariteten. Strøm flyter fra et lengre ben til et kortere.
Det var alt, da vi samlet enheten vår på en brødplate, lastet opp skissen (den vil være på slutten av artikkelen) og sørget for at alt fungerer, må du begynne å lodde.
Trinn nummer 2
Først må du lodde ultralydsensoren til brødbordet. Jeg brukte en liten brødplate i størrelse, ettersom antall elementer ikke overstiger 7.

Etter det, med hjelp av nippers, bite av bena (jeg beklager tautologien), slik at de blir kortere slik at de ikke forstyrrer og ser penere ut!

Etter det, lodd de fire ledningene mot sensorkontaktene.


Ikke glem nippene!


Trinn 3
Sensoren er på plass, det gjenstår å lodde de tre LED-ene sammen med motstandene.


På baksiden ser det slik ut:

Trinn 4
På siden av esken, kutt et rundt hull for mat.

På lokket må du kutte et hulrom til størrelsen (litt mindre i lengden) på brødbordet, og også bore hull for skruer.


Nå, hvis vi skruer et tomt brødbord uten elementer på det (jeg gjorde det bare for demonstrasjon ..), får vi noe sånt som følgende:

Trinn 5
Så for å gjøre det mer praktisk, foreslår jeg å først koble ledningene til arduino, og først deretter skru brødbrettet til kasselokket. Ikke glem indikatoren vår, som jeg plasserte over oppsettet.

Alt på denne enheten er ferdig!
Det gjenstår bare å laste ned det neste skisse og kos deg med leken!
#include
#include
NewPing ekkolodd (12.11, 400);
int a, j, b;
usignert lang t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
ugyldig oppsett ()
{
 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 = ekkolodd.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 = ekkolodd.ping_cm ();
    displayInt (9, a);
    b = a;
     }
     digitalWrite (4.0);
     t = millis ();
    }
  }



Noen få ord programkode. Takket være ham vil våre tre lysdioder blinke vekselvis etter hverandre, og hastigheten på blinkingen vil avhenge av avstanden til objektet, som beregnes av ultralydsensoren. Men for å få lysdiodene til å blinke, er det ikke helt logisk å bruke funksjonen for forsinkelse (), siden når den brukes, fryser kontrolleren og ingen beregninger blir utført. Det er flere måter å løse dette problemet på. Spesielt er en av dem bruken av funksjonen millis (), som returnerer et tall i millisekunder fra det øyeblikket kontrolleren fungerer. Og hvordan forsinker vi betingede 100 millisekunder? For å gjøre dette, opprettet jeg en i det vesentlige tom syklus, hvor utgangen først vil være etter disse 100 millisekundene, og deretter fortsetter programmet med å slå av og på LED-ene.

Det er vel alt! Takk for at du leser denne artikkelen til slutt. Jeg håper du ikke bare likte henne, men også inspirerte et nytt hav håndverk og oppfinnelser!
6
5
5

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
7 kommentar
Forfatteren
Hei)
Kanskje du fremdeles har en skisse som fungerer? I dette viser det seg at til og med tegnet "<" ble erstattet av "& lt;")
Velkommen! Når jeg laster skissen din, produserer den en rekke syntaksfeil av en eller annen grunn. Selvfølgelig er jeg ikke veldig sjenert i syntaks, men noen steder kan jeg ikke finne ut hva som må fikses. For eksempel i et stykke:
for (int i = 0; i100) tone (2,70);
digitalWrite (j, masiv [i]);
, hva betyr den sammenslåtte i100? hvorfor ikke økning? Trenger du krøllete seler slik at de to neste funksjonene etter for tilhører samme sløyfe, eller tar jeg feil? Og slik sverger kompilatoren hele koden. Kan jeg på en eller annen måte kontakte deg, avklare koden? Jeg prøver å lage et kursprosjekt basert på artikkelen din.

I koden på stedet der bibliotekene er koblet sammen, er ikke navnene angitt. Selvfølgelig kan du gjette, men fortsatt er denne skissen ikke helt egnet for øyeblikkelig testing, du må tenke over det)
Forfatteren
Ja, det er mulig)
Det vil si at det nest siste bildet (der 77) ganske enkelt ikke lykkes på grunn av noe parasittbelysning av de øvre segmentene som et resultat av feil funksjon av det dynamiske displayet? De seks har også en falsk bakgrunnsbelysning, selv om den ikke er så åpenbar.
Forfatteren
Ivan, avlesningene 6 cm og 11 cm er avstanden fra sensoren til håndflaten)
Vennligst forklar hvorfor et så merkelig vitnesbyrd i de to siste fotografiene.

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...