Goede dag allemaal! In dit artikel wil ik vertellen hoe te gebruiken Arduino, een set LED's en een ultrasone sensor, kunt u een apparaat samenstellen dat de afstand van de waarnemer tot het object bepaalt, met andere woorden, afstandsmeter. En laten we gaan!
Wat hebben we nodig:
Gewoon doos. Het is wenselijk klein te zijn, omdat het slechts één microcontroller zal bevatten.
Gebruiken ultrasone transducer HC-SR04 we kunnen de afstand bepalen.
Viercijferige indicator we moeten de verkregen waarden uitvoeren.
Stel LED's alle kleuren (ik heb groen gebruikt, omdat ze helderder zijn), weerstanden bij 220 ohm draden of jumpers ook broodplank.
Zodat de componenten van ons apparaat stevig vast zitten, zal ik ze solderen.
Hiervoor hebben we nodig soldeerbout, flux, soldeerook breadboard voor solderen.
En natuurlijk zonder Arduino we kunnen niet doen! (Je kunt elke microcontroller kiezen, ik gaf de voorkeur aan Arduino Leonardo of het gelijkwaardige Iskra Neo)
Van de gereedschappen hebben we een soldeerbout nodig, zoals ik hierboven zei, mes en tangen.
Laten we nu beginnen met het monteren van het apparaat.
Stap # 1
Om te beginnen, zullen we met behulp van een breadboard een prototype van ons toekomstige apparaat samenstellen. Het ziet er ongeveer zo uit ..
Maak je geen zorgen! Er is niets vreselijks in deze warboel van draden!
De HC-SR04-sensor heeft vier pinnen: plus, min (die we in de 5V en GND van de controller steken), Trig en Echo (we plaatsen de arduino-pinnen in respectievelijk 12 en 11)
De viercijferige indicator heeft 3 draden: stroom, aarde en signaal. Deze laatste is aangesloten op de 9 pin Arduino.
We verbinden drie leds met 6, 5 en 4 contacten van de controller in serie met weerstanden. Vergeet de polariteit niet. De stroom vloeit van een langer been naar een korter been.
Dat is alles, toen we ons apparaat op een breadboard monteerden, de schets uploadden (het zal aan het einde van het artikel zijn) en ervoor zorgen dat alles werkt, voel je vrij om te beginnen met solderen.
Stap nummer 2
Soldeer eerst de ultrasone sensor op het breadboard. Ik heb een kleine breadboard gebruikt, omdat het aantal elementen niet groter is dan 7.
Daarna, met behulp van een tang, de benen afbijten (mijn excuses voor de tautologie), waardoor ze korter worden zodat ze niet interfereren en er mooier uitzien!
Soldeer daarna de vier draden tegen de sensorcontacten.
Vergeet ook de tangen niet!
Stap # 3
De sensor is op zijn plaats, het blijft om de drie LED's samen met de weerstanden te solderen.
Aan de andere kant ziet het er zo uit:
Stap # 4
Snijd aan de zijkant van de doos een rond gat voor voedsel.
Op het deksel moet je een holte op maat maken (iets kleiner in lengte) van je breadboard en ook gaten boren voor schroeven.
Als we nu een lege breadboard zonder elementen erop schroeven (ik deed het alleen voor demonstratie ..), krijgen we zoiets als het volgende:
Stap # 5
Dus, om het gemakkelijker te maken, stel ik voor om eerst de draden op de arduino aan te sluiten en pas dan de breadboard op het deksel van de doos te schroeven. Vergeet ook onze indicator niet, die ik boven de lay-out heb geplaatst.
Alles aan deze apparaatmontage is klaar!
Het blijft alleen om de volgende te downloaden schets en geniet van het speelgoed!
#include
#include
NewPing-sonar (12.11, 400);
int a, j, b;
ongetekend lang t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
ongeldige setup ()
{
voor (int i = 4; i & 7; i ++)
{
pinMode (i, OUTPUT);
}
displayClear (9);
voor (int i = 4; i & 7; i ++)
{
digitalWrite (i, 0);
}
}
leegte lus ()
{
j = 7;
voor (int i = 0; i100) toon (2,70);
digitalWrite (j, masiv [i]);
terwijl (millis () & lt; = t + b)
{
vertraging (50);
a = sonar.ping_cm ();
displayInt (9, a);
b = a;
}
t = millis ();
als (j == 4) j = 7;
als (ik == 8)
{
digitalWrite (4.1);
terwijl (millis () & lt; = (t + b) + (b * 2))
{
vertraging (50);
a = sonar.ping_cm ();
displayInt (9, a);
b = a;
}
digitalWrite (4.0);
t = millis ();
}
}
Een paar woorden programmacode. Dankzij hem knipperen onze drie LED's afwisselend achter elkaar en de snelheid waarmee ze knipperen hangt af van de afstand tot het object, die wordt berekend door de ultrasone sensor. Maar om de LED's te laten knipperen, is het niet helemaal logisch om de delay () functie te gebruiken, want wanneer deze wordt gebruikt, bevriest de controller en worden er geen berekeningen uitgevoerd. Er zijn verschillende manieren om dit probleem op te lossen. Een daarvan is met name het gebruik van de functie millis (), die een getal in milliseconden retourneert vanaf het moment dat de controller werkt. En hoe vertragen we een voorwaardelijke 100 milliseconden? Om dit te doen, heb ik een in wezen lege cyclus gemaakt, waarvan de uitgang pas na deze 100 milliseconden zal zijn, en dan gaat het programma verder met het in- / uitschakelen van de LED's.
Nou dat is alles! Bedankt voor het lezen van dit artikel. Ik hoop dat je haar niet alleen leuk vond, maar ook een nieuwe zee inspireerde ambachten en uitvindingen!