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

Μοντέλο κλιματισμού Arduino: 6 βήματα
Μοντέλο κλιματισμού Arduino: 6 βήματα

Βίντεο: Μοντέλο κλιματισμού Arduino: 6 βήματα

Βίντεο: Μοντέλο κλιματισμού Arduino: 6 βήματα
Βίντεο: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Ιούλιος
Anonim
Μοντέλο κλιματισμού Arduino
Μοντέλο κλιματισμού Arduino

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

Χρησιμοποιώντας ένα κιτ μικροελεγκτή Arduino και εκδόσεις MATLAB 2016b και 2017b, καταφέραμε να επιδείξουμε αυτά τα αποτελέσματα με σχετική επιτυχία.

Βήμα 1: Εξοπλισμός

Εξοπλισμός
Εξοπλισμός

Σετ μικροελεγκτών με τα ακόλουθα:

-Sparkfun Red Board

-Sparkfun Breadboard

-Διοικητικό Συμβούλιο LCD

-Ποτενσιόμετρο

-Αισθητήρας θερμοκρασίας

-Σέρβο

-Προσαρμογέας USB/Arduino

-Jumper Wires (25, ελάχιστο)

Φορητός υπολογιστής (Windows 10) με είσοδο USB

3D εκτυπωμένο αντικείμενο (προαιρετικό)

Βήμα 2: Ρύθμιση μικροελεγκτή

Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή
Ρύθμιση μικροελεγκτή

Σκεφτείτε αυτό: ολόκληρο το σύστημα αποτελείται από μεμονωμένες μονάδες που η καθεμία εφαρμόζει έναν σημαντικό παράγοντα στο τελικό αποτέλεσμα. Για το λόγο αυτό, συνιστάται ιδιαίτερα να ρυθμίσετε μια εικόνα του κυκλώματος πριν συνδέσετε καλώδια σε ένα μπερδεμένο χάος.

Οι εικόνες κάθε μεμονωμένου μοντέλου μπορούν να βρεθούν στο εγχειρίδιο του εργαλείου μικροελεγκτή ή στον ιστότοπό του στη διεύθυνση

Ξεκινήστε με την τοποθέτηση του αισθητήρα θερμοκρασίας, του ποτενσιόμετρου, των σερβο συνδέσεων και της LCD στην πλακέτα. Συνιστάται, λόγω του μεγέθους της LCD και της απαίτησης για τον αριθμό των καλωδίων για αυτήν, να τοποθετείται στο δικό της μισό του breadboard με τα άλλα κομμάτια στο άλλο μισό και το ποτενσιόμετρο να βρίσκεται σε μια περιοχή για κάποιον γυρίζει εύκολα το κουμπί του.

Για αναφορά:

LCD: c1-16

Servo: i1-3 (GND + -)

Αισθητήρας θερμοκρασίας: i13-15 (- GND +)

Ποτενσιόμετρο: g24-26 (- GND +)

Στη συνέχεια, ξεκινήστε τη σύνδεση καλωδίων βραχυκυκλωτή σε κάθε ακίδα των μονάδων μικροελεγκτή. αν και αυθαίρετο στο γενικό μεγάλο σχέδιο, ο σχεδιασμός δημιουργήθηκε με αυτές τις σημαντικές συνδέσεις:

Σύνδεση Ποτενσιόμετρου με LCD: f25 - e3

Servo GND καλώδιο: j1 - Digitalηφιακή είσοδος 9

Αισθητήρας θερμοκρασίας GND: j14 - Αναλογική είσοδος 0

Είσοδοι LCD: e11-e15-Digitalηφιακή είσοδος 2-5

e4 - Digitalηφιακή είσοδος 7

e6 - Digitalηφιακή είσοδος 6

(Σημείωση: Εάν είναι επιτυχής, και οι δύο λυχνίες στην άκρη της οθόνης LCD πρέπει να αναβοσβήνουν και το ποτενσιόμετρο μπορεί να βοηθήσει στη ρύθμιση της φωτεινότητάς του μόλις δοθεί ισχύς από τον προσαρμογέα.)

Προαιρετικό: Ένα τρισδιάστατο εκτυπωμένο αντικείμενο χρησιμοποιήθηκε ως μέρος μιας απαίτησης. Για να αποφευχθεί πιθανή ζημιά στα πιο εύθραυστα μέρη, τοποθετήθηκε μια εκτεταμένη θήκη ως μανίκι γύρω από την οθόνη LCD. Οι μετρήσεις της οθόνης LCD αποδείχθηκαν ότι ήταν περίπου 2-13/16 "x 1-1/16" x 1/4 ", και επομένως μόνο το ύψος άλλαξε σημαντικά. Εάν ένας τρισδιάστατος εκτυπωτής είναι άμεσα διαθέσιμος, σκεφτείτε να προσθέσετε ένα προσωπικό αντικείμενο, αν και περιττό. Επίσης, να γνωρίζετε ότι οι μετρήσεις μπορεί να διαφέρουν.

Βήμα 3: Εγκατάσταση MATLAB

Ρύθμιση MATLAB
Ρύθμιση MATLAB
Ρύθμιση MATLAB
Ρύθμιση MATLAB

Εγκαταστήστε μια πιο ενημερωμένη έκδοση του MATLAB (2016α και μετά), διαθέσιμη στον ιστότοπο MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Μόλις ανοίξει, μεταβείτε στα Πρόσθετα στην καρτέλα Αρχική σελίδα και κάντε λήψη "Πακέτο υποστήριξης MATLAB για υλικό Arduino" για να είναι προσβάσιμες οι εντολές του μικροελεγκτή.

Μόλις ολοκληρωθεί, μπορεί να γίνει μια δοκιμή για να βρεθεί η συνδεσιμότητα του μικροελεγκτή στον υπολογιστή/φορητό υπολογιστή. Αφού τα συνδέσετε με τον προσαρμογέα USB από το κιτ εργαλείων, εισαγάγετε την εντολή "άνοιγμα (σειριακό ('nada'))".

Θα εμφανιστεί ένα μήνυμα σφάλματος που θα δηλώνει τη σύνδεση ως "COM#", το οποίο θα χρειαστεί για τη δημιουργία ενός αντικειμένου arduino αρκεί να είναι η ίδια είσοδος ανά πάσα στιγμή.

Επειδή η οθόνη LCD δεν έχει άμεση σύνδεση με τη βιβλιοθήκη Arduino, πρέπει να δημιουργηθεί μια νέα βιβλιοθήκη για την εμφάνιση μηνυμάτων. Μια σύσταση είναι να δημιουργήσετε ένα αρχείο LCDAddon.m από το παράδειγμα LCD που βρίσκεται στο παράθυρο βοήθειας MATLAB μετά την αναζήτηση του "Arduino LCD" και την τοποθέτησή του στο φάκελο +arduinoioaddons, ή χρησιμοποιώντας τον συμπιεσμένο φάκελο που επισυνάπτεται και αντιγράψτε όλο το περιεχόμενό του στο προαναφερθέν ντοσιέ.

Εάν είναι επιτυχής, τότε ο κώδικας για τη δημιουργία ενός αντικειμένου Arduino στο MATLAB είναι όπως φαίνεται παρακάτω.

a = arduino ('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

Βήμα 4: Λειτουργίες

Λειτουργίες
Λειτουργίες
Λειτουργίες
Λειτουργίες

Δημιουργήστε μια συνάρτηση MATLAB. Για τις εισόδους, χρησιμοποιούμε μεταβλητές "eff" και "T_min". για τις εξόδους, αν και περιττές στη συνολική σχεδίαση, χρησιμοποιήσαμε τη μεταβλητή "Β" ως τρόπο για να περιέχει δεδομένα από τα αποτελέσματα. Η είσοδος "eff" επιτρέπει τη διαχείριση της μέγιστης ταχύτητας του σερβο, και η είσοδος "T_min" ελέγχει την ελάχιστη επιθυμητή θερμοκρασία. Η τιμή "Β" θα πρέπει έτσι να παράγει μια μήτρα που περιέχει τρεις στήλες για το χρόνο, τη θερμοκρασία και την απόδοση του ανεμιστήρα. Επίσης, ως μπόνους στη λεπτομέρεια, ο παρακάτω κώδικας έχει επίσης μια δήλωση if έτσι ώστε η ταχύτητα του ανεμιστήρα να μειωθεί κατά 50 % όταν φτάσει στην επιθυμητή ελάχιστη θερμοκρασία.

Εάν όλες οι είσοδοι και τα καλώδια βραχυκυκλωτήρων τοποθετηθούν ακριβώς και υποθέσουμε ότι η θύρα της σύνδεσης arduino είναι COM4 και το όνομα της συνάρτησης είναι "fanread", ο ακόλουθος κώδικας θα πρέπει να είναι επαρκής:

λειτουργία [B] = fanread (Tmin, eff)

σαφής α? Clear lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % χρόνος σε δευτερόλεπτα

lcd = addon (a, 'ΠαράδειγμαLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

initializeLCD (lcd, 'Rows', 2, 'Columns', 2)?

αν eff> = 1 || ε <0

σφάλμα ("Ο ανεμιστήρας δεν θα ενεργοποιηθεί εκτός εάν το eff έχει οριστεί μεταξύ 0 και 1.")

τέλος

για t = 1: 10 % αριθμός βρόχων/διαστημάτων

σαφές γ? % αποτρέπει την επανάληψη του σφάλματος

v = readVoltage (a, 'A0');

TempC = (v-0.5)*100; % εκτίμηση για εύρη τάσης 2,7-5,5 V

εάν TempC> Tmin εάν TempC

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff/2); % ενεργοποίηση σερβο σε μισή ταχύτητα

spd = 50;

αλλού

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff); % ενεργοποίηση σερβο σε δεδομένη ταχύτητα

spd = 100;

τέλος

αλλού

c = ['Temp', num2str (TempC, 3), 'C Off'];

writePWMDutyCycle (a, 'D9', 0); % κλείνει αν είναι ήδη ενεργοποιημένο

spd = 0;

τέλος

printLCD (LCD, c);

παύση (3)? % τρία δευτερόλεπτα μεσολαβούν ανά βρόχο

χρόνος (t) = t.*3;

tempplot (t) = TempC;

act (t) = spd;

δευτερεύον οικόπεδο (2, 1, 1)

γράφημα (ώρα, tempplot, 'b-o') % γράφημα γραμμής

άξονας ([0 33 0 40])

xlabel ('Χρόνος (δευτερόλεπτα)')

ylabel ("Θερμοκρασία (C)")

περίμενε

οικόπεδο ([0 33], [Tmin Tmin], 'r-')

περίμενε

οικόπεδο ([0 33], [Tmin+2 Tmin+2], 'g-')

δευτερεύον οικόπεδο (2, 1, 2)

γραμμή (ώρα, πράξη) % γράφημα ράβδων

xlabel ('Χρόνος (δευτερόλεπτα)')

ylabel ("Αποδοτικότητα (%)")

τέλος

Β = μεταφορά ([χρόνος, tempplot, πράξη]), τέλος

Τώρα που η λειτουργία ολοκληρώθηκε, ήρθε η ώρα για δοκιμή.

Βήμα 5: Δοκιμή

Δοκιμές
Δοκιμές
Δοκιμές
Δοκιμές

Τώρα δοκιμάστε τη συνάρτηση στο παράθυρο εντολών εισάγοντας "όνομα_χρήσης (input_value_1, input_value_2)" και παρακολουθήστε. Βεβαιωθείτε ότι κανένα αντικείμενο Arduino δεν υπάρχει ήδη. αν ναι, χρησιμοποιήστε την εντολή "clear a" για να την αφαιρέσετε. Εάν παρουσιαστούν σφάλματα, ελέγξτε και δείτε εάν κάποιοι σύνδεσμοι βρίσκονται σε λάθος μέρος ή εάν χρησιμοποιούνται λάθος ψηφιακές ή αναλογικές είσοδοι. Τα αποτελέσματα αναμένεται να ποικίλουν, αν και αυτό μπορεί να προκληθεί από την τοποθέτηση ορισμένων καλωδίων βραχυκυκλωτήρα και τον αισθητήρα θερμοκρασίας.

Οι προσδοκίες των αποτελεσμάτων θα πρέπει να προκαλέσουν αλλαγές στην απόδοση του σερβο και στα δεδομένα στην οθόνη LCD. Με κάθε διάστημα τριών δευτερολέπτων, μια γραμμή κειμένου πρέπει να εμφανίζει τη θερμοκρασία σε Κελσίου και αν ο ανεμιστήρας είναι ενεργός ή όχι ενώ ο ανεμιστήρας λειτουργεί σε πλήρη ταχύτητα, μισή ταχύτητα ή καθόλου ταχύτητα. Τα δεδομένα πιθανότατα δεν πρέπει να είναι συνεπή, αν και εάν επιθυμείτε περισσότερα αποτελέσματα, τοποθετήστε την τιμή "Tmin" κοντά στη μέση θερμοκρασία που παράγεται από το κύκλωμα.

Βήμα 6: Συμπέρασμα

συμπέρασμα
συμπέρασμα

Παρόλο που ήταν δύσκολο να επιτευχθεί με δοκιμή και λάθος, τα τελικά αποτελέσματα αποδείχθηκαν αρκετά ενδιαφέροντα και ικανοποιητικά. Ένα σύστημα από μόνο του βοηθά στην απεικόνιση του πόσα πολύπλοκα μηχανήματα, ή ακόμη και μερικά από τα μέρη τους, μπορούν να θεωρηθούν ως μια συλλογή από ανεξάρτητα μέρη τοποθετημένα μαζί για να επιτύχουν έναν συγκεκριμένο στόχο.

Λόγω του μάλλον απλοϊκού σχεδιασμού του τελικού έργου, όσοι ενδιαφέρονται να βελτιώσουν την απόδοσή του μπορούν να κάνουν τροποποιήσεις και αλλαγές στο τελικό προϊόν που μπορούν να κάνουν το έργο καλύτερο και πιο περίτεχνο. Ωστόσο, αποκαλύπτει αδυναμίες στο κύκλωμα, όπως η ενεργοποίηση του σερβο που οδηγεί σε σποραδικές διακυμάνσεις στην ένδειξη τάσης του κυκλώματος, οι οποίες μπορούν να προκαλέσουν το σύστημα να μην παράγει ποτέ τα ίδια αποτελέσματα. Επίσης, υπήρξαν προβλήματα με την αλλαγή της ταχύτητας σερβο όταν η ρύθμιση "eff" είναι 0,4 και υψηλότερη. Αν είχε χρησιμοποιηθεί αισθητήρας θερμοκρασίας και υγρασίας, το τελικό μοντέλο θα ήταν πιο περίπλοκο αλλά θα παρουσίαζε πιο σταθερές τιμές. Παρ 'όλα αυτά, αυτή είναι μια εμπειρία που δείχνει ότι ένα πολύπλοκο μηχάνημα μπορεί να λειτουργήσει ως συνδυασμός των απλών εξαρτημάτων του.

Συνιστάται: