Alimentarea unui Arduino are puțină magie. Nu mi-a fost evident când am început să lucrez cu ei, dar Arduinos are reglementări la bord. Profitând de acest lucru, permite cablarea sursei de alimentare mai lungi prin utilizarea unei surse de alimentare cu tensiune mai mare decât 5V sau 3,3V nominale necesare microcontrolerului (MCU) pentru nivelurile logice. Unele Arduino acceptă tensiunea de intrare de 6Vcc la 16Vcc, care este cu mult peste valoarea maximă a MCU, dar placa Arduino reglează cu precizie tensiunea de alimentare, precum și puterea suplimentară pentru perifericele Arduino. Am văzut ingineri veterani nedumerite cu privire la raționamentul din spatele alimentării unui Arduino de 3,3V cu o sursă de alimentare de 9Vdc până când le-a fost explicat.

Cerințe de alimentare cu microcontroler

Selectarea unei surse de alimentare adecvate pentru proiectele bazate pe microcontroler este adesea trecută cu vederea. În timp ce efortul concentrat și gândirea prealabilă pot fi în detaliile proiectului în sine, multe probleme de performanță și fiabilitate pot fi urmărite înapoi la selecția și conectivitatea sursei de alimentare. Familia de plăci de dezvoltare Arduino oferă soluții la aceste probleme, dar este ușor să greșiți fără a înțelege bine ce opțiuni sunt disponibile atunci când o proiectați. Nu este la fel de simplu ca a spune că un Arduino de 5V folosește o sursă de alimentare de 5Vdc, iar un Arduino de 3,3V folosește o sursă de alimentare de 3,3 Vdc.

Cerințe de alimentare Arduino

Mulți Arduino folosesc microcontrolerul ATmega328P. ATmega328 de la Microchip are o gamă largă de tensiuni Vcc acceptabile. (Vcc este tensiunea de alimentare DC reglementată necesară pentru a funcționa un IC și este adesea denumită tensiune de alimentare pentru IC-uri.) Cel mai frecvent, Arduinos sunt proiectate să funcționeze fie la o logică de nivel de 3,3 V pentru un consum redus de energie, fie la o logică de 5 V să fie compatibil cu dispozitivele logice TTL vechi. Exemplele furnizate mai jos se referă la dispozitive de 3,3 Vcc unde considerațiile sursei de alimentare sunt mai critice. Cu toate acestea, aceleași principii se aplică dispozitivelor de 5 Vcc.

microcontrolerului
Figura 1: Specificații pentru placa Arduino. (Sursa: www.arduino.cc)

Exemplu: Arduino Pro Mini

În primul rând, să presupunem un design de circuit care utilizează ceva de genul Arduino Pro Mini. Creșterea maximă a curentului Arduino este de 200mA. Este puțin probabil ca Arduino în sine să atragă 200mA, dar să presupunem că între Arduino și celelalte dispozitive conectate la acesta, acestea atrag un total de 200mA. Fișa tehnică ATmega328p arată că tensiunea minimă a unei logici ridicate la un pin este de 90% din Vcc. Astfel, dacă Vcc este de 3,3 Vdc, tensiunea minimă la un pin care va fi considerată o logică ridicată este de 0,9 * 3,3 Vdc = 2,97 Vdc. Orice valoare văzută la un pin digital sub 2,97 V se află într-un interval nedeterminat și va provoca rezultate imprevizibile din Arduino.

Există întotdeauna o anumită distanță între o sursă de alimentare și un Arduino. Cu cât este mai mare distanța, cu atât este mai mare pierderea de tensiune pe cablurile sursei de alimentare. Dar cât se pierde? Întrucât 26 AWG este o alegere obișnuită pentru cablarea circuitului cu putere redusă și se află pe capătul mai mic al gamei de indicatoare de sârmă, există mai puțin cupru. Mai puțin cupru înseamnă un cost mai mic. Stranded 26 AWG este o alegere bună datorită flexibilității de rutare a firelor. 26 AWG este suficient de mare încât să poată transporta un 2.2Amp pentru cablarea șasiului, ceea ce reprezintă de peste zece ori consumul de curent de 200mA pe care l-am specificat pentru consumul de curent maxim al Arduino pentru designul nostru. O sursă de alimentare de 3,3 Vcc și 26 AWG par o alegere excelentă, dar să aruncăm o privire mai atentă.

Pierderea liniei sursei de alimentare

Sârmele de calitate AWG 26 au o rezistență de 40,81 ohmi pe 1000 de picioare sau 40,81 miliohmi pe picior. Cu 200mA care curge prin firele sursei de alimentare, vom avea o cădere de tensiune pe fiecare fir, așa cum este investigat mai jos. Rețineți că trebuie să rulăm firul de la sursa de alimentare la Arduino și apoi să ne întoarcem din nou la partea negativă a sursei de alimentare. Putem vedea că, la zece picioare, am pierdut 5% din sursa noastră de 3,3 Vcc. La 20 de picioare, am pierdut aproape 10%. Această acțiune reduce tensiunea aplicată Arduino la doar 4,5V; limita inferioară a tensiunii noastre logice digitale maxime garantate.

Tabelul 1: Pierderea liniei. Distanța indică distanța fizică dintre placă și sursa de alimentare a acesteia. (Sursa: Autor)

Douăzeci de picioare pare o distanță rezonabilă pentru majoritatea aplicațiilor. Cu toate acestea, am luat în considerare doar rezistența firului în sine până la acest punct.

Rezistența la contact

Rezistența la contact nu este adesea luată în considerare sau chiar înțeleasă. Rezistența firului de 26 AWG este de 40,81 ohmi la 1000 de picioare, pe baza diametrului secțiunii transversale a firului. Cu toate acestea, fiecare punct din cablare în care am plasat o conexiune în cablare, am creat un punct în care secțiunea transversală a traseului curent scade și, prin urmare, au un punct de rezistență mai mare.

Împerecherea unui conector circular va face ca pinul să intre în contact cu butoiul într-un punct tangențial. Conectorii lamelor produc aceeași zonă redusă pe suprafață. Chiar și un terminal cu șurub nu poate corespunde rezistenței secțiunii transversale a firului în sine. Luați în considerare faptul că orice terminație este susceptibilă de oxidare în timp și rezistență crescută prin conectarea și deconectarea firelor de mai multe ori pe durata de viață a sistemului. Fiecare dintre aceste puncte poate avea cu ușurință o rezistență de contact de 40 miliohmi. Asta e corect; fiecare punct de conectare poate adăuga rezistența echivalentă a unui picior de sârmă de 26 AWG. Cu două conexiuni aterizate pe Arduino și două conexiuni la sursa de alimentare, orice sistem va avea minimum 4 terminații. Acum avem o pierdere a sursei de tensiune de 5% la 8 picioare și 10% la 18 picioare între Arduino și sursa sa de alimentare.

Tabelul 2: Pierderea liniei și rezistența la contact

O singură ofertă de alimentare - distanțe variate?

Prin urmare, cu o configurație tipică de cablare a sursei de alimentare, pierdem cinci la sută din tensiunea sursei de 3,3 V între sursa de alimentare și Arduino la opt picioare și 10 la sută la 18 picioare. În termeni simpli, dacă am folosi o sursă de curent continuu reglabilă, am putea crește tensiunea pentru a compensa pierderea liniei și rezistența la contact. Cu toate acestea, sursele de alimentare sunt scumpe și ocupă spațiu. De obicei, în sistemele încorporate, proiectanții încearcă să aibă o sursă de alimentare comună pentru mai multe controlere încorporate. Dacă un controler este la un picior distanță de alimentare și ultimul este la 20 de metri distanță de sursa de alimentare, proiectantul are un act de echilibrare delicat pentru a menține fiecare controler încorporat în intervalul adecvat.

Opțiuni sursă de alimentare Arduino

Proiectele Arduino vă oferă o modalitate de a rezolva problemele sursei de alimentare cu rezistența la pierderea de linie și la contact, oferind o reglementare la bord. Cu toate acestea, există mai multe moduri de a alimenta Arduino și nu toate oferă avantajul reglementării la bord:

Alimentare USB - Un cablu USB este utilizat în mod obișnuit pentru a programa un Arduino prin mediul de dezvoltare integrat Arduino (IDE). Nu numai că cablul USB oferă diagnosticare prin intermediul monitorului serial IDE, dar oferă, de asemenea, alimentare de 5Vdc către Arduino prin pinul Vcc USB. Puterea USB de 5V este utilizată pentru a alimenta direct un Arduino de 5V sau este reglementată dacă este un Arduino de 3,3 Volți.

Putere 5V sau 3.3V - Proiectantul poate aplica tensiunea adecvată pinilor de alimentare de 5V sau 3,3V ai Arduino. Acești pini sunt legați direct de pinii de alimentare ai MCU de pe placa Arduino. Cu toate acestea, aplicarea puterii acestor pini va face ca MCU-ul Arduino să fie susceptibil la pierderea liniei și la rezistența la contact de la sursa de alimentare menționată anterior.

Vin sau Raw - Arduino poate avea acest cod etichetat fie „Vin”, fie „RAW”, în funcție de varianta Arduino utilizată. O greșeală obișnuită este aplicarea unei surse de alimentare de 5V sau 3,3V la acest pin. Problema cu acest lucru este că nu numai că aveți pierderea de linie și rezistența la contact menționată anterior, ci că acest pin este intrarea în circuitul de reglare de la bord. Ca orice regulator de tensiune, trebuie să furnizați ceva mai multă tensiune în dispozitiv decât vă așteptați să ieșiți din el. Dacă am aplica 3,3 Vcc la Vin, am pierde aproximativ 0,5 volți prin regulator. Asta înseamnă că microprocesorul și dispozitivele periferice conectate ar funcționa numai pe 2,8 Vcc, cel mai bine. Combinat cu pierderea de linie și rezistența la contact, putem rula cu mult sub nivelul necesar de tensiune.

Tabelul 3: Pierderea liniei, rezistența la contact și pierderea regulatorului

PIN VIN, utilizat corect

În ciuda problemei descrise mai sus, utilizarea pinilor VIN sau RAW reprezintă soluția la pierderea de tensiune a sursei. Pe placa Arduino, pinii VIN sau RAW sunt intrarea în regulatorul de tensiune de pe placa Arduino. Tot ce trebuie să facem este să aplicăm o tensiune în intervalul specificat pentru a obține ieșirea reglementată dorită la Arduino. O tensiune de alimentare de la 6 Vcc la 12 Vcc aplicată Vinului sau RAW va alimenta microcontrolerul Arduino, va depăși orice pierdere de tensiune a rezistenței de linie sau de contact și va oferi putere la pinii 5V și 3,3V ai Arduino pentru a alimenta componentele periferice. Gama de tensiune de intrare a Arduino se bazează pe cerințele de tensiune de pe întreaga placă, inclusiv energia necesară pentru MCU pentru alimentarea perifericelor.

Concluzie

Sursele de alimentare disponibile în intervalul de la 7 Vcc la 12 Vcc nu sunt la fel de obișnuite ca sursele de alimentare de 3,3 Vcc sau 5Vcc, dar sunt disponibile. Este tentant să folosiți cele mai comune surse de alimentare de 5 Vcc și 3,3 Vcc pentru plăcile Arduino, dar din faptele prezentate mai sus, este necesar să utilizați alternativele mai puțin frecvente pentru cea mai bună reglementare și performanță a microcontrolerului.