Indholdsfortegnelse:

Digital voltmeter med CloudX: 6 trin
Digital voltmeter med CloudX: 6 trin

Video: Digital voltmeter med CloudX: 6 trin

Video: Digital voltmeter med CloudX: 6 trin
Video: DFCCIL EXECUTIVE OPERATING (STATION CONTROLLER) 2018 2024, November
Anonim
Digital voltmeter med CloudX
Digital voltmeter med CloudX

Batterier giver en renere form for jævnstrøm (jævnstrøm), når de bruges i kredsløb. Deres lave støjniveau gør dem altid perfekt til nogle meget følsomme kredsløb. Men på tidspunkter, hvor deres spændingsniveau løber ned under et bestemt tærskelpunkt, kan kredsløbene - (som de er beregnet til at drive), indgå i en uregelmæssig adfærd; især når de ikke er godt designet til at klare det.

Derfor opstår behovet for regelmæssigt at overvåge batteriets effektniveau for korrekt at guide os om, hvornår det skal udskiftes eller oplades - i tilfælde af et genopladeligt batteri. Derfor skal vi i denne DIY (Do It Yourself) designe en simpel batterispændingsmåler ved hjælp af CloudX - ved hjælp af 7Segmentet som vores display.

Trin 1: Krav til hardware

CloudX Microcontroller -modul

CloudX USB

SoftCard

7 Segmentvisning

Modstande

Strømforsyningsenhed

Brødbræt

Jumper (tilslutning) ledninger

Trin 2: CloudX M633 mikrokontroller

CloudX M633 mikrokontroller
CloudX M633 mikrokontroller

CloudX Microcontroller -modul

CloudX -modul er et elektronisk designhardwareværktøj, der giver dig en meget bekvem og nem måde at interagere med den fysiske verden via et simpelt mikrokontrolkort. Hele platformen er baseret på en open-source fysisk computing. Dens enkelhed ved et IDE (Integrated Development Environment) gør det virkelig en perfekt pasform for begyndere, men alligevel bevarer den nok funktionalitet til at give de avancerede slutbrugere mulighed for at navigere igennem. I en nøddeskal giver CloudX mulighed for en meget forenklet proces med håndtering af mikrokontrollen-ved at abstrahere de normale komplekse detaljer, der er forbundet med den; samtidig med at den tilbyder en meget rig brugeroplevelsesplatform. Det finder brede applikationer på tværs af baner: skoler, som et godt uddannelsesværktøj; industrielle og kommercielle produkter; og som et godt værktøj i hænderne på en hobbyist.

Trin 3: Fastgør forbindelser

Pin -forbindelser
Pin -forbindelser

7-segmentstifterne: A, B, C, D, E, F, G, 1, 2 og 3 er forbundet til CloudX-MCU's pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, henholdsvis pin10 og pin11.

Trin 4: Kredsløbsdiagram

Kredsløbsdiagram
Kredsløbsdiagram

Mikrocontroller -modulet, der er i centrum her, kan tændes:

enten via Vin- og Gnd-punkterne (dvs. at tilslutte dem til henholdsvis din eksterne strømforsyningsenheds +ve og –ve terminaler) på tavlen;

eller via dit CloudX USB softcard -modul

. Mere over, som det let kunne ses af kredsløbsdiagrammet ovenfor, er inputbatteriets spænding forbundet med MCU (mikrokontroller) modulet, således at –punktet for spændingsdelerenetværket (dannet af og) er forbundet til A0 på MCU -stiften.

og vælges på en sådan måde, at:

begrænse mængden af strøm, der strømmer gennem netværket;

grænse inden for et sikkert område på (0 - 5) V for MCU'en.

Ved hjælp af formlen: VOUT = (R2/(R1+R2)) * VIN; og kan let evalueres.

Voutmax = 5V

og til dette projekt vælger vi: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Tager R2 for eksempel 10kΩ; R1 = 45/5 * 10 = 90kΩ

Trin 5: Driftsprincip

Når den målte indgangsspænding læses via VOUT -punktet i spændingsdelerenetværket, behandles dataene yderligere i MCU'en for at evaluere til den endelige faktiske værdi, der vises på segmentenheden. Det (systemdesignet) er en automatisk decimalpunktsplacering, idet den (decimalpunkt) faktisk skifter position på selve displayenheden i overensstemmelse med hvad flydeværdien dikterer på et givet tidspunkt. Derefter forbindes hele hardware 7-Segment displayenheden i multiplex-tilstand. Det er et særligt arrangement, hvorved den samme databus (8-datastifter) fra MCU'en føder de tre aktive 7-segmenter i displayenheden. At sende datamønster til hver af komponentdelene opnås ved en proces, der kaldes Scanning. Scanning er en teknik, der involverer afsendelse af data til hver af komponentens 7-segmenter; og muliggøre (dvs. tænde) dem hurtigt efter hinanden, når deres respektive data ankommer. Hastigheden af at adressere hver enkelt af dem gøres sådan, at det lykkes at bedrage den menneskelige vision til at tro, at de alle (komponentdelene) er aktiveret (adresseret) på samme tid. Det (scanning) anvender ganske enkelt et fænomen kendt som Persistence Of Vision.

Trin 6: Softwareprogrammet

#omfatte

#omfatte

#omfatte

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

float batt_voltage;

int decimalPoint, batt;

/*arrays, der gemmer segmentmønster for hvert givet ciffer*/

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;

Skærm() {

usigneret char i;

hvis (decimalpoint <10) {

disp0 = (int) batt_voltage /100; // henter MSD (mest signifikante ciffer)

// er den højeste vægtede

/* henter det næste vægtede ciffer; og så videre */

disp1 = ((int) batt_voltage % 100)/10;

disp2 = ((int) batt_voltage % 10);

}

andet {

disp0 = (int) batt_voltage /1000;

disp1 = ((int) batt_voltage % 1000)/100;

disp2 = ((int) batt_voltage % 100)/10;

}

/*Mønstre hældes ud til visning; og 0x80 tegn tilføjer et decimalpunkt

hvis den tilhørende betingelse er sand*/

for (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = HIGH;

hvis (decimalpoint <10)

portWrite (1, CCathodeDisp [disp0] | 0x80);

ellers portWrite (1, CCathodeDisp [disp0]);

segment1 = LAVT;

segment2 = HØJ;

segment3 = HØJ;

forsinkelseMs (5);

pin9 = pin10 = pin11 = HIGH;

hvis ((decimalPoint> = 10) && (decimalPoint <100))

portWrite (1, CCathodeDisp [disp1] | 0x80);

ellers portWrite (1, CCathodeDisp [disp1]);

segment1 = HØJ;

segment2 = LAVT;

segment3 = HØJ;

forsinkelseMs (5);

pin9 = pin10 = pin11 = HIGH;

hvis (decimalPoint> = 100)

portWrite (1, CCathodeDisp [disp2] | 0x80);

ellers portWrite (1, CCathodeDisp [disp2]);

segment1 = HØJ;

segment2 = HØJ;

segment3 = LAV;

forsinkelseMs (5);

}

}

setup () {// opsætning her

analogSetting (); // analog port initialiseret

portMode (1, OUTPUT); // Pins 1 til 8 konfigureret som output pins

/ * scannestifter konfigureret som udgangsstifter */

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // scan pins (som er aktive-lave)

// er deaktiveret i starten

loop () {// Program her

batt_voltage = analogRead (A0); // indtager den målte værdi

batt_voltage = ((batt_voltage * 5000) / 1024); // omregningsfaktor for 5Vin

batt_voltage = (batt_voltage * 50)/5000; // omregningsfaktor for 50Vin

decimalPoint = batt_voltage; // markerer, hvor decimalpunkt vises i

// den oprindelige værdi før datamanipulation

Skærm();

}

}

Anbefalede: