Pretraži kod

Lesson 98-9: LED mjerač napona pomoću Arduina ili svjetlo koje hoda s potenciometrom

Lesson 98-9: LED mjerač napona pomoću Arduina ili svjetlo koje hoda s potenciometrom

Ovaj projekat vam pokazuje kako napraviti voltmetar nivoa napona koji koristi pet LED dioda kao trakasti grafički prikaz, kojim upravlja isključivo Arduino i jedan potenciometar. Kako okrećete dugme, Arduino očitava promjenjivi napon na analognom pinu i pali po jednu LED diodu za svaki volt, tako da red svjetala doslovno "hoda" gore-dolje s dugmetom. Ovo je jedan od najjasnijih načina za razumijevanje analognog ulaza, jer možete vidjeti analogno-digitalnu konverziju kako se odvija u realnom vremenu kao fizičku svjetlosnu traku.

5 leds on breadboard with sliding veriable resistor shown connected to Arduino UNO
5 leds on breadboard with sliding veriable resistor shown connected to Arduino UNO

Praktična vrijednost ovdje nadilazi svjetlosni spektakl. Kada shvatite kako mapirati izmjereni napon na skup izlaza, možete ponovo koristiti isti obrazac za pravu instrumentaciju. Na primjer, mogli biste napraviti:

  • Indikator napunjenosti baterije koji prikazuje preostali kapacitet od 12 V ili USB power banke kao red LED dioda.
  • Mjerač nivoa vode u rezervoaru, gdje senzor plovka daje napon proporcionalan dubini.
  • Trakasti prikaz temperature koristeći analogni temperaturni senzor kao što je LM35.
  • Mjerač jačine signala ili nivoa zvuka za radio prijemnik ili pojačalo.
  • Jednostavan prikaz očitavanja senzora za bilo koji analogni pretvarač od 0–5 V (pritisak, svjetlost, pozicija).
  • Voltmetarsku sondu za testiranje napajanja bez ekrana multimetra.

Budući da se pragovi izračunavaju kao procenti napona ploče, isti kod radi na pločama od 5 V kao što su Uno i Mega i na pločama od 3,3 V uz samo promjenu u jednoj liniji.

Hardver i komponente

Lista dijelova je namjerno minimalna, a sve je objašnjeno u ranom dijelu videa (u videu na 01:54). Trebat će vam:

  • Jedna Arduino ploča (Uno, Nano ili Mega).
  • Pet LED dioda, idealno jedne boje kako bi se traka jasno čitala, iako miješane boje također rade dobro.
  • Pet otpornika za ograničavanje struje. Tutorijal koristi otpornike od 1 kΩ, ali bilo šta od otprilike 300 Ω do 1 kΩ će raditi; veće vrijednosti jednostavno čine LED diode tamnijim (u videu na 05:33).
  • Jedan potenciometar. Demonstrirani su i rotacijski tip s dugmetom i klizni tip (u videu na 02:19).
  • Breadboard i jumper žice.

Kratka napomena o samoj LED diodi, jer je važna za ožičenje: LED je dioda, tako da provodi struju samo u jednom smjeru. Ravna strana plastičnog kućišta i kraća nožica su katoda (negativna). Duža nožica je anoda (pozitivna). Tutorijal detaljno prolazi kroz ovaj simbol i fizički oblik (u videu na 02:39).

Vrijednost otpornika nije proizvoljna. LED dioda ima pad napona od otprilike 2 V, a mali tipovi od 3 mm i 5 mm troše oko 10 mA. Uz napajanje od 5 V, preostala 3 V moraju se spustiti na otporniku, pa Ohmov zakon daje R = 3 V / 0,01 A = 300 Ω. To je vrijednost za maksimalnu svjetlinu; korištenje 1 kΩ je siguran, malo tamniji izbor (u videu na 04:41).

Vodič za ožičenje

Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs

Dio ožičenja za LED diode je identičan ranijem projektu hodajućeg svjetla: anoda svake LED diode spaja se na vlastiti digitalni pin, a svaka katoda ide kroz otpornik na zajedničku šinu uzemljenja. U tutorijalu su LED diode spojene na pinove 7, 6, 5, 4 i 3 (u videu na 43:04).

Potenciometar je jedini novi dio. Njegova dva vanjska pina idu na dvije naponske šine — jedan vanjski pin na uzemljenje, a drugi na 5 V (ili 3,3 V ako mjerite sistem od 3,3 V). Srednji pin, koji se zove klizač, je izlaz i mora se spojiti na analogni pin A0 (u videu na 43:30). Klizač je ono što proizvodi promjenjivi napon: kako okrećete dugme, klizač klizi duž otporničke staze i napon koji daje mijenja se glatko između dvije šine.

Jedan važan detalj: ako uklonite potenciometar dok krug radi, analogni pin ostaje lebdeći i LED diode će treperiti nasumično. To ponašanje je demonstrirano u videu (u videu na 48:52) i dobar je podsjetnik da analogni ulaz uvijek treba definirani izvor napona.

Objašnjenje koda

Kod je kratak i većina njega je jednostavna, pa se ovaj odjeljak fokusira samo na dijelove koje ćete htjeti promijeniti. Sve ove postavke nalaze se na vrhu skice.

Definicije pinova. One govore Arduinu na koje pinove su spojene LED diode i potenciometar. Ako ste drugačije spojili LED diode, promijenite ove brojeve da odgovaraju — redoslijed je važan, jer je LED1 najniži prag, a LED5 najviši.

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;

Napon ploče. Ovo je najvažnija vrijednost koju treba ispravno postaviti. To je referenca prema kojoj se izračunava svaki prag. Postavite je na 5.0 za Uno ili Mega, a na 3.3 za 3.3 V Nano ili sličnu ploču. Ako je ostavite pogrešnom, svaka LED dioda će se uključivati pri pogrešnom naponu (u videu na 44:19).

float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V

Prikaz napona na serijskom monitoru. Postavite ovo na true da biste ispisali izmjereni napon na serijskom monitoru pri 9600 bauda, što je izuzetno korisno tokom kalibracije. Postavite na false da biste utišali izlaz kada sve bude radilo.

boolean showVoltage = true;//true or false to read voltage in serial monitor

Kako funkcioniše konverzija. Arduino analogno-digitalni konverter vraća broj od 0 do 1023, jer je to 10-bitni konverter (210 = 1024 koraka). Kôd skalira taj sirovi broj u stvarni napon koristeći napon ploče kao referencu. Ovo je linija koju treba zapamtiti ako ikada pređete na 12-bitnu ploču kao što je Due, gdje biste umjesto toga dijelili sa 4095.

int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);

Logika pragova. Umjesto tvrdog kodiranja napona, svaki korak je izražen kao procenat napona ploče. Pri 95% ili više, svih pet LED dioda svijetli; iznad 80% samo četiri; i tako dalje do 20%, gdje svijetli jedna LED dioda. Ovaj pristup sa procentima je ono što čini skicu prenosivom između ploča od 5 V i 3.3 V bez prepisivanja poređenja.

if (voltage >= boardVoltage*0.95)
{
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, HIGH);
}

Pošto kôd koristi else if, tačno jedna grana se izvršava pri svakom prolazu kroz petlju, tako da je samo ispravan broj LED dioda uvijek uključen odjednom. Kašnjenje od 50 ms na kraju svake petlje sprječava treperenje prikaza.

Projekat uživo i demonstracija

Kada je skica učitana, otvorite serijski monitor pri 9600 bauda i polako okrećite potenciometar. Ispisani napon i LED traka se prate blisko: pri otprilike 1 V jedna LED dioda svijetli, pri 2 V dvije svijetle, i tako dalje do oko 4.8 V gdje je svih pet uključeno (u videu na 47:37). Očitavanja padaju unutar nekoliko stotih dijelova volta od očekivane vrijednosti, što je odlično za 10-bitni konverter.

Ako koraci izgledaju blago neravnomjerno, to su obično otpornici, a ne kôd. Tutorijal napominje da standardni karbonski otpornici imaju toleranciju od 10%, dok plavi metal-film tipovi obično imaju 1% i daju primjetno ujednačenije, tačnije korake (u videu na 48:18).

Također možete zamijeniti rotacijski potenciometar kliznim potenciometrom i dobiti isto ponašanje sa linearnim osjećajem, što je lijepa opcija ako planirate montirati mjerač u panel (u videu na 49:07).

Ako želite ručno pomjerati svjetlo umjesto pomoću potenciometra, to je obrađeno u Lekcija 98-8: Pokretno svjetlo sa tasterom i LED diodama uz Arduino. A ako jednostavno želite da LED diode putuju po vlastitom tajmeru, pogledajte Lekcija 98-7: Pokretno svjetlo korištenjem Arduina i 5 LED dioda.

Povezani projekti iz ovog videa

Poglavlja

  • [00:00] Pregled 10 LED projekata
  • [02:29] Osnove LED dioda, simboli i izračun otpornika
  • [42:25] Uvod u mjerač napona sa LED diodama
  • [43:04] Povezivanje LED dioda i potenciometra
  • [43:54] Objašnjenje kôda za traku napona
  • [44:19] Postavljanje reference napona ploče
  • [46:00] Logika pragova i procentualni koraci
  • [47:14] Demonstracija: očitavanje napona pomoću LED trake
  • [48:18] Tolerancija otpornika i tačnost
  • [49:07] Korištenje kliznog potenciometra

Slike

wiring for Arduino walking light LEDs
wiring for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
5 LED dioda na breadboardu sa kliznim promjenjivim otpornikom prikazano povezano na Arduino UNO
5 LED dioda na breadboardu sa kliznim promjenjivim otpornikom prikazano povezano na Arduino UNO
941-Lessson 98-LED-9: Arduino code walking LED light controlled by potentiometer
Jezik: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Datoteke📁

Arduino biblioteke (zip)

Korisnički priručnik