Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Γεια σε όλους! Είμαστε φοιτητές από το University Tun Hussein Onn Malaysia (UTHM) που πραγματοποιούν ένα έργο για να δείξουν πώς μπορούμε να προσομοιώσουμε έναν αισθητήρα θερμοκρασίας, ένα LCD και ένα Arduino χρησιμοποιώντας το Tinkercad ως μέρος του προγράμματος σπουδών μας για το UQD0801 (Robocon 1) (Ομάδα 7)
Οι αισθητήρες θερμοκρασίας και η οθόνη LCD μπορούν να χρησιμεύσουν ως απλός μηχανισμός σε διαφορετικές καταστάσεις, όπως παρακολούθηση θερμοκρασίας δωματίου, ακόμη και παρακολούθηση φυτών ή σε οποιοδήποτε μέρος που θεωρεί τη θερμοκρασία ως σημαντικό στοιχείο!
Βήμα 1: Λίστα απαιτούμενων στοιχείων
Αυτό το έργο απαιτεί στοιχεία που είναι πολύ εύκολα αποκτήσιμα στην αγορά.
Λίστα στοιχείων:
1. Arduino Uno R3 (1)
2. Αισθητήρας θερμοκρασίας (TMP36) (1)
3. LCD 16x2 (1)
4. Ποτενσιόμετρο 250kΩ (1)
5. Αντίσταση 220Ω (1)
Βήμα 2: Σύνδεση κυκλώματος στο Tinkercad
Το Tinkercad παρέχει προκατασκευασμένα κυκλώματα που μπορούν να βοηθήσουν τους χρήστες να μην περιπλέξουν τα κυκλώματά τους χτίζοντας από την αρχή.
Στο Circuit Desinger, μπορούμε να αναζητήσουμε το LCD, το οποίο θα δείξει ότι υπάρχει ένα κύκλωμα εκκίνησης που έχει ένα προ-συνδεδεμένο κύκλωμα μεταξύ ενός Arduino και ενός LCD.
Βήμα 3: Αισθητήρας θερμοκρασίας TMP36
Στο Tinkercad, υπάρχει μόνο ένας διαθέσιμος αισθητήρας θερμοκρασίας, ο TMP36.
Το TMP36 δεν έχει αντίσταση ευαίσθητη στη θερμοκρασία. Αντ 'αυτού, αυτός ο αισθητήρας χρησιμοποιεί την ιδιότητα των διόδων. καθώς μια δίοδος αλλάζει θερμοκρασία, η τάση αλλάζει με αυτήν σε γνωστό ρυθμό. Ο αισθητήρας μετρά τη μικρή αλλαγή και εξάγει αναλογική τάση μεταξύ 0 και 1,75VDC με βάση αυτό. Για να λάβουμε τη θερμοκρασία, πρέπει να μετρήσουμε την έξοδο και να κάνουμε κάποιο υπολογισμό για να τη μετατρέψουμε σε βαθμό Κελσίου.
Βήμα 4: Συνδέστε το TMP36 στο Arduino
Το TMP36 διαθέτει 3 ακίδες, οι οποίες μπορούν εύκολα να αναγνωριστούν παρατηρώντας την επίπεδη πλευρά του αισθητήρα.
Ο πρώτος πείρος είναι ο πείρος +5V που θα συνδεθεί στην παροχή.
Ο δεύτερος πείρος είναι το Vout το οποίο θα συνδεθεί με τον αναλογικό αναλογικό πείρο, (θα μπορούσε να είναι A0-A5). Χρησιμοποιήσαμε το A0 για αυτό το έργο.
Ο τρίτος πείρος είναι ο πείρος GND που θα συνδεθεί με τη γείωση του Arduino.
Βήμα 5: Ας κάνουμε κάποια κωδικοποίηση
Αρχικά, θα υπάρχει ένας κωδικός στον επεξεργαστή κώδικα που βρίσκεται στο Tinkercad.
Αυτό συμβαίνει επειδή χρησιμοποιήσαμε ένα κύκλωμα εκκίνησης από το Tinkercad, φορτώνοντας τον κώδικα μαζί του για να επιτρέψουμε στους νέους χρήστες να εξερευνήσουν και να προσομοιώσουν την έξοδο.
Μπορούμε να τα διαγράψουμε όλα και να σχεδιάσουμε τον κωδικό μας.
Για οποιονδήποτε κώδικα Arduino που πρόκειται να σχεδιάσουμε, πρέπει να διασφαλίσουμε ότι περιλαμβάνονται οι βιβλιοθήκες που σχετίζονται με το έργο.
Σε αυτήν την περίπτωση, χρειαζόμαστε δύο βιβλιοθήκες. -Βιβλιοθήκη για LCD (LiquidCrystal.h)
-Βιβλιοθήκη για σειριακή επικοινωνία (SoftwareSerial.h)
Και οι δύο αυτές βιβλιοθήκες υπάρχουν στο Tinkercad, πράγμα που σημαίνει ότι δεν χρειάζεται να κάνετε λήψη οποιασδήποτε βιβλιοθήκης από εξωτερικές πηγές.
Επομένως; οι πρώτες γραμμές του κώδικα είναι
#περιλαμβάνω
#περιλαμβάνω
Βήμα 6: Υπόλοιπο κώδικα
// περιλαμβάνει τον κωδικό της βιβλιοθήκης: #include
#περιλαμβάνω
LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // σύνδεση των ακίδων rs, en, d4, d5, d6, d7 στο arduino στο pin 12 11 5 4 3 2
int κελσίου? // δηλώστε μια συνάρτηση κελσίου ως ακέραιο
void setup ()
{
Serial.begin (9600); // ορίστε τον ρυθμό baud στα 9600 bit ανά δευτερόλεπτο
lcd. αρχή (16, 2); // Το μέγεθος του LCD είναι 16x2 // Εκτυπώστε ένα μήνυμα στην οθόνη LCD.
lcd.print ("Temp Display");
Serial.println ("Temp Display"); // εκτυπώστε το μήνυμα στη σειριακή οθόνη}
κενός βρόχος ()
{
κελσίου = χάρτης (((analogRead (A0) -20) * 3.04), 0, 1023, -40, 125); // χάρτης για να λάβετε τη θερμοκρασία μαθηματικά. Εννοώντας 0 = -40 βαθμούς και 1023 = 125 βαθμούς
lcd.setCursor (0, 0); // δρομέας ορίζεται στο πρώτο εικονοστοιχείο του LCD.
lcd.print ("Temp Display"); // εκτύπωση μηνύματος σε LCD
lcd.setCursor (0, 1); // δρομέας ρυθμισμένο στο πρώτο εικονοστοιχείο δεύτερης γραμμής
lcd.print (κελσίου); // εκτυπώνει την έξοδο Κελσίου από την αναλογική ανάγνωση στο LCD σε 0, 1
lcd.print ("C"); // εκτύπωση αλφαβήτου "c"
Serial.println (Κελσίου); // έξοδος που εμφανίζεται στη σειριακή οθόνη
καθυστέρηση (1000)? // η ανάγνωση ανανεώνεται κάθε 1 δευτερόλεπτο
lcd.clear (); // καθαρίζει το LCD
}