Início›Sensores
⬤ LCD · Iniciante

🌡️ Dados de Sensores no LCD

⏱️ 25 min🧩 Sensores + LCD · Formatação · Anti-flickering

Nesta página

📐 Layout das 4 Linhas

Temp: 23.5C Hum:61%Luz: 412 (40%) Motor: FWD 180/255 Estado: OK 14:23:05
💡
Convenção: linha 0 = dados ambientais · linha 1 = dados físicos · linha 2 = estado do atuador · linha 3 = estado geral e tempo.

✅ Atualização sem Flickering

ex_sensores.ino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);

float ultT = -99;
int   ultL = -1;

void setup() {
  lcd.init(); lcd.backlight();
  lcd.setCursor(0,0); lcd.print("Temp:       C   ");
  lcd.setCursor(0,1); lcd.print("Luz:            ");
}

void loop() {
  float t = analogRead(A0) * 0.48828;  // LM35 ~10mV/°C
  int   l = analogRead(A1);

  if(abs(t - ultT) > 0.2) {   // só atualiza se mudou >0.2°C
    lcd.setCursor(6,0); lcd.print(t,1); lcd.print(" ");
    ultT = t;
  }
  if(abs(l - ultL) > 5) {    // só se mudou >5 raw
    lcd.setCursor(5,1); lcd.print(l); lcd.print("    ");
    ultL = l;
  }
  delay(200);
}

📊 4 Sensores — 4 Linhas Preenchidas

ex_4linhas.ino
unsigned long inicio = millis();

void loop() {
  float t   = analogRead(A0) * 0.48828;
  int   l   = analogRead(A1);
  bool  btn = (digitalRead(4)==LOW);
  unsigned long seg = (millis()-inicio)/1000;

  lcd.setCursor(0,0); lcd.print("T:");lcd.print(t,1);lcd.print("C L:");lcd.print(l);lcd.print("   ");
  lcd.setCursor(0,1); lcd.print("Botao: ");lcd.print(btn?"PREMIDO":"solto  ");
  lcd.setCursor(0,2); lcd.print("Uptime: ");lcd.print(seg);lcd.print("s     ");
  lcd.setCursor(0,3); lcd.print("PR.FT9_5 OK     ");
  delay(250);
}

🏆 Para ir mais longe

PR.FT9_5 · LCD 20×4 · L293D Motor Driver · Arduino UNO Rev3 · Início · led.dge.medu.pt