Inhoudsopgave:
- Stap 1: Hardwarevereiste
- Stap 2: CloudX M633 Microcontroller
- Stap 3: Pin-verbindingen
- Stap 4: Schakelschema
- Stap 5: Werkingsprincipe
- Stap 6: Het softwareprogramma
Video: Digitale voltmeter met CloudX - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Batterijen leveren een zuiverdere vorm van gelijkstroom (gelijkstroom) wanneer ze in circuits worden gebruikt. Hun lage ruisniveau maakt ze altijd perfect geschikt voor een aantal zeer gevoelige circuits. Echter, op momenten dat hun spanningsniveau onder een bepaald drempelpunt daalt, kunnen de circuits − (die ze van stroom moeten voorzien) een grillig gedrag vertonen; vooral als ze daar niet goed voor zijn ontworpen.
Daarom ontstaat de noodzaak om het batterijvermogen regelmatig te controleren om ons goed te kunnen informeren over wanneer het toe is aan volledige vervanging of opladen −in het geval van een oplaadbare batterij. Daarom moeten we in deze DIY (Do It Yourself) een eenvoudige batterijspanningsmeter ontwerpen met behulp van de CloudX - met het 7Segment als ons display.
Stap 1: Hardwarevereiste
CloudX-microcontrollermodule
CloudX USB
SoftCard
7Segmentweergave
Weerstanden
Voedingseenheid
Breadboard
Jumper (verbindings)draden
Stap 2: CloudX M633 Microcontroller
CloudX-microcontrollermodule
CloudX-module is een hardware-tool voor elektronica-ontwerp waarmee u op een veel handige en gemakkelijke manier verbinding kunt maken met de fysieke wereld via een eenvoudig microcontroller-bord. Het hele platform is gebaseerd op een open-source fysieke computer. De eenvoud van een IDE (Integrated Development Environment) maakt het echt perfect geschikt voor beginners, maar met voldoende functionaliteit om de gevorderde eindgebruikers er doorheen te laten navigeren. In een notendop, CloudX zorgt voor een sterk vereenvoudigd proces voor het omgaan met de microcontroller - door de normale complexe details die ermee samenhangen weg te abstraheren; terwijl het tegelijkertijd een zeer rijk gebruikerservaringsplatform biedt. Het vindt brede toepassingen over de hele linie: scholen, als een geweldig educatief hulpmiddel; industriële en commerciële producten; en als een geweldig hulpmiddel in de handen van een hobbyist.
Stap 3: Pin-verbindingen
De 7-segments pinnen: A, B, C, D, E, F, G, 1, 2 en 3 zijn verbonden met de CloudX-MCU's pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, respectievelijk pin10 en pin11.
Stap 4: Schakelschema
De microcontrollermodule, die hier centraal staat, kan worden ingeschakeld:
ofwel via de Vin- en de Gnd-punten (d.w.z. door ze aan te sluiten op respectievelijk de +ve- en -ve-aansluitingen van uw externe voedingseenheid) op het bord;
of via uw CloudX USB-softcardmodule
. Bovendien, zoals gemakkelijk te zien is in het bovenstaande schakelschema, is de ingangsbatterijspanning gekoppeld aan de MCU (microcontroller) -module, zodat het -punt van het spanningsdelernetwerk (gevormd door en) is verbonden met A0 van de MCU-pin.
en zijn zo gekozen dat:
beperk de hoeveelheid stroom die door het netwerk stroomt;
limiet binnen een veilig bereik van (0 – 5) V voor de MCU.
Met behulp van de formule: VOUT = (R2/(R1+R2)) * VIN; en kan eenvoudig worden beoordeeld.
Vuitmax = 5V
en voor dit project kiezen we: Vinmax = 50V;
5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Rekening houdend met R2 = 10kΩ bijvoorbeeld; R1 = 45/5 * 10 = 90kΩ
Stap 5: Werkingsprincipe
Wanneer de gemeten ingangsspanning wordt gelezen via het VOUT-punt van het spanningsdelernetwerk, worden de gegevens verder verwerkt in de MCU om te evalueren tot de uiteindelijke werkelijke waarde die wordt weergegeven op de segmenteenheid. Het (het systeemontwerp) is een automatische decimale puntplaatser, in die zin dat het (decimaal punt) de positie op de display-eenheid zelf verschuift in overeenstemming met wat de float-waarde op een bepaald moment in de tijd dicteert. Vervolgens wordt de hele hardware 7-Segment display-eenheid bedraad in de multiplex-modus. Het is een speciale opstelling waarbij dezelfde databus (8-datapinnen) van de MCU de drie actieve 7-segmenten in de display-eenheid voedt. Het verzenden van een gegevenspatroon naar elk van de samenstellende delen wordt bereikt door een proces dat Scannen wordt genoemd. Scannen is een techniek waarbij gegevens naar elk van de 7-segmenten van de componenten worden verzonden; en inschakelen (dwz inschakelen) ze snel achter elkaar wanneer hun respectieve gegevens binnenkomen. De snelheid waarmee ze elk van hen worden aangepakt, is zo gedaan dat het erin slaagt de menselijke visie te misleiden door te geloven dat ze allemaal (de samenstellende delen) tegelijkertijd worden geactiveerd (aangesproken). Het (scannen) maakt in feite gebruik van een fenomeen dat bekend staat als Persistence Of Vision.
Stap 6: Het softwareprogramma
#erbij betrekken
#erbij betrekken
#erbij betrekken
#define segment1 pin9
#define segment2 pin10
#definieer segment3 pin11
vlotter batt_voltage;
int decimalPoint, batt;
/*arrays die het segmentpatroon opslaan voor elk gegeven cijfer*/
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;
Scherm() {
niet-ondertekende char i;
if(decimaal punt < 10) {
disp0 = (int)batt_voltage /100; //haalt de MSD (meest significante cijfer) op
// de hoogste gewogen zijn
/* haalt het volgende gewogen cijfer op; enzovoort */
disp1 = ((int)batt_voltage % 100)/10;
disp2 = ((int)batt_voltage % 10);
}
anders {
disp0 = (int)batt_voltage /1000;
disp1 = ((int)batt_voltage % 1000)/100;
disp2 = ((int)batt_voltage % 100)/10;
}
/*Patronen worden uitgegoten voor weergave; en 0x80 karakters toevoegen van een decimaalteken
als de bijbehorende voorwaarde waar is*/
voor(i=0; i<50; i++) {
pin9 = pin10 = pin11 = HOOG;
if (decimaal punt < 10)
portWrite(1, CCathodeDisp[disp0] | 0x80);
else portWrite(1, CCathodeDisp[disp0]);
segment1 = LAAG;
segment2 = HOOG;
segment3 = HOOG;
vertragingMs(5);
pin9 = pin10 = pin11 = HOOG;
if((decimaal punt >= 10) && (decimaal punt < 100))
portWrite(1, CCathodeDisp[disp1] | 0x80);
else portWrite(1, CCathodeDisp[disp1]);
segment1 = HOOG;
segment2 = LAAG;
segment3 = HOOG;
vertragingMs(5);
pin9 = pin10 = pin11 = HOOG;
if (decimaal punt >= 100)
portWrite(1, CCathodeDisp[disp2] | 0x80);
else portWrite(1, CCathodeDisp[disp2]);
segment1 = HOOG;
segment2 = HOOG;
segment3 = LAAG;
vertragingMs(5);
}
}
setup(){ // setup hier
analoge instelling(); //analoge poort geïnitialiseerd
portMode (1, UITGANG); //Pins 1 tot en met 8 geconfigureerd als uitgangspinnen
/* scanpinnen geconfigureerd als uitvoerpinnen */
pin9Mode = UITGANG;
pin10Mode = UITGANG;
pin11Mode = UITGANG;
portWrite(1, LAAG);
pin9 = pin10 = pin11 = HOOG; // scan pinnen (die actief-laag zijn)
// zijn uitgeschakeld bij het begin
loop(){ //Programmeer hier
batt_voltage = analoog lezen (A0); // neemt de gemeten waarde in
batt_voltage = ((batt_voltage * 5000)/1024); //conversiefactor voor 5Vin
batt_voltage = (batt_voltage * 50)/5000; //conversiefactor voor 50Vin
decimalPoint = batt_voltage; // markeert waar de komma verschijnt in
// de oorspronkelijke waarde vóór gegevensmanipulatie
Scherm();
}
}
Aanbevolen:
AC-voltmeter met Arduino: 3 stappen (met afbeeldingen)
AC-voltmeter met Arduino: dit is een eenvoudig circuit om de AC-spanning vast te stellen met behulp van de Arduino UNO zonder enige AC-voltmeter !! GENIETEN VAN
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
Een digitale schuifmaat afbreken en hoe werkt een digitale schuifmaat: 4 stappen
Een digitale schuifmaat afbreken en hoe werkt een digitale schuifmaat: Veel mensen weten hoe ze een schuifmaat moeten gebruiken om te meten. Deze tutorial leert je hoe je een digitale schuifmaat afbreekt en een uitleg over hoe de digitale schuifmaat werkt
Digitale Arduino-voltmeter: 3 stappen
Digitale Arduino-voltmeter: een voltmeter of een spanningsmeter is een meetinstrument dat wordt gebruikt voor het meten van spanning
Digitale voltmeter: 5 stappen
Digitale voltmeter: dit is een eenvoudig te gebruiken en goedkope doe-het-zelf voltmeter. De totale kosten voor het maken van dit project zijn minder dan INR 200 of slechts 2,5 $