Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
Bateriile oferă o formă mai pură de curent continuu (curent continuu) atunci când sunt utilizate în circuite. Nivelul lor redus de zgomot le face întotdeauna potrivite perfect pentru unele circuite foarte sensibile. Cu toate acestea, în momentele în care nivelul lor de tensiune scade sub un anumit punct de prag, circuitele - (pe care sunt menite să le alimenteze), ar putea intra într-un comportament neregulat; mai ales atunci când nu sunt bine concepute pentru a face față asta.
Prin urmare, apare nevoia de a monitoriza în mod regulat nivelul de putere al bateriei pentru a ne ghida în mod corespunzător cu privire la momentul în care se cuvine o înlocuire totală sau o încărcare - în cazul unei baterii reîncărcabile. Prin urmare, în acest DIY (Do It Yourself), trebuie să proiectăm un contor simplu de tensiune a bateriei folosind CloudX - folosind 7Segment ca afișaj.
Pasul 1: Cerințe hardware
Modulul de microcontroler CloudX
CloudX USB
SoftCard
7 Afișare segment
Rezistențe
Unitate de alimentare
Pană de pâine
Jumper (conectarea) firelor
Pasul 2: Microcontroler CloudX M633
Modulul de microcontroler CloudX
Modulul CloudX este un instrument hardware de proiectare electronică care vă permite un mod mult mai convenabil și ușor de interfață cu lumea fizică printr-o placă simplă de microcontroler. Întreaga platformă se bazează pe un calcul fizic open-source. Simplitatea sa de IDE (mediu de dezvoltare integrat) îl face într-adevăr o potrivire perfectă pentru începători, păstrând totuși o funcționalitate suficientă pentru a permite utilizatorilor finali avansați să navigheze. Într-o coajă de nuci, CloudX asigură un proces mult mai simplificat de manipulare a microcontrolerului - prin abstractizarea detaliilor complexe normale asociate acestuia; oferind în același timp o platformă foarte bogată de experiență pentru utilizator. Găsește aplicații largi care se desfășoară pe scară largă: școli, ca un instrument educațional excelent; produse industriale și comerciale și ca un instrument de utilitate excelent în mâinile unui hobbyist.
Pasul 3: Pin conexiuni
Pinii cu 7 segmente: A, B, C, D, E, F, G, 1, 2 și 3 sunt conectați la pinul 1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9 al CloudX-MCU pin10 și respectiv pin11.
Pasul 4: Diagrama circuitului
Modulul de microcontroler, aflat aici în centrul scenei, poate fi alimentat:
fie prin punctele Vin și Gnd (adică conectarea acestora la terminalele + ve și –ve ale unității de alimentare externe, respectiv) de pe placă;
sau prin modulul dvs. de card soft USB CloudX
. Mai mult, după cum se poate vedea cu ușurință din schema de circuite de mai sus, tensiunea bateriei de intrare este interfațată cu modulul MCU (microcontroler) astfel încât punctul –rețelei divizorului de tensiune (format din și) să fie conectat la A0 al pinului MCU.
și sunt aleși în așa fel încât:
limitați cantitatea de curent care circulă prin rețea;
limită într-un interval sigur de (0 - 5) V pentru MCU.
Folosind formula: VOUT = (R2 / (R1 + R2)) * VIN; și poate fi ușor evaluat.
Voutmax = 5V
iar pentru acest proiect, alegem: Vinmax = 50V;
5 = (R2 / (R1 + R2)) * 50 R1 = 45/5 * R2 Luând R2 = 10kΩ de exemplu; R1 = 45/5 * 10 = 90kΩ
Pasul 5: Principiul de funcționare
Când tensiunea măsurată de intrare este citită prin punctul VOUT al rețelei de divizare a tensiunii, datele sunt procesate în continuare în MCU pentru a se evalua la valoarea reală finală care se afișează pe unitatea de segment. Acesta (proiectarea sistemului) este un indicator automat al punctului zecimal, în sensul că acesta (punctul zecimal) schimbă de fapt poziția pe unitatea de afișare în conformitate cu ceea ce dictează valoarea float în orice moment dat. Apoi, întreaga unitate de afișare cu 7 segmente hardware este conectată în modul multiplex. Este un aranjament special prin care aceeași magistrală de date (8 pini de date) de la MCU alimentează cele trei segmente active de 7 din unitatea de afișare. Trimiterea modelului de date în fiecare dintre părțile componente se realizează printr-un proces denumit Scanare. Scanarea este o tehnică care implică trimiterea de date către fiecare dintre cele 7 segmente componente; și activarea (de exemplu, pornirea) lor în succesiune rapidă pe măsură ce sosesc datele respective. Rata de adresare a fiecăruia dintre ele este realizată astfel încât să reușească să înșele viziunea umană în a crede că toate acestea (părțile componente) sunt activate (adresate) în același timp. (Scanarea) utilizează, de fapt, un fenomen cunoscut sub numele de Persistență a vederii.
Pasul 6: Programul software
#include
#include
#include
#define segment1 pin9
#define segment2 pin10
#define segment3 pin11
float batt_voltage;
int decimalPoint, batt;
/ * matrici care stochează modelul segmentului pentru fiecare cifră dată * /
char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
int disp0, disp1, disp2;
display () {
nesemnat char i;
if (punct zecimal <10) {
disp0 = (int) batt_voltage / 100; // preia MSD (Cifra cea mai semnificativă)
// fiind cel mai bine ponderat
/ * preia următoarea cifră ponderată; si asa mai departe */
disp1 = ((int) batt_voltage% 100) / 10;
disp2 = ((int) batt_voltage% 10);
}
altceva {
disp0 = (int) batt_voltage / 1000;
disp1 = ((int) batt_voltage% 1000) / 100;
disp2 = ((int) batt_voltage% 100) / 10;
}
/ * Modelele sunt turnate pentru afișare; și 0x80 caracter adăugând un punct zecimal
dacă condiția asociată este adevărată * /
pentru (i = 0; i <50; i ++) {
pin9 = pin10 = pin11 = HIGH;
if (punct zecimal <10)
portWrite (1, CCathodeDisp [disp0] | 0x80);
else portWrite (1, CCathodeDisp [disp0]);
segment1 = LOW;
segment2 = HIGH;
segment3 = HIGH;
delayMs (5);
pin9 = pin10 = pin11 = HIGH;
if ((decimalPoint> = 10) && (decimal point <100))
portWrite (1, CCathodeDisp [disp1] | 0x80);
else portWrite (1, CCathodeDisp [disp1]);
segment1 = HIGH;
segment2 = LOW;
segment3 = HIGH;
delayMs (5);
pin9 = pin10 = pin11 = HIGH;
if (punct zecimal> = 100)
portWrite (1, CCathodeDisp [disp2] | 0x80);
else portWrite (1, CCathodeDisp [disp2]);
segment1 = HIGH;
segment2 = HIGH;
segment3 = LOW;
delayMs (5);
}
}
setup () {// setup here
analogSetting (); // port analogic inițializat
portMode (1, OUTPUT); // Pinii de la 1 la 8 configurați ca pin de ieșire
/ * pini de scanare configurați ca pini de ieșire * /
pin9Mode = OUTPUT;
pin10Mode = OUTPUT;
pin11Mode = OUTPUT;
portWrite (1, LOW);
pin9 = pin10 = pin11 = HIGH; // pini de scanare (care sunt active-scăzute)
// sunt dezactivate la început
loop () {// Programează aici
Batt_voltage = analogRead (A0); // preia valoarea măsurată
volt_bat = ((tensiune_bat * 5000) / 1024); // factor de conversie pentru 5Vin
volt_batter = (volt_batter * 50) / 5000; // factor de conversie pentru 50Vin
decimalPoint = batt_voltage; // marchează unde apare punctul zecimal
// valoarea inițială înainte de manipularea datelor
afişa();
}
}
Recomandat:
Voltmetru AC folosind Arduino: 3 pași (cu imagini)
Voltmetru AC folosind Arduino: Acesta este un circuit simplu pentru a stabili tensiunea AC folosind Arduino UNO fără niciun voltmetru AC !! DISCURAȚI-VĂ
Scut pentru Arduino din tuburi VFD vechi rusești: ceas, termometru, voltmetru : 21 de pași (cu imagini)
Scutul pentru Arduino din tuburile VFD vechi din Rusia: ceas, termometru, voltmetru …: Acest proiect a durat aproape jumătate de an pentru a fi finalizat. Nu pot descrie cât de mult a lucrat acest proiect. A face acest proiect singur m-ar lua pentru totdeauna, așa că am primit ajutor de la prietenii mei. Aici puteți vedea munca noastră compilată într-o instrucțiune foarte lungă
Voltmetru digital Arduino: 3 pași
Voltmetru digital Arduino: un voltmetru sau un voltmetru este un instrument de măsurare care este utilizat pentru măsurarea tensiunii
Voltmetru digital reîncărcabil folosind ICL7107 ADC: 7 pași (cu imagini)
Voltmetru digital reîncărcabil folosind ICL7107 ADC: În acest tutorial vă voi arăta cum să faceți un voltmetru digital foarte simplu care poate măsura tensiuni de la 20 mV la 200V. Acest proiect nu va utiliza niciun microcontroler precum arduino. În locul acestuia se va utiliza un ADC, adică ICL7107 cu niște pași
Voltmetru digital: 5 pași
Voltmetru digital: Acesta este un voltmetru DIY ușor de utilizat și ieftin. Costul total al realizării acestui proiect este mai mic decât INR 200 sau doar 2,5 USD