Μετάβαση στο κύριο περιεχόμενο

Αυτόνομο Θερμόμετρο TMP36 και I2C LCD

 

Αυτόνομο Θερμόμετρο  TMP36 και I2C LCD


θέλετε να εμφανίσετε τις ενδείξεις θερμοκρασίας σε πραγματικό χρόνο και να εμφανίσετε μια ειδοποίηση όταν η θερμοκρασία είναι εκτός του καθορισμένου εύρους. Τότε μάλλον θα χρειαστείτε μια οθόνη LCD 16×2 χαρακτήρων αντί για σειριακή οθόνη.

Σε αυτό το παράδειγμα, θα συνδέσουμε την οθόνη LCD I2C στο Arduino μαζί με το TMP36.

Η σύνδεση της οθόνης LCD I2C είναι αρκετά εύκολη όπως μπορείτε να δείτε στο παρακάτω διάγραμμα καλωδίωσης.

Το παρακάτω διάγραμμα σάς δείχνει πώς να καλωδιώσετε τα πάντα.



// Include the LiquidCrystal_I2C library

#include <LiquidCrystal_I2C.h>


// Create a new instance of the LiquidCrystal_I2C class

LiquidCrystal_I2C lcd(0x3F, 16, 2);


// Define a custom degree character

byte Degree[] = {

  B00111,

  B00101,

  B00111,

  B00000,

  B00000,

  B00000,

  B00000,

  B00000

};


// Define the analog pin, the TMP36's Vout pin is connected to

#define sensorPin A0


void setup() {

  // Start the LCD and turn on the backlight

  lcd.init();

  lcd.backlight();


  // Create a custom character

  lcd.createChar(0, Degree);

}


void loop() {

  // Get the voltage reading from the TMP36

  int reading = analogRead(sensorPin);


  // Convert that reading into voltage

  // Replace 5.0 with 3.3, if you are using a 3.3V Arduino

  float voltage = reading * (5.0 / 1024.0);


  // Convert the voltage into the temperature in Celsius

  float temperatureC = (voltage - 0.5) * 100;


  // Print the temperature on the LCD;

  lcd.setCursor(0, 0);

  lcd.print("Temperature:");

  lcd.setCursor(0, 1);

  lcd.print(temperatureC, 1);

  lcd.write(0); // print the custom degree character

  lcd.print("C ");

  

  // Print the temperature in Fahrenheit

  float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;

  lcd.print(temperatureF, 1);

  lcd.write(0); // print the custom degree character

  lcd.print("F ");


  delay(1000); // wait a second between readings

}

Θα πρέπει να δείτε την ακόλουθη έξοδο στην οθόνη LCD:























Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Σερβοκινητήρας

  Βασικός έλεγχος σερβομηχανισμού Θα μάθουμε πώς να ελέγχετε έναν τυπικό σερβοκινητήρα, να πηγαίνει εμπρός και πίσω κατά 180 μοίρες, χρησιμοποιώντας ένα «βρόχο for()». Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης Servo, η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση). . Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης  Servo     , η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση).      Χρειαζόμαστε τα παρακάτω:     Arduino IDE Arduino UNO  Σερβοκινητήρας 4,8V - 6V  Καλώδια βραχυκυκλωτήρα. Τυπικοί σερβοκινητήρες Οι τυπικοί σερβοκινητήρες είναι ενεργοποιητές που επιτρέπουν τον ακριβή έλεγχο της θέσης (γωνία). Χαρακτηριστικό  είναι ότι η γωνία του κινητήρα είναι 0 - 180 μοίρες. Με άλλα λόγια, μπορεί να κάνει το μισό μιας περιστροφής. Ένας τυπικός σερβοκινητήρας, όπως και άλλοι κινητήρες, είναι ουσιαστικά απλώς ένας...

Φωτοαντιστάτης

int a; // εδώ θα κρατάμε την τιμή που διαβάζουμε από τον φωτοαντιστάτη float b; // εδώ θα αποθηκεύουμε την τάση που έχει ο φωτοαντιστάτης στα άκρα του float c; // εδώ θα αποθηκεύουμε την τιμή της αντίστασης του φωτοαντιστάτη int d; // εδώ θα αποθηκεύσουμε την τιμή-όριο πάνω από την οποία θα ανάβουμε το void setup() { Serial.begin(9600); // ξεκινάμε το σειριακό μόνιτορ του Arduino IDE  d=500; // τιμή πάνω από την οποία θα ανάβουμε το LED pinMode(6, OUTPUT); // το πιν 6 θα είναι ή ΕΞΟΔΟΣ που θα συνδέσουμε το LED } void loop() { a=analogRead(A0); // διάβασε την αναλογική είσοδο A0 και βάλε την τιμή στην a  Serial.print("Τιμή: "); // απεικόνισε την τιμή της a στο σειριακό μόνιτορ του Arduino IDΕ Serial.print(a); Serial.print("\t"); b=a*5.0/1023; // υπολόγισε την τιμή της τάσης στα άκρα του φωτοαντιστάτη Serial.print("Τάση: "); Serial.print(b); // απεικόνισε την τιμή της τάσης Serial.print(" V \t"); c=b*10.0/(5-b); // υπολόγισε την αντίσταση του φωτοα...

esp32-bluetooth

  #include "BluetoothSerial.h" BluetoothSerial SerialBT; const int ledPin= 2 ; void setup () {   // put your setup code here, to run once: SerialBT . begin ( "ESP32-Bluetooth20250402Β" ) ; pinMode ( ledPin,OUTPUT ) ; } void loop () {   // put your main code here, to run repeatedly: if ( SerialBT . available ()) {   char c= SerialBT . read () ;   if ( c=='1' ){     digitalWrite ( ledPin, 1 ) ;   } else if ( c=='0' ) {     digitalWrite ( ledPin, 0 ) ;   } } }