Sadržaj:

Treperavi most svijeće: 6 koraka (sa slikama)
Treperavi most svijeće: 6 koraka (sa slikama)

Video: Treperavi most svijeće: 6 koraka (sa slikama)

Video: Treperavi most svijeće: 6 koraka (sa slikama)
Video: "RADIM NOĆNU SMJENU NA BENZINSKOJ CRPCI UŽALIM SE KAD PADA KIŠA" CREEPYPASTA JEZIVA PRIČA 2024, Novembar
Anonim
Image
Image

Ovo uputstvo pokazuje kako pretvoriti jednostavan most sa svijećama sa statičkim svjetlom u lijepo užareno svjetlo raspoloženja s beskrajnim varijacijama treperavih svjetla, treperenja, valovitih uzoraka i čega sve. Kupio sam od After Christmas Sales mosta za svijeće za 8 €. Ima 7 LED svjetala i neki zidni adapter od 33 V 3 W. Sjaji svijetlom i toplom bijelom bojom i bit će savršen za ovaj projekt, gdje ću staviti Arduino da svijeće zatrepere. Najpopularniji Arduino je Arduino Uno. U ovom projektu koristit ću Arduino Mega 2560.

Odbacit ću napajanje od 30 V i za napajanje ću koristiti jednostavnu bateriju od 5 V namijenjenu mobilnim telefonima.

Dobro je znati o bankama napajanja da imaju unutarnji krug koji pretvara bateriju od 3,7 V u 5 V. Budući da proces troši određenu snagu, banka napajanja sama se isključuje, ako se ne koristi. Ako se banka napajanja koristi za Arduino DIY gadgete, gadžet se ne može samo prebaciti u san za uštedu energije i pokrenuti ponovo nakon nekoliko minuta. To će isključiti banku napajanja. Ovaj treperavi most za svijeće nema način mirovanja. Koristi stalno napajanje, držeći bateriju aktivnom, sve dok se kabel za napajanje ne odvoji.

Video prikazuje most svijeće u statičkom načinu rada i u potpunom treperenju. Potpuno treperenje je zaista prilično neugodno za oči, dok ga videozapis pomalo zaglađuje. Nakon što je hardver popravljen, uključujući rezanje kabela, lemljenje novih veza i dodavanje nekih komponenti, svi željeni svjetlosni obrasci stvaraju se pisanjem koda za Arduino. Obrasci koje uključujem u ovo uputstvo su:

  • 4 različita trepereća svjetla koja imitiraju prave svijeće
  • 2 različita treperenja (nasumično treptanje inače statičkog svjetla)
  • 2 različita talasna uzorka
  • jednostavno statičko svjetlo

Promjena uzoraka odvija se pritiskom na dugme, jednim elementom korisničkog sučelja. Što više uzoraka želite i što više prilagodbi želite, više dugmadi i dugmadi morate dodati. Ali ljepota leži u jednostavnosti. Smanjite broj uzoraka koji se mogu birati. Odaberite najbolje postavke tijekom kodiranja i testiranja, a ne dodavanjem mnogo kontrola hardveru.

Supplies

  • 1 LED most za svijeće sa 7 sijalica. Uvjerite se da se radi o niskonaponskom DC modelu, s baterijama ili sa zidnim izvorom napajanja, koji pretvara smrtonosne 110 - 240 V AC u nekih 6 - 30 V DC. Stoga je potpuno sigurno hakirati most svijeće.
  • 1 Arduino Mega (može poslužiti bilo koji drugi mikrokontroler, samo se pobrinite da ga možete programirati)
  • 1 matična ploča za izradu prototipa
  • kratkospojne žice i druge žice
  • alat za lemljenje
  • multimetar
  • 7 otpornika, 120 Ω
  • 1 dugme (pokazat ću kako umjesto toga možete koristiti ugrađeno dugme na Arduinu)
  • Darlingtonova tranzistorska IC za 7 tranzistora, ULN2803AP će poslužiti (ako koristite Arduino Uno ili Meaga, ovo vam zapravo ne treba)
  • Napajanje od 5 V namijenjeno mobilnim telefonima

Korak 1: Ispitajte šta imate

Ispitajte šta imate
Ispitajte šta imate
Ispitajte šta imate
Ispitajte šta imate

Saznajte na kojem naponu radi svaka LED dioda i koliko struje prolazi.

  1. Otvorite dno mosta za svijeće. Pronađite dvije žice koje idu do jedne svijeće.
  2. Skinite izolaciju s kabela otkrivajući bakrene žice bez rezanja bakrenih žica.
  3. Uključite svjetla (opustite se, to je samo nekoliko volti) i izmjerite napon na otkrivenim bakrenim žicama.
  4. Odrežite kabel na jednom od mjernih mjesta (u ovom trenutku svjetla se, naravno, gase), skinite izolaciju (3 - 4 mm) na oba kraja. Izmjerite struju kroz koju prolazi. Ono što radite je da ponovno spojite presječeni kabel sa svojim multimetrom, puštajući svu struju da teče kroz multimetar, što vam sada govori o količini struje.

Moja čitanja

Napon na jednoj svijeći (korak 3): 3,1 V

Imajte na umu da je izvor napajanja mosta svijeće bio 33 V. Dakle, sedam puta 3,1 V iznosi samo 21,7 V. Na nekim svijećama mora postojati dodatni otpornik. Da sam izmjerio napon svijeće, morao je biti nekih 11 V.

Struja koja teče kada svijetli svijeća (korak 4): 19 mA

Sve ću napajati baterijom od 5 V 2 A. Za svijeće moram smanjiti napon sa 5 V na 3 V. Treba mi otpornik koji će pasti napon 2 V na 19 mA struje.

2 V / 0,019 A = 105 Ω

Rashod snage je:

2 V * 19 mA = 38 mW

To je zanemarivo. Mnogo bi više moglo eksplodirati sam otpornik. Ipak, bez otpornika od 105 Ω mogao bih upaliti LED. Imam otpornike od 100 Ω i 120 Ω. Ja idem sa 120 Ω. Pruža veću zaštitu.

Testiranje svih 7 svijeća sa 3 V dalo je jako svjetlo, osim jedne svijeće, koja je imala samo jako prigušeno svjetlo, sa samo nekih 0,8 mA koje su prolazile. Ovo je bila moja svijeća s dodatnim otpornikom. Ispostavilo se da ostale svijeće nemaju otpornike. LED svjetla koja se koriste u lusteru jednostavno su namijenjena za 3 V! Svijeća s dodatnim otpornikom morala se otvoriti blagim nasiljem, ali ništa se nije slomilo. Otpornik je pronađen tik ispod sićušne LED diode unutar plastične sijalice. Morao sam ga odlemiti i ponovo spajati žice. Bilo je malo neuredno, budući da je lemilica zagrijala malo vrućeg ljepila, koje je korišteno za sastavljanje.

Tako da sada znam da koji god izvor napajanja da koristim, bez obzira na napon, moram smanjiti napon na 3 V dopuštajući da prođe 19 mA.

Da sam bio bolje upoznat sa LED tehnologijom, prepoznao bih tip LED -a koji se koristi i znao bih da joj je potrebno 3 V.

Korak 2: Malo lemljenja

Neko lemljenje
Neko lemljenje
Neko lemljenje
Neko lemljenje

U ovom koraku povezujem sve pozitivne (+) žice od 5 svijeća na jednu žicu. Zatim dodam zasebnu negativnu (-) žicu za svaku svijeću. LED svjetlo svijetli samo kada znakovi '+' i '-' idu desno. Budući da od svake svijeće imate samo dva identična kraja kabela, morate testirati koji je '+', a koji '-'. Za to vam je potreban izvor napajanja od 3 V. Imao sam mali paket baterija sa dvije AAA baterije. Novčanica od 3 V odlično služi i za testiranje.

Mostu za svijeće potrebno je 8 kabela za prolaz između Arduina i mosta. Ako pronađete kabel s 8 izoliranih žica, to bi bilo sjajno. Jedna žica mora držati 120 mA, ostale nose samo 20 mA. Odlučio sam se za 4 dvožična kabla koji sam slučajno imao.

Prva slika prikazuje kako sam pripremio jednu zajedničku žicu za povezivanje svih žica '+' sa svijeća. Skinite izolaciju sa zajedničke žice za svaku svijeću. Dodajte komad skupljajuće izolacijske cijevi (žuta traka na slici) za svaki spoj i postavite ga na pravo mjesto zajedničkog kabela. Lemiti žicu '+' od svake svijeće do njenog zgloba, prekriti spoj skupljajućom cijevi i skupiti je. Naravno, i jednostavna ljepljiva traka je u redu, na kraju će sve biti prekriveno.

Druga slika prikazuje žice '-' koje su potrebne svakoj svijeći. Uobičajena žica '+' ide direktno na 5 V pin Arduina (ili možda kroz matičnu ploču). Svaka žica '-' ide na svoj pin tranzistorske IC (opet, vjerovatno kroz matičnu ploču).

Arduino se često naziva i prototipna ploča. Matična ploča je također nešto što koristite u prototipima. Ono što opisujem u ovom uputstvu je prototip. Neću ga razviti u otmjeni sjajni proizvod sa svim skrivenim u lijepim plastičnim kutijama. Prelazak sa prototipa na viši nivo značilo bi zamjenu matične ploče s štampanom pločom i lemljenim komponentama, pa čak i zamjena Arduina samo jednostavnim čipom mikrokontrolera (zapravo je takav čip mozak Arduina). I da sve stane u plastično kućište ili unutar sjeckanog mosta za svijeće.

Korak 3: Veze

The Connections
The Connections
The Connections
The Connections
The Connections
The Connections
The Connections
The Connections

O Arduinosu, preuzeto sa ove stranice:

  • Ukupna maksimalna struja po ulazno/izlaznom pinu: 40mA
  • Zbir struja na svim ulazno/izlaznim pinovima zajedno: 200mA

Moje svijeće troše po 19 mA, kad ih napaja 3 V. Ima ih sedam, što čini 133 mA. Tako da sam ih mogao napajati izravno s izlaznih pinova. Međutim, imam neke rezervne kartice za tranzistor Darlington. Pa sam pomislio, zašto ne. Moje kolo to radi na pravi način: pinovi podataka služe samo za signale, a ne za napajanje. Umjesto toga koristim 5 V pin na Arduinu za napajanje LED svjetala. Prilikom testiranja, prijenosno računalo imam spojeno na Arduino. Sve se napaja iz prijenosnog USB -a, koji daje 5 V. Arduino Mega ima vlastiti osigurač, koji puše na 500 mA radi zaštite računara. Moje svijeće troše najviše 133 mA. Arduino je vjerojatno mnogo manje. Sve radi dobro, kad ga napaja prijenosno računalo, pa je upotreba baterije od 5 V spojene na USB priključak Arduina sasvim u redu.

Pinovi podataka D3 - D9 idu na IC ULN2803APGCN. LED diode rade na 3 V. Svaka žarulja je spojena na izvor od 5 V i dalje na otpornik od 120 Ω. Dalje do jednog kanala IC -a, koji napokon povezuje krug sa zemljom preko darlington tranzistora u IC -u.

Kolo se dodaje pritiskom na gumb kako bi se omogućila neka radnja korisnika. Most za svijeće bi tako mogao imati nekoliko programa koje bira korisnik.

Taster u kolu je povezan na RESET i GND. Upravo to radi ugrađeno dugme za resetiranje. Budući da ne kapsuliram sve u plastično kućište, koristim gumb za resetiranje na Arduinu za kontrolu programa. Dodavanje dugmeta prema slici funkcionirat će isto kao i gumb za resetiranje ploče. Program radi tako što pamti koji je lagani program korišten zadnji put kada se program pokrenuo. Tako će svaki reset preći na sljedeći lagani program.

Fotografije prikazuju kako novi kabeli izlaze s mosta, kako sam položio tranzistorsku IC i otpornike na ploču i kako se žice kratkospojnika spajaju na Arduino Mega. Prerezao sam 4 muško-muške žice kratkospojnika na 8 polovica žica koje sam lemio na 8 kabela koji izlaze iz mosta svijeće. Na ovaj način mogu samo ubaciti kablove u ploču.

Alternativa bez tranzistora

U prethodnom koraku pripremio sam zajedničku žicu "+" za svijeće i odvojene žice "-" koje prolaze kroz tranzistorsku IC do zemlje. Kada jedan pin za podatke pređe visoko, odgovarajuća žica "-" uzemljuje se kroz njegov tranzistor i LED svjetla.

Spajanje žica '-' izravno na podatkovne pinove Arduina također bi funkcioniralo, ali uvijek imajte na umu koliko strujno pinovi podataka mogu izdržati! Ovaj pristup bi trebao promijeniti moj program. Za paljenje svijeća potrebni su im pinovi za podatke da bi se spustili. Da biste koristili moj program takav kakav jeste, morate u svijećama prebaciti '+' i '-'. Imajte zajedničku žicu za svijeće koja ide do GND-a na Arduinu. Odvojene žice prolaze između žice '+' svijeće i podatkovnog pina Arduina.

Korak 4: Svjetlosni programi

Moj program, koji predstavljam u sljedećem koraku, prolazi kroz 9 lakih programa. Pritiskom na dugme svjetla će se zamračiti na sekundu, a zatim će se pokrenuti sljedeći program svjetla. Programi su sljedeći:

  1. Snažno treperenje. Svijeće nasumično trepere. Ovo izgleda vrlo neugodno kada ih gledate s velike udaljenosti, ali bi moglo izgledati dobro iz daljine, a možda i iza prozora s mračnim potkrovljem. Međutim, vaš komšija bi mogao pozvati vatrogasce.
  2. Lagano treperenje. Izgleda jako dobro. Kao prave svijeće u prostoriji bez propuha.
  3. Različito treperenje. Svijeće se glatko izmjenjuju između jakog i mekog treperenja u intervalima od 30 sekundi.
  4. Različito treperenje. Kao i #3, ali svaka svijeća varira svojim tempom između 30 i 60 s.
  5. Brzo svetlucanje. Svijeće sjaje na statičkom zatamnjenom nivou i nasumično svjetlucaju. U proseku se pojavi jedan treptaj svake sekunde.
  6. Polako svjetlucanje. Kao #5, ali mnogo sporije.
  7. Brzi talas od srednje gornje sveće do donjih.
  8. Sporo talasajte od srednje gornje svijeće do donje.
  9. Statičko jako svetlo. Morao sam ovo uključiti, nisam se želio riješiti izvorne funkcije.

Korak 5: Kôd

/*

FLICKERING CANDLE BRIDGE */ // Proglasi varijablu načina rada da zadrži stanje // putem operacije resetovanja _atributa _ ((odjeljak (". Noinit"))) nepotpisani int način; // Kada se program pokrene nakon resetiranja, ovaj dio memorije // nije inicijaliziran, već zadržava vrijednost // koju je imao prije resetiranja. Prilikom prvog pokretanja // programa, on ima slučajnu vrijednost. / * * Klasa sveća sadrži sve potrebno * za izračunavanje nivoa svetlosti * trepereće sveće. */ razredna svijeća {private: long maxtime; long mintime; long maxlite; dugi minlit; long meanlite; dugo origmaxtime; dugo izvorno vrijeme; dugi origmaxlite; dugi originminlite; dugi origmeanlit; dugo deltamaxtime; dugo deltamintime; dugi deltamakslit; dugi deltaminlit; dugi deltameanlit; long lforate; long Evenout; dug početak; duga meta; float factor; dugo ciljno vrijeme; dugo vrijeme početka; dugo deltatime; void newtarget (void); dugački jedan cilj (ništavan); javno: svijeća (long mat, long mit, long mal, long mil, long mel, long eo); long levelnow (void); initlfo void (dugačak deltamat, dugačak deltamit, dugačak deltamal, dugačak deltamil, dugačak deltamean, duga stopa); void setlfo (void); }; svijeća:: svijeća (duga mat, duga mit, duga mal, duga mil, duga mel, duga eo): maxtime (mat), mintime (mit), maxlite (mal), minlite (mil), meanlite (mel), evenout (eo), origmaxtime (mat), origmintime (mit), origmaxlite (mal), origminlite (mil), origmeanlite (mel) {target = meanlite; newtarget (); } / * * levelnow () vraća nivo svjetlosti koji bi svijeća trebala imati trenutno. * Ova funkcija vodi računa o definiranju nove nasumične razine svjetlosti i * vremenu koje je potrebno za postizanje tog nivoa. Promjena nije linearna, * već slijedi sigmoidnu krivulju. Kada nije vrijeme za definiranje nove * razine, funkcija jednostavno vraća razinu svjetlosti. */ duga svijeća:: levelnow (void) {duga pomoć, sada; plovak t1, t2; sada = millis (); if (now> = targettime) {help = target; newtarget (); povratna pomoć; } else {// help = target * (millis () - starttime) / deltatime + start * (targettime - millis ()) / deltatime; t1 = float (targettime - now) / deltatime; t2 = 1. - t1; // Ovo je pomoć pri izračunavanju sigmoida = t1*t1*t1*start + t1*t1*t2*start*3 + t1*t2*t2*target*3 + t2*t2*t2*target; povratna pomoć; }} void svijeća:: newtarget (void) {long sum; zbir = 0; for (long i = 0; i <evenout; i ++) sum+= onetarget (); start = target; cilj = zbir / izjednačavanje; starttime = millis (); targettime = starttime + random (minintime, maxtime); deltatime = targettime - starttime; } duga svijeća:: onetarget (void) {if (random (0, 10) lastcheck + 100) {lastcheck = now; / * * Algo za treperenje "nakon milisekundi brzine": * Počnite provjeru nakon brzine / 2 milisekunde * Tokom perioda brzine / 2 milisekunde, učinite * mogućnost da svjetlucanje bude 50 %. * Ako je brzina 10000 ms, tokom 5000 ms novčić se * prevrne 50 puta. * 1/50 = 0,02 * Ako nasumično (10000) vrijeme početka + brzina / 2) {if (nasumično (stopa) ciljno vrijeme) vrati niski nivo; return (start - lowlite) * (targettime - now) / (targettime - starttime) + lowlite; } void twinkler:: twink (void) {starttime = millis (); targettime = random (mintime, maxtime) + starttime; start = slučajno (minlite, maxlite); } void setup () {int led; // Pročitajte varijablu čarobnog načina rada, koja bi trebala // reći koji je lagani program zadnji put pokrenut, uvećajte je // i vratite na nulu ako se prelije. mode ++; način rada %= 9; // Ovo vodi računa o vrijednosti // kada je Arduino // prvi put pokrenuo ovaj program. / * * VAŽNA NAPOMENA * ============== * * Bitna stvar koju ovaj program radi je emitovanje PWM * signala na LED svetla. Ovdje sam postavio pinove 3 na 9 na * izlazni način. Na Arduino Mega2560, ovi pinovi lijepo * emitiraju PWM signale. Ako imate drugi Arduino, provjerite * koje pinove (i koliko) možete koristiti. Uvijek možete * prepisati kôd za korištenje softvera PWM, ako vaš Arduino * ne može osigurati dovoljno hardverskih PWM pinova. * */ pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT); pinMode (7, OUTPUT); pinMode (8, OUTPUT); pinMode (9, OUTPUT); pinMode (LED_BUILTIN, OUTPUT); analogWrite (LED_BUILTIN, 0); // Samo isključite dosadnu crvenu LED lampicu na Arduino svijećnjaku *[7]; // pripremite se za upotrebu treperavih svijeća, bez obzira koristite li ih ili ne twinkler *twink [7]; // pripremamo se za upotrebu svjetlucavih svijeća … if (mode == 8) {for (int i = 3; i <10; i ++) analogWrite (i, 255); while (istina); // Svaki put kada se ovaj program pokrene, on ulazi u // ovu vrstu beskonačne petlje, sve dok se ne pritisne tipka za reset //. } if (mod <2) // treperi {long maxtime_; long mintime_; long maxlite_; long minlite_; long meanlite_; dugo čak_; if (način == 0) {maxtime_ = 250; minint_ = 50; maxlite_ = 256; minlite_ = 0; meanlite_ = 128; paran_ = 1; } if (mode == 1) {maxtime_ = 400; nana_ = 150; maxlite_ = 256; minlite_ = 100; meanlite_ = 200; paran_ = 1; } for (int i = 0; i <7; i ++) {can = nova svijeća (maxtime_, mintime_, maxlite_, minlite_, meanlite_, even_); } while (true) // Beskrajna petlja za treperenje svijeća {for (int i = 0; i levelnow ()); }} if (način <4) // lfo dodan treperenju {if (način == 2) // isti lfo (30 s) za sve svijeće {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 30000);}} if (mode == 3) // variranje lfo: s za svijeće {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 20000); can [1]-> initlfo (75, 50, 0, 50, 36, 25000); can [2]-> initlfo (75, 50, 0, 50, 36, 30000); can [3]-> initlfo (75, 50, 0, 50, 36, 35000); može [4]-> initlfo (75, 40, 0, 50, 36, 40000); može [5]-> initlfo (75, 30, 0, 50, 26, 45000); can [6]-> initlfo (75, 20, 0, 50, 16, 50000); can [7]-> initlfo (75, 10, 0, 50, 6, 55000);} while (true) // Beskonačna petlja za treperenje svijeća sa lfo {long lastclock = 0; for (int i = 0; i levelnow ()); if (millis ()> lastclock + 4000) {lastclock = millis (); for (int i = 0; i setlfo ();}}} if (način <6) // trepćuće svijeće {int speedo; if (način == 4) speedo = 6000; inače speedo = 22000; for (int i = 0; i <7; i ++) twink = novi twinkler (300, 295, 255, 250, speedo); while (true) {for (int i = 0; i levelnow ()); }} // Talasi. // Ovaj odjeljak započinje kovrčavim zagradama samo // kako bi se osiguralo da nema sukobljenih imena varijabli. // Nema potrebe za zagradama, nema potrebe za provjerom // vrijednosti načina.{int lolite = 2; int hilite = 255; int mean; int ampl; plovak fasedelta = 2,5; float fase; int elong; float factor; dug period; srednja vrijednost = (lolit + hilit) / 2; ampl = hilite - srednja vrijednost; if (mod == 6) period = 1500; else period = 3500; faktor = 6.28318530718 / period; while (true) {fase = phactor * (millis () % period); elong = srednja vrijednost + ampl * sin (faza); analogWrite (7, elong); analogWrite (9, elong); faza = faktor * ((millis () + period / 4) % period); elong = srednja vrijednost + ampl * sin (faza); analogWrite (3, elong); analogWrite (8, elong); faza = faktor * ((millis () + period / 2) % period); elong = srednja vrijednost + ampl * sin (faza); analogWrite (4, elong); analogWrite (5, elong); faza = faktor * ((millis () + 3 * period / 4) % period); elong = srednja vrijednost + ampl * sin (faza); analogWrite (6, elong); } // Prilikom spajanja žica svijeća na Arduino, // pomiješao sam ih i nikada ih nisam doveo u red. // Redoslijed je važan za stvaranje valnih uzoraka, // pa sam upravo napisao ovu malu tablicu za mene: // // Svijeća# u mostu: 2 3 5 4 7 6 1 // Podaci za pin na Arduinu: 3 4 5 6 7 8 9}} void loop () {// Budući da je svaki light program sopstvena beskonačna petlja, // sve petlje sam napisao u odjeljak begin () // i ništa nisam ostavio za ovaj odjeljak loop (). }

Korak 6: O PWM -u

LED diode sjajno svijetle kada se napajaju sa 3 V. Koristeći samo 1,5 V uopće ne svijetle. LED svjetla ne blijede lijepo sa slabljenjem napona, poput svjetla sa žarnom niti. Umjesto toga, moraju se uključiti punim naponom, a zatim isključiti. Kad se to dogodi 50 puta u sekundi, oni sjajno zasjaju sa 50 % svjetline, manje -više. Ako im se dozvoli da budu uključeni samo 5 ms, a isključeni 15 ms, mogli bi zasjati 25 % svjetline. Ova tehnika čini LED svjetlo prigušivim. Ova tehnika se naziva pulsno -širinska modulacija ili PWM. Mikrokontroler poput Arduina obično ima pinove za podatke koji mogu slati on/off signale. Neki od pinova za podatke imaju ugrađene mogućnosti za PWM. Ali ako nema dovoljno pinova sa ugrađenim PWM -om, obično je moguće koristiti namjenske programske biblioteke za stvaranje "softverskih PWM pinova".

U svom projektu koristio sam Arduino Mega2560, koji ima hardverski PWM na pinovima 3 - 9. Ako koristite Arduino UNO, imate samo šest PWM pinova. U tom slučaju, ako vam je potrebna sedma (ili čak i više) svijeća, mogu vam preporučiti softversku PWM biblioteku Bretta Hagmana, koju možete pronaći ovdje.

Preporučuje se: