Πίνακας περιεχομένων:

Digitalηφιακό βολτόμετρο με CloudX: 6 βήματα
Digitalηφιακό βολτόμετρο με CloudX: 6 βήματα

Βίντεο: Digitalηφιακό βολτόμετρο με CloudX: 6 βήματα

Βίντεο: Digitalηφιακό βολτόμετρο με CloudX: 6 βήματα
Βίντεο: Цифровые часы Python 2024, Νοέμβριος
Anonim
Digitalηφιακό βολτόμετρο με CloudX
Digitalηφιακό βολτόμετρο με CloudX

Οι μπαταρίες παρέχουν μια πιο καθαρή μορφή ισχύος DC (συνεχούς ρεύματος) όταν χρησιμοποιούνται σε κυκλώματα. Το χαμηλό επίπεδο θορύβου τους τα καθιστά πάντα ιδανική για ορισμένα πολύ ευαίσθητα κυκλώματα. Ωστόσο, σε στιγμές που το επίπεδο τάσης τους μειώνεται κάτω από ένα ορισμένο σημείο κατωφλίου, τα κυκλώματα - (τα οποία προορίζονται να τροφοδοτήσουν), ενδέχεται να υποστούν μια ακανόνιστη συμπεριφορά. ειδικά όταν δεν είναι καλά σχεδιασμένα για να το χειριστούν.

Ως εκ τούτου, προκύπτει η ανάγκη τακτικής παρακολούθησης της στάθμης ισχύος της μπαταρίας για να μας καθοδηγήσει σωστά για το πότε πρέπει να γίνει πλήρης αντικατάσταση ή φόρτιση σε περίπτωση επαναφορτιζόμενης μπαταρίας. Επομένως, σε αυτό το DIY (Do It Yourself), θα σχεδιάσουμε έναν απλό μετρητή τάσης μπαταρίας χρησιμοποιώντας το CloudX - χρησιμοποιώντας το 7Segment ως οθόνη μας.

Βήμα 1: Απαιτήσεις υλικού

Μονάδα μικροελεγκτή CloudX

CloudX USB

SoftCard

7Εμφάνιση τμήματος

Αντιστάσεις

Τροφοδοτικό

Breadboard

Jumper (Σύνδεση) Καλώδια

Βήμα 2: Μικροελεγκτής CloudX M633

Μικροελεγκτής CloudX M633
Μικροελεγκτής CloudX M633

Μονάδα μικροελεγκτή CloudX

Η μονάδα CloudX είναι ένα ηλεκτρονικό εργαλείο σχεδιασμού υλικού που σας επιτρέπει έναν πολύ βολικό και εύκολο τρόπο διασύνδεσης με τον φυσικό κόσμο μέσω μιας απλής πλακέτας μικροελεγκτή. Όλη η πλατφόρμα βασίζεται σε έναν φυσικό υπολογισμό ανοιχτού κώδικα. Η απλότητα του IDE (Integrated Development Environment) το καθιστά πραγματικά ιδανικό για αρχάριους, διατηρώντας όμως αρκετή λειτουργικότητα που επιτρέπει στους προηγμένους τελικούς χρήστες να περιηγούνται. Σε ένα κέλυφος καρυδιού, το CloudX παρέχει μια πολύ απλουστευμένη διαδικασία χειρισμού του μικροελεγκτή − αφαιρώντας τις συνήθεις περίπλοκες λεπτομέρειες που σχετίζονται με αυτό. ενώ ταυτόχρονα προσφέρει μια πολύ πλούσια πλατφόρμα εμπειρίας χρήστη. Βρίσκει ευρείες εφαρμογές σε όλους τους τομείς: τα σχολεία, ως ένα σπουδαίο εκπαιδευτικό εργαλείο · βιομηχανικά και εμπορικά προϊόντα · και ως ένα μεγάλο βοηθητικό εργαλείο στα χέρια ενός χόμπι.

Βήμα 3: Καρφιτσώστε τις συνδέσεις

Συνδέσεις καρφιτσών
Συνδέσεις καρφιτσών

Οι καρφίτσες των 7 τμημάτων: A, B, C, D, E, F, G, 1, 2 και 3 συνδέονται με τα pin1, pin2, pin3, pin3, pin4, pin5, pin6, pin7, pin8, pin9 του CloudX-MCU. pin10 και pin11 αντίστοιχα.

Βήμα 4: Διάγραμμα κυκλώματος

Διάγραμμα κυκλώματος
Διάγραμμα κυκλώματος

Η μονάδα μικροελεγκτή, που βρίσκεται στο κεντρικό στάδιο εδώ, μπορεί να ενεργοποιηθεί:

είτε μέσω των σημείων Vin και Gnd (δηλαδή. συνδέστε τα έως και τους εξωτερικούς τερματικούς σταθμούς τροφοδοσίας +ve και –ve αντίστοιχα) στον πίνακα ·

ή μέσω της μονάδας λογισμικής κάρτας CloudX USB

Το Επιπλέον, όπως θα μπορούσε εύκολα να φανεί από το διάγραμμα κυκλώματος παραπάνω, η τάση της μπαταρίας εισόδου διασυνδέεται με τη μονάδα MCU (μικροελεγκτή) έτσι ώστε το – σημείο του δικτύου διαχωριστή τάσης (σχηματίζεται από και) να συνδέεται με το Α0 του ακροδέκτη MCU Το

και επιλέγονται με τέτοιο τρόπο ώστε:

περιορίστε την ποσότητα ρεύματος που ρέει μέσω του δικτύου.

όριο εντός ενός ασφαλούς εύρους (0 - 5) V για το MCU.

Χρησιμοποιώντας τον τύπο: VOUT = (R2/(R1+R2)) * VIN; και μπορεί εύκολα να αξιολογηθεί.

Voutmax = 5V

και για αυτό το έργο, επιλέγουμε: Vinmax = 50V?

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Λαμβάνοντας R2 = 10kΩ για παράδειγμα. R1 = 45/5 * 10 = 90kΩ

Βήμα 5: Αρχή λειτουργίας

Όταν η μετρημένη τάση εισόδου διαβάζεται μέσω του σημείου VOUT του δικτύου διαχωριστή τάσης, τα δεδομένα υποβάλλονται σε περαιτέρω επεξεργασία στο MCU για να εκτιμηθούν στην τελική πραγματική τιμή που εμφανίζεται στη μονάδα τμήματος. Είναι (ο σχεδιασμός του συστήματος) είναι ένα αυτόματο πρόγραμμα τοποθέτησης δεκαδικών σημείων, στο ότι μεταβάλλει στην πραγματικότητα τη θέση της ίδιας της μονάδας οθόνης σύμφωνα με αυτό που υπαγορεύει η τιμή του float σε κάθε δεδομένη χρονική στιγμή. Στη συνέχεια, ολόκληρη η μονάδα οθόνης υλικού 7 τμημάτων συνδέεται με τη λειτουργία πολυπλεξίας. Είναι μια ειδική διάταξη σύμφωνα με την οποία ο ίδιος δίαυλος δεδομένων (8 ακίδες δεδομένων) από το MCU τροφοδοτεί τα τρία ενεργά 7 τμήματα της μονάδας οθόνης. Η αποστολή μοτίβου δεδομένων σε καθένα από τα συστατικά μέρη επιτυγχάνεται με μια διαδικασία που αναφέρεται ως Σάρωση. Η σάρωση είναι μια τεχνική που περιλαμβάνει την αποστολή δεδομένων σε καθένα από τα 7 τμήματα. και ενεργοποιώντας (δηλ. την ενεργοποίηση) ταχεία διαδοχή καθώς φτάνουν τα αντίστοιχα δεδομένα τους. Ο ρυθμός αντιμετώπισης καθενός από αυτούς γίνεται έτσι ώστε να καταφέρνει να εξαπατήσει την ανθρώπινη όραση και να πιστέψει ότι όλα αυτά (τα συστατικά μέρη) είναι ενεργοποιημένα (απευθυνόμενα) ταυτόχρονα. (Σάρωση) απλώς, στην πραγματικότητα, χρησιμοποιεί ένα φαινόμενο γνωστό ως Persistence Of Vision.

Βήμα 6: Το πρόγραμμα λογισμικού

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

#define segment1 pin9

#καθορίστε το τμήμα2 pin10

#define segment3 pin11

float batt_voltage?

int δεκαδικό σημείο, batt;

/*πίνακες που αποθηκεύουν μοτίβο τμήματος για κάθε δεδομένο ψηφίο*/

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;

απεικόνιση() {

ανυπόγραφο char i?

εάν (δεκαδικό σημείο <10) {

disp0 = (int) batt_voltage /100; // λαμβάνει το MSD (το πιο σημαντικό ψηφίο)

// είναι το υψηλότερο σταθμισμένο

/* παίρνει το επόμενο σταθμισμένο ψηφίο. και ούτω καθεξής */

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

disp2 = ((int) batt_voltage % 10);

}

αλλιώς {

disp0 = (int) batt_voltage /1000;

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

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

}

/*Τα μοτίβα χύνονται για προβολή. και χαρακτήρα 0x80 προσθέτοντας ένα δεκαδικό σημείο

εάν ισχύει η σχετική συνθήκη*/

για (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = HIGH?

εάν (δεκαδικό <10)

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

else portWrite (1, CCathodeDisp [disp0]);

segment1 = LOW;

segment2 = HIGH?

segment3 = HIGH?

delayMs (5);

pin9 = pin10 = pin11 = HIGH?

αν ((δεκαδικό σημείο = = 10) && (δεκαδικό σημείο <100))

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

else portWrite (1, CCathodeDisp [disp1]);

segment1 = HIGH?

segment2 = LOW;

segment3 = HIGH?

delayMs (5);

pin9 = pin10 = pin11 = HIGH?

εάν (δεκαδικό σημείο> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

segment1 = HIGH?

segment2 = HIGH?

segment3 = LOW;

delayMs (5);

}

}

setup () {// setup εδώ

analogSetting (); // προετοιμασμένη αναλογική θύρα

portMode (1, OUTPUT); // Οι ακίδες 1 έως 8 έχουν διαμορφωθεί ως ακίδες εξόδου

/ * καρφίτσες σάρωσης που έχουν διαμορφωθεί ως ακίδες εξόδου */

pin9Mode = ΕΞΟΔΟΣ;

pin10Mode = ΕΞΟΔΟΣ;

pin11Mode = ΕΞΟΔΟΣ;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH? // σάρωση καρφιτσών (οι οποίες είναι ενεργές-χαμηλές)

// είναι απενεργοποιημένα στην αρχή

βρόχος () {// Πρόγραμμα εδώ

batt_voltage = analogRead (A0); // λαμβάνει τη μετρούμενη τιμή

batt_voltage = ((batt_voltage * 5000) / 1024); // συντελεστής μετατροπής για 5Vin

batt_voltage = (batt_voltage * 50)/5000; // συντελεστής μετατροπής για 50Vin

δεκαδικό σημείο = batt_voltage; // επισημαίνει πού εμφανίζεται η υποδιαστολή

// η αρχική τιμή πριν από το χειρισμό δεδομένων

απεικόνιση();

}

}

Συνιστάται: