Innholdsfortegnelse:
- Trinn 1: Krav til maskinvare
- Trinn 2: CloudX M633 mikrokontroller
- Trinn 3: Fest tilkoblinger
- Trinn 4: Kretsdiagram
- Trinn 5: Driftsprinsipp
- Trinn 6: Programvaren
Video: Digital voltmeter med CloudX: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Batterier gir en renere form for likestrøm (likestrøm) når de brukes i kretser. Det lave støynivået gjør dem alltid til en perfekt passform for noen veldig følsomme kretser. Men til tider når spenningsnivået går ned under et bestemt terskelpunkt, kan kretsene - (som de er ment for å drive), gå inn i en uberegnelig oppførsel; spesielt når de ikke er godt designet for å håndtere det.
Derfor oppstår behovet for å regelmessig overvåke batterinivået for å veilede oss riktig når det er på tide for en total utskifting eller lading - i tilfelle et oppladbart batteri. Derfor, i denne DIY (Do It Yourself), skal vi designe en enkel batterispenningsmåler ved hjelp av CloudX - ved å bruke 7Segmentet som skjermen vår.
Trinn 1: Krav til maskinvare
CloudX mikrokontrollermodul
CloudX USB
SoftCard
7 Segmentvisning
Motstander
Strømforsyningsenhet
Brødbrett
Jumper (kobler) ledninger
Trinn 2: CloudX M633 mikrokontroller
CloudX mikrokontrollermodul
CloudX -modulen er et maskinvareverktøy for elektronisk design som gir deg en mye praktisk og enkel måte å koble til den fysiske verden via et enkelt mikrokontrollerbord. Hele plattformen er basert på en åpen kildekode fysisk databehandling. Dens enkelhet med et IDE (Integrated Development Environment) gjør det virkelig en perfekt passform for nybegynnere, men beholder nok funksjonalitet til at avanserte sluttbrukere kan navigere seg gjennom. I et nøtteskall gir CloudX en mye forenklet prosess for håndtering av mikrokontrolleren-ved å abstrahere bort de normale komplekse detaljene knyttet til den; samtidig som den tilbyr en veldig rik brukeropplevelsesplattform. Den finner brede applikasjoner som strekker seg over hele linjen: skoler, som et flott utdanningsverktøy; industrielle og kommersielle produkter; og som et flott verktøy i hendene på en hobbyist.
Trinn 3: Fest tilkoblinger
Pinnene med 7 segmenter: A, B, C, D, E, F, G, 1, 2 og 3 er koblet til CloudX-MCUs pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 og pin11 henholdsvis.
Trinn 4: Kretsdiagram
Mikrokontrollermodulen, som er i sentrum her, kan slås på:
enten via Vin- og Gnd-punktene (dvs. å koble dem til henholdsvis +ve og –ve terminaler på din eksterne strømforsyningsenhet) på brettet;
eller via CloudX USB softcard -modulen
. Mer over, som det lett kan sees fra kretsdiagrammet ovenfor, er inngangsspenningen i grensesnittet til MCU -modulen (mikrokontroller) slik at –punktet til spenningsdelerenettverket (dannet av og) er koblet til A0 på MCU -pinnen.
og velges på en slik måte at:
begrense mengden strøm som strømmer gjennom nettverket;
grense innenfor et sikkert område på (0 - 5) V for MCU.
Ved å bruke formelen: VOUT = (R2/(R1+R2)) * VIN; og kan enkelt evalueres.
Voutmax = 5V
og for dette prosjektet velger vi: Vinmax = 50V;
5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Tar R2 = 10kΩ for eksempel; R1 = 45/5 * 10 = 90kΩ
Trinn 5: Driftsprinsipp
Når den målte inngangsspenningen leses via VOUT -punktet i spenningsdelernettverket, blir dataene videre behandlet i MCU for å evaluere til den endelige faktiske verdien som vises på segmentenheten. Den (systemdesignen) er en automatisk desimalpunktplassering, ved at den (desimalpunktet) faktisk skifter posisjon på selve displayenheten i samsvar med hva flyteverdien dikterer på et gitt tidspunkt. Deretter kobles hele maskinvarens 7-segmenters displayenhet til i multiplexmodus. Det er en spesiell ordning der den samme databussen (8-datapinner) fra MCUen mater de tre aktive 7-segmentene i displayenheten. Sende datamønster til hver av komponentdelene oppnås ved en prosess som kalles skanning. Skanning er en teknikk som innebærer å sende data over til hvert av komponentens 7-segmenter; og muliggjøre (dvs. slå på) dem raskt etter hverandre når deres respektive data kommer. Hastigheten til å adressere hver av dem er gjort slik at det lykkes å lure menneskesynet til å tro at alle (komponentdelene) er aktivert (adressert) samtidig. Den (skanning) bruker ganske enkelt et fenomen kjent som Persistence Of Vision.
Trinn 6: Programvaren
#inkludere
#inkludere
#inkludere
#define segment1 pin9
#define segment2 pin10
#define segment3 pin11
float batt_voltage;
int desimalPoint, batt;
/*matriser som lagrer segmentmønster for hvert gitt siffer*/
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;
vise() {
usignert char i;
hvis (desimalpunkt <10) {
disp0 = (int) batt_voltage /100; // henter MSD (mest signifikante siffer)
// å være den høyest vektede
/* henter det neste veide sifferet; og så videre */
disp1 = ((int) batt_voltage % 100)/10;
disp2 = ((int) batt_voltage % 10);
}
annet {
disp0 = (int) batt_voltage /1000;
disp1 = ((int) batt_voltage % 1000)/100;
disp2 = ((int) batt_voltage % 100)/10;
}
/*Mønstre helles ut for visning; og 0x80 tegn som legger til et desimaltegn
hvis den tilhørende tilstanden stemmer*/
for (i = 0; i <50; i ++) {
pin9 = pin10 = pin11 = HIGH;
hvis (desimalpunkt <10)
portWrite (1, CCathodeDisp [disp0] | 0x80);
else portWrite (1, CCathodeDisp [disp0]);
segment1 = LAVT;
segment2 = HØY;
segment3 = HØY;
forsinkelseMs (5);
pin9 = pin10 = pin11 = HIGH;
hvis ((desimalpunkt> = 10) && (desimalpunkt <100))
portWrite (1, CCathodeDisp [disp1] | 0x80);
else portWrite (1, CCathodeDisp [disp1]);
segment1 = HØY;
segment2 = LAV;
segment3 = HØY;
forsinkelseMs (5);
pin9 = pin10 = pin11 = HIGH;
hvis (desimalpunkt> = 100)
portWrite (1, CCathodeDisp [disp2] | 0x80);
else portWrite (1, CCathodeDisp [disp2]);
segment1 = HØY;
segment2 = HØY;
segment3 = LAV;
forsinkelseMs (5);
}
}
setup () {// oppsett her
analogSetting (); // analog port initialisert
portMode (1, OUTPUT); // Pinner 1 til 8 konfigurert som output pins
/ * skannepinner konfigurert som utgangspinner */
pin9Mode = UTGANG;
pin10Mode = UTGANG;
pin11Mode = UTGANG;
portWrite (1, LOW);
pin9 = pin10 = pin11 = HIGH; // skannepinner (som er aktive-lave)
// er deaktivert i starten
loop () {// Program her
batt_voltage = analogRead (A0); // tar inn måleverdien
batt_voltage = ((batt_voltage * 5000) / 1024); // konverteringsfaktor for 5Vin
batt_voltage = (batt_voltage * 50)/5000; // konverteringsfaktor for 50Vin
desimalpunkt = batt_voltage; // markerer der desimaltegnet vises i
// den opprinnelige verdien før datamanipulering
vise();
}
}
Anbefalt:
Waveshare E-blekkvisning Presis voltmeter (0-90v DC) med Arduino Nano: 3 trinn
Waveshare E-ink Display presis voltmeter (0-90v DC) Med Arduino Nano: I denne instruksjonsboken bruker jeg en 2,9 '' Waveshare E-Paper-skjerm med en Arduino Nano, en spenningsdeler og en ADS1115 for å vise presise spenninger opp til 90 volt DC på E-Paper Display. Denne instruksjonen kombinerer disse to tidligere prosjektene:- Ardui
AC voltmeter ved bruk av Arduino: 3 trinn (med bilder)
AC Voltmeter Using Arduino: Dette er en enkel krets for å fastslå AC -spenningen ved hjelp av Arduino UNO uten AC voltmeter !! NYT
Digital Arduino voltmeter: 3 trinn
Digital Arduino voltmeter: Et voltmeter eller et spenningsmåler er et måleinstrument som brukes til å måle spenning
Oppladbart digitalt voltmeter ved bruk av ICL7107 ADC: 7 trinn (med bilder)
Oppladbart digitalt voltmeter ved bruk av ICL7107 ADC: I denne opplæringen vil jeg vise deg hvordan du lager et superenkelt digitalt voltmeter som kan måle spenninger fra 20 mV til 200V. Dette prosjektet vil ikke bruke noen mikrokontroller som arduino. I stedet for det vil en ADC, dvs. ICL7107, bli brukt med noen pass
Digital voltmeter: 5 trinn
Digital voltmeter: Dette er en brukervennlig og billig DIY voltmeter. Totalkostnaden for å lage dette prosjektet er mindre enn 200 INR eller 2,5 $