Innehållsförteckning:
- Steg 1: Hårdvarukrav
- Steg 2: CloudX M633 mikrokontroller
- Steg 3: Stiftanslutningar
- Steg 4: Kretsdiagram
- Steg 5: Princip för drift
- Steg 6: Programvaran
Video: Digital voltmeter med CloudX: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Batterier ger en renare form av likström (likström) när de används i kretsar. Deras låga ljudnivå gör dem alltid perfekta för vissa mycket känsliga kretsar. Men ibland när deras spänningsnivå sjunker under en viss tröskelpunkt kan kretsarna - (som de är avsedda att driva) komma in i ett oregelbundet beteende; särskilt när de inte är väl utformade för att hantera det.
Därför uppstår behovet av att regelbundet övervaka batteriets effektnivå för att korrekt vägleda oss när det är dags för en total byte eller laddning - om ett laddningsbart batteri. Därför ska vi i denna DIY (Do It Yourself) designa en enkel batterispänningsmätare med CloudX - med hjälp av 7Segmentet som vår display.
Steg 1: Hårdvarukrav
CloudX Microcontroller -modul
CloudX USB
SoftCard
7 Segmentvisning
Motstånd
Nätaggregat
Bakbord
Bygel (anslutande) ledningar
Steg 2: CloudX M633 mikrokontroller
CloudX Microcontroller -modul
CloudX -modulen är ett hårdvaruverktyg för elektronikdesign som ger dig ett mycket bekvämt och enkelt sätt att interagera med den fysiska världen via ett enkelt mikrokontrollerkort. Hela plattformen är baserad på en öppen källkod. Dess enkelhet med en IDE (Integrerad utvecklingsmiljö) gör den verkligen perfekt för nybörjare, men behåller tillräckligt med funktionalitet för att avancerade slutanvändare ska kunna navigera sig igenom. I ett nötskal tillhandahåller CloudX en mycket förenklad process för hantering av mikrokontrollen-genom att ta bort de normala komplexa detaljerna som är förknippade med den; samtidigt som den erbjuder en mycket rik plattform för användarupplevelse. Det hittar breda tillämpningar som går över hela linjen: skolor, som ett bra utbildningsverktyg; industriella och kommersiella produkter; och som ett bra verktyg i händerna på en hobbyist.
Steg 3: Stiftanslutningar
7-segmentstiften: A, B, C, D, E, F, G, 1, 2 och 3 är anslutna till CloudX-MCU: s pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 respektive pin11.
Steg 4: Kretsdiagram
Mikrokontrollmodulen, som är i centrum här, kan slås på:
antingen via Vin- och Gnd-punkterna (dvs. att ansluta dem till din externa nätaggregatets +ve respektive –ve terminaler) på kortet;
eller via din CloudX USB softcard -modul
. Mer över, som lätt kan ses från kretsschemat ovan, är ingångsbatteriets spänning ansluten till MCU (mikrokontroller) modulen så att –punkten för spänningsdelarenätet (bildat av och) är ansluten till A0 på MCU -stiftet.
och väljs på ett sådant sätt att:
begränsa mängden ström som flödar genom nätverket;
gräns inom ett säkert intervall på (0 - 5) V för MCU.
Med hjälp av formeln: VOUT = (R2/(R1+R2)) * VIN; och kan enkelt utvärderas.
Voutmax = 5V
och för detta projekt väljer vi: Vinmax = 50V;
5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Tar R2 = 10kΩ till exempel; R1 = 45/5 * 10 = 90kΩ
Steg 5: Princip för drift
När den ingående uppmätta spänningen läses via spänningsdelarnätets VOUT -punkt, bearbetas data ytterligare i MCU för att utvärdera det slutliga faktiska värdet som visas på segmentenheten. Det (systemdesignen) är en automatisk decimalpunktsplacering, genom att den (decimalpunkten) faktiskt skiftar position på själva displayenheten i enlighet med vad flottörvärdet dikterar vid en given tidpunkt. Därefter kopplas hela maskinvarans 7-segment-displayenhet upp i multiplexläget. Det är ett speciellt arrangemang där samma databuss (8-datapinnar) från MCU matar de tre aktiva 7-segmenten i displayenheten. Att skicka datamönster till var och en av komponentdelarna uppnås genom en process som kallas skanning. Skanning är en teknik som innefattar att skicka data till vart och ett av de 7-segmentiga komponenterna; och aktivera (dvs. slå på) dem snabbt efter varandra när deras respektive data kommer. Hastigheten att ta itu med var och en av dem görs så att den lyckas lura den mänskliga visionen att tro att de alla (komponentdelarna) är aktiverade (adresserade) samtidigt. Det (skanning) använder helt enkelt ett fenomen som kallas Persistence Of Vision.
Steg 6: Programvaran
#omfatta
#omfatta
#omfatta
#define segment1 pin9
#define segment2 pin10
#define segment3 pin11
float batt_voltage;
int decimalPoint, batt;
/*matriser som lagrar segmentmönster för varje given siffra*/
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 () {
osignerad char i;
if (decimalPoint <10) {
disp0 = (int) batt_voltage /100; // hämtar MSD (mest signifikanta siffra)
// vara den högsta viktade
/* hämtar nästa vägda siffra; och så vidare */
disp1 = ((int) batt_voltage % 100)/10;
disp2 = ((int) batt_voltage % 10);
}
annat {
disp0 = (int) batt_voltage /1000;
disp1 = ((int) batt_voltage % 1000)/100;
disp2 = ((int) batt_voltage % 100)/10;
}
/*Mönster hälls ut för visning; och 0x80 tecken som lägger till en decimal
om det associerade villkoret stämmer*/
för (i = 0; i <50; i ++) {
pin9 = pin10 = pin11 = HIGH;
if (decimalPoint <10)
portWrite (1, CCathodeDisp [disp0] | 0x80);
annars portWrite (1, CCathodeDisp [disp0]);
segment1 = LÅGT;
segment2 = HÖG;
segment3 = HÖG;
delayMs (5);
pin9 = pin10 = pin11 = HIGH;
if ((decimalPoint> = 10) && (decimalPoint <100))
portWrite (1, CCathodeDisp [disp1] | 0x80);
annars portWrite (1, CCathodeDisp [disp1]);
segment1 = HÖG;
segment2 = LÅGT;
segment3 = HÖG;
delayMs (5);
pin9 = pin10 = pin11 = HIGH;
if (decimalPoint> = 100)
portWrite (1, CCathodeDisp [disp2] | 0x80);
annars portWrite (1, CCathodeDisp [disp2]);
segment1 = HÖG;
segment2 = HÖG;
segment3 = LÅG;
delayMs (5);
}
}
setup () {// setup här
analogSetting (); // analog port initierad
portMode (1, OUTPUT); // Stift 1 till 8 konfigureras som utgångsstiften
/ * scan pins konfigurerade som output pins */
pin9Mode = UTGÅNG;
pin10Mode = UTGÅNG;
pin11Mode = UTGÅNG;
portWrite (1, LÅG);
pin9 = pin10 = pin11 = HIGH; // scan-pins (som är aktiva-låga)
// är inaktiverade i början
loop () {// Program här
batt_voltage = analogRead (A0); // tar in det uppmätta värdet
batt_voltage = ((batt_voltage * 5000) / 1024); // omvandlingsfaktor för 5Vin
batt_voltage = (batt_voltage * 50)/5000; // omvandlingsfaktor för 50Vin
decimalPoint = batt_voltage; // markerar där decimalpunkten visas i
// det ursprungliga värdet före datamanipulering
visa();
}
}
Rekommenderad:
Waveshare E-ink Display exakt voltmeter (0-90v DC) med Arduino Nano: 3 steg
Waveshare E-ink Display Precise Voltmeter (0-90v DC) Med Arduino Nano: I denna instruktör använder jag en 2,9 '' Waveshare E-Paper-display med en Arduino Nano, en spänningsdelare och en ADS1115 för att visa exakta spänningar upp till 90 volt DC på E-Paper Display. Denna instruerbara kombinerar dessa två tidigare projekt:- Ardui
AC voltmeter med Arduino: 3 steg (med bilder)
AC Voltmeter Using Arduino: Detta är en enkel krets för att fastställa AC -spänningen med Arduino UNO utan AC voltmeter !! NJUT AV
Digital Arduino voltmeter: 3 steg
Digital Arduino voltmeter: En voltmeter eller en spänningsmätare är ett mätinstrument som används för att mäta spänning
Uppladdningsbar digital voltmeter med ICL7107 ADC: 7 steg (med bilder)
Laddningsbar digital voltmeter med hjälp av ICL7107 ADC: I denna handledning kommer jag att visa dig hur du gör en superenkel digital voltmeter som kan mäta spänningar från 20 mV till 200V. Detta projekt kommer inte att använda någon mikrokontroller som arduino. I stället för det kommer en ADC, dvs ICL7107 att användas med några pass
Digital voltmeter: 5 steg
Digital voltmeter: Detta är en lättanvänd och billig DIY voltmeter. Den totala kostnaden för att göra detta projekt är mindre än 200 INR eller endast 2,5 $