1.8 TFT LCD DS18B20 - mcworkshop

Vai ai contenuti

1.8 TFT LCD DS18B20

Technical Pages
1.8 TFT LCD con DS18B20





click sulle immagini per ingrandire

Il classico utilizzo della sonda termometrica DS18B20. In questo progetto si utilizza un LCD TFT da1,8. Il sensore viene interrogato ogni 30 secondi (figura 3 recall) e viene visualizzato il tempo trascorso in minuti dall'accensione di Arduino (figura 3 t).
Lo sketch lo trovate qui (click sulla scritta).


I collegamenti
VCC  5V
GND GND

DS18B20 al pin digitale 2 come da sketch #define ONE_WIRE_BUS 2
R 4.7k tra +5 e D

RST 8
RS 9
CS 10
SDA 11
CLK 13


/* DS18B20 TFT 1.8
 25 aprile 2021 by MCWorkshop.
 This example code is in the public domain.
 R 4.7k tra +5 e D
*/
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8
#define TFT_SCLK 13
#define TFT_MOSI 11
//*******************************
#define COLOR1 ST7735_WHITE
#define COLOR2 ST7735_BLACK
#define COLOR3 ST7735_YELLOW
#define COLOR4 ST7735_GREEN
//White theme
//#define COLOR1 ST7735_BLACK
//#define COLOR2 ST7735_WHITE
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#include <stdio.h>
#if defined(__SAM3X8E__)
#undef __FlashStringHelper::F(string_literal)
#define F(string_literal) string_literal
#endif
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
//***************
unsigned long last = 0;
unsigned long tempo = 0;
//***************
#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
//***************
void setup()
{
 sensors.setResolution(9);
 tft.initR(INITR_BLACKTAB);
 tft.fillScreen(ST7735_BLACK);
}
//***************
void loop() {
 //***************
 tft.setCursor(20, 20);
 tft.setTextColor(COLOR3);
 tft.setTextSize(2);
 tft.print("DS18B20");
 tft.setCursor(30, 40);
 tft.setTextColor(COLOR3);
 tft.setTextSize(1);
 tft.print("recall 30s");
 unsigned long current = millis();
 if ((current - last) >= 30000)
 {
   sensors.requestTemperatures();
   float temp = sensors.getTempCByIndex(0);
   //***************
   tft.fillScreen(ST7735_BLACK);
   tft.setCursor(40, 80);
   tft.setTextColor(COLOR1);
   tft.setTextSize(2);
   tft.print("wait");
   tft.setCursor(10, 100);
   tft.setTextColor(COLOR1);
   tft.setTextSize(2);
   tft.print("reloading");
   tft.fillScreen(ST7735_BLACK);
   tft.setCursor(20, 110);
   tft.setTextColor(COLOR3);
   tft.setTextSize(3);
   tft.print(temp);
   tft.setCursor(25, 90);
   tft.setTextColor(COLOR1);
   tft.setTextSize(2);
   tft.print("Temp C");
   //***************
   {
     unsigned long tempo = millis();
     tft.setCursor(40, 60);
     tft.setTextColor(COLOR4);
     tft.setTextSize(2);
     tempo = (tempo / 1000); tempo = (tempo / 60);
     tft.print("t ");
     tft.print(tempo);
   }
   //***************
   if ((current - last) >= 30000)
   {
     last = current;
   }
 }
}
Sito non a scopo di lucro /sito didattico, hobbistico / no pubblicità / no aggiornamento periodico / schemi e codici di pubblico dominio
ultimo aggiornamento: 12/09/21
Privacy Policy
Cookie Policy
Clicca sulle scritte!
Torna ai contenuti