Your cart is currently empty!
Interaktiivne infoekraan “Ilmajaam”
- 📟 LCD-ekraan (16×2 või 20×4)
- 🌡️ Temperatuuriandur (nt TMP36 või DHT11)
- 🌞 Valguse andur (fototakisti)
- ⏰ Reaalaegne kell (nt RTC DS3231 või millis() loendus)
- 🖼️ Vähemalt 5 lauset ja 5 pilti, mis vahelduvad ajaliselt või sõltuvalt anduritest
- 💡 Ilmajaama nimi kuvatakse ekraanil
- 💬 Soovi korral: reklaamtekst või naljakas sõnum aeg-ajalt
Töö kirjeldus:
Näita LCD ekraanil lause või seisukord väljas (temperatuur)
Komponendid:
Arduino Uno
Arendusplaat
Potentsioometr 1tk
LCD ekraan 1602
Temperatuuri andur TMP
Takisti 220 Om
Juhtmed 19 tk
#include <LiquidCrystal.h>
// LCD: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int tempPin = A1;
const int ldrPin = A0;
unsigned long previousMillis = 0;
const long interval = 5000;
byte sun[8] = {
0b00100,
0b10101,
0b01110,
0b11111,
0b01110,
0b10101,
0b00100,
0b00000
};
byte cloud[8] = {
0b00000,
0b01100,
0b10110,
0b11111,
0b11111,
0b01110,
0b00000,
0b00000
};
byte moon[8] = {
0b00011,
0b00110,
0b01100,
0b11000,
0b11000,
0b01100,
0b00110,
0b00011
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, sun);
lcd.createChar(1, cloud);
lcd.createChar(2, moon);
Serial.begin(9600);
lcd.setCursor(0, 0);
lcd.print("Ilmajaam alustab");
lcd.setCursor(0, 1);
lcd.print("Laen andmeid...");
delay(3000);
lcd.clear();
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
int tempRaw = analogRead(tempPin);
float voltage = tempRaw * (5.0 / 1023.0);
float temperature = (voltage - 0.5) * 100.0;
int ldrValue = analogRead(ldrPin);
Serial.print("Temp: ");
Serial.print(temperature);
Serial.print(" C | Valgus: ");
Serial.println(ldrValue);
lcd.clear();
lcd.setCursor(0, 0);
if (ldrValue > 935) {
lcd.print("Paikseline");
lcd.setCursor(13, 0);
lcd.write(byte(0)); // <img draggable="false" role="img" class="emoji" alt="☀️" src="https://s.w.org/images/core/emoji/15.1.0/svg/2600.svg">
} else if (ldrValue > 925) {
lcd.print("Pilvine");
lcd.setCursor(13, 0);
lcd.write(byte(1)); // <img draggable="false" role="img" class="emoji" alt="☁️" src="https://s.w.org/images/core/emoji/15.1.0/svg/2601.svg">
} else {
lcd.print("Oö / Kuu");
lcd.setCursor(13, 0);
lcd.write(byte(2)); // <img draggable="false" role="img" class="emoji" alt="🌙" src="https://s.w.org/images/core/emoji/15.1.0/svg/1f319.svg">
}
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature, 1);
lcd.print((char)223);
lcd.print("C");
}
}
