Les 98-9: LED-spanningvlakmeter met Arduino of looplig met potensiometer
Hierdie projek wys jou hoe om 'n spanningvlakmeter te bou wat vyf LED's as 'n staafgrafiek-vertooning gebruik, wat heeltemal deur 'n Arduino en 'n enkele potensiometer aangedryf word. Soos jy die knop draai, lees die Arduino die veranderende spanning op 'n analoogpen en lig een LED per volt op, sodat die ry ligte letterlik saam met die knop op en af "loop". Dit is een van die duidelikste maniere om analoog-insette te verstaan, want jy kan die analoog-na-digitaal-omskakeling in reële tyd as 'n fisiese ligbalk sien gebeur.
Die praktiese waarde hier gaan veel verder as 'n ligvertoning. Sodra jy verstaan hoe om 'n gemete spanning na 'n stel uitsette te karteer, kan jy dieselfde patroon vir werklike instrumentasie hergebruik. Jy kan byvoorbeeld bou:
- 'n Batteryvlakaanwyser wat die oorblywende kapasiteit van 'n 12 V- of USB-kragbank as 'n ry LED's wys.
- 'n Watertenkvlakmeter, waar 'n vlotter sensor 'n spanning eweredig aan die diepte uitsit.
- 'n Temperatuurstaafvertooning met behulp van 'n analoog temperatuursensor soos die LM35.
- 'n Seinsterkte- of klankvlakmeter vir 'n radiomasjien of versterker.
- 'n Eenvoudige sensoruitlees vir enige 0–5 V analoog-omsetter (druk, lig, posisie).
- 'n Banktoets-spanningstaster om kragrelings sonder 'n multimeter-skerm na te gaan.
Omdat die drumpels as persentasies van die bordspanning bereken word, werk dieselfde kode op 5 V-borde soos die Uno en Mega en op 3.3 V-borde met slegs 'n eenlyn-verandering.
Hardeware en Komponente
Die onderdelelys is doelbewus minimaal, en alles word in die vroeë deel van die video verduidelik (in video by 01:54). Jy sal nodig hê:
- Een Arduino-bord (Uno, Nano of Mega).
- Vyf LED's, ideaal van 'n enkele kleur sodat die staaf duidelik lees, hoewel gemengde kleure ook werk.
- Vyf stroombeperkende weerstande. Die tutoriaal gebruik 1 kΩ-weerstande, maar enigiets van ongeveer 300 Ω tot 1 kΩ sal werk; hoër waardes maak die LED's bloot dowwer (in video by 05:33).
- Een potensiometer. Beide 'n draaiknop-tipe en 'n skuif-tipe word gedemonstreer (in video by 02:19).
- 'n Broodbord en verbindingsdrade.
'n Vinnige nota oor die LED self, aangesien dit saak maak vir bedrading: 'n LED is 'n diode, so dit gelei slegs een rigting. Die plat kant van die plastiekliggaam, en die korter been, is die katode (negatief). Die langer been is die anode (positief). Die tutoriaal verduidelik hierdie simbool en fisiese vorm in detail (in video by 02:39).
Die weerstandwaarde is nie arbitrêr nie. 'n LED val ongeveer 2 V, en die klein 3 mm- en 5 mm-tipes trek ongeveer 10 mA. Met 'n 5 V-toevoer moet die oorblywende 3 V oor die weerstand val, so Ohm se wet gee R = 3 V / 0.01 A = 300 Ω. Dit is die waarde vir maksimum helderheid; om 1 kΩ te gebruik is 'n veilige, effens dowwer keuse (in video by 04:41).
Bedradingsgids
Die LED-gedeelte van die bedrading is identies aan die vroeëre looplig-projek: elke LED-anode verbind aan sy eie digitale pen, en elke katode gaan deur 'n weerstand na 'n gemeenskaplike grondrelings. In die tutoriaal is die LED's aan penne 7, 6, 5, 4 en 3 gekoppel (in video by 43:04).
Die potensiometer is die enigste nuwe onderdeel. Sy twee buitenste penne gaan na die twee kragrelings — een buitenste pen na grond en die ander na 5 V (of 3.3 V as jy 'n 3.3 V-stelsel meet). Die middelpen, die wiper genoem, is die uitset en moet aan analoogpen A0 verbind (in video by 43:30). Die wiper is wat die veranderlike spanning produseer: soos jy die knop draai, skuif die wiper langs 'n weerstandsbaan en die spanning wat dit bied verander glad tussen die twee relings.
Een belangrike detail: as jy die potensiometer verwyder terwyl die stroombaan loop, word die analoogpen los gelaat en die LED's sal lukraak flikker. Daardie gedrag word in die video gedemonstreer (in video by 48:52) en is 'n goeie herinnering dat 'n analoog-inset altyd 'n gedefinieerde spanningsbron nodig het.
Kode-verduideliking
Die kode is kort en meeste daarvan is eenvoudig, so hierdie afdeling fokus slegs op die dele wat jy sal wil verander. Al hierdie instellings sit bo-aan die skets.
Pen-definisies. Dit vertel die Arduino aan watter penne die LED's en die potensiometer gekoppel is. As jy jou LED's anders bedraad het, verander hierdie nommers om te pas — die volgorde maak saak, want LED1 is die laagste drumpel en LED5 die hoogste.
const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;Bordspanning. Dit is die enkele belangrikste waarde om reg te kry. Dit is die verwysing waarteen elke drempel bereken word. Stel dit op 5.0 vir 'n Uno of Mega, en op 3.3 vir 'n 3.3 V Nano of soortgelyke bord. As jy dit verkeerd laat, sal elke LED teen die verkeerde spanning skakel (in video by 44:19).
float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V
Reeksspanningvertoning. Stel dit op true om die gemete spanning na die Serial Monitor teen 9600 baud te druk, wat uiters nuttig is tydens kalibrasie. Stel dit op false om die uitset te demp sodra alles werk.
boolean showVoltage = true;//true or false to read voltage in serial monitor
Hoe die omskakeling werk. Die Arduino se analoog-na-digitaal-omsetter gee 'n getal van 0 tot 1023 terug, want dit is 'n 10-bis-omsetter (210 = 1024 stappe). Die kode skaleer daardie rou getal na 'n werklike spanning deur die bordspanning as die verwysing te gebruik. Dit is die reël om te onthou as jy ooit na 'n 12-bis-bord soos die Due oorskakel, waar jy eerder deur 4095 sou deel.
int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);
Die drempellogika. Eerder as om spannings hard te kodeer, word elke stap as 'n persentasie van die bordspanning uitgedruk. By 95% of hoër lig al vyf LEDs; bo 80% net vier; en so aan af tot 20%, waar 'n enkele LED lig. Hierdie persentasiebenadering is wat die skets draagbaar maak tussen 5 V- en 3.3 V-borde sonder om die vergelykings te herskryf.
if (voltage >= boardVoltage*0.95)
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
}
Omdat die kode else if gebruik, loop presies een tak per deurgang deur die lus, so net die korrekte aantal LEDs is ooit op een slag aan. Die 50 ms-vertraging aan die einde van elke lus keer dat die vertoning flikker.
Lewendige projek en demonstrasie
Met die skets opgelaai, maak die Serial Monitor teen 9600 baud oop en draai die knop stadig. Die gedrukte spanning en die LED-balk volg mekaar noukeurig: by ongeveer 1 V is een LED aan, by 2 V is twee aan, en so aan tot ongeveer 4.8 V waar al vyf aan is (in video by 47:37). Die lesings val binne 'n paar honderdstes van 'n volt van die verwagte waarde, wat uitstekend is vir 'n 10-bis-omsetter.
As die stappe effens ongelyk lyk, is dit gewoonlik die weerstande eerder as die kode. Die tutoriaal merk op dat standaard koolstoffilm-weerstande 'n 10%-toleransie het, terwyl blou metaalfilm-tipes tipies 1% is en merkbaar stywer, meer akkurate stappe gee (in video by 48:18).
Jy kan ook die roterende potensiometer vir 'n skuifpotensiometer ruil en dieselfde gedrag met 'n lineêre gevoel kry, wat 'n goeie opsie is as jy van plan is om die meter in 'n paneel te monteer (in video by 49:07).
As jy die lig met die hand eerder as met 'n knop wil beweeg, word dit gedek in Les 98-8: Lopende lig met drukknop en LEDs met Arduino. En as jy bloot wil hê die LEDs moet op hul eie tydhouer loop, sien Les 98-7: Lopende lig met Arduino en 5 LEDs.
Verwante projekte uit hierdie video
- Les 98-1: Hoe om 'n LED met Arduino aan en af te skakel
- Les 98-2: Hoe om 'n LED met 'n drukknop met Arduino aan en af te skakel
- Les 98-3: Hoe om 'n wissel-LED met 'n drukknop met Arduino aan/af te skakel
- Les 98-4: Laat 'n LED-lig vervaag met Arduino: Helderheidbeheer
- Les 98-5: Laat lig vervaag wanneer 'n knoppie gedruk word met Arduino
- Les 98-6: Wipplank-LED-speletjie met Arduino
- Les 98-7: Lopende lig met Arduino en 5 LEDs
- Les 98-8: Lopende lig met drukknop en LEDs met Arduino
- Les 98-10: Arduino-verkeerslig
Hoofstukke
- [00:00] Oorsig van die 10 LED-projekte
- [02:29] LED-basiese, simbole en weerstandberekening
- [42:25] Inleiding tot die LED-spanningvlakmeter
- [43:04] Bedrading van die LEDs en potensiometer
- [43:54] Verduideliking van die spanningbalk-kode
- [44:19] Stel die bordspanningverwysing
- [46:00] Drempellogika en persentasiestappe
- [47:14] Demonstrasie: lees spanning met die LED-balk
- [48:18] Weerstandtoleransie en akkuraatheid
- [49:07] Gebruik van 'n skuifpotensiometer
This code has not been parsed yet. Please return to the admin panel to parse it.
Goedere wat jy dalk nodig het
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Hulpbronne en verwysings
-
DokumentasieDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Buitenburg
-
Buitenburg
-
Buitenburg
Lêers📁
Arduino Biblioteke (zip)
-
SunFounder se 3-in-1 Slim Motor leerstel bronkode
3in1-kit-main-v2.zip12.80 MB
Gebruikershandleiding
-
SunFounder 3-in-1 Arduino Slimmotor-monteringshandleidingHierdie dokument wys stap-vir-stap montering van SunFounder 3-in-1 Arduino Slimmotor
SunFounder_car_assembly_manual.pdf1.20 MB