Mini Arduino miljön bildskärm ** uppdatering - lagt till RTC *** (10 / 14 steg)
Steg 10: Senaste stream-fodrad kod (skiss) bygga. Går snabbare, ser bättre!
Denna skiss ändrades för att köra loopen snabbare... uppdateringsfrekvensen är ca 1,5 sekunder.
Kopiera den skiss nedan och klistra in det i Arduino IDE att verifiera och köra programmet.
Denna skiss skapades med hjälp av koden från adafruit, virtuabotix och newPing prov skisser
#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8
#define ANALOG_IN 0 / / för CD-skivor ljus sensor
#define TRIGGER_PIN 12 / / Arduino PIN-kod knuten till utlösa pin på ultrasonic sensor.
#define ECHO_PIN 11 / / Arduino PIN-kod knuten till echo pin på ultrasonic sensor.
#define MAX_DISTANCE 200 / / maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400-500cm.
#include < Adafruit_GFX.h > / / Core grafik bibliotek
#include < Adafruit_ST7735.h > / / maskinvaruspecifika bibliotek
#include < SPI.h >
#include < dht11.h > / / DHT11 temp luftfuktighet sensor bibliotek
#include < NewPing.h > / / S04 Ultrasonic sensor bibliotek
dht11 DHT11;
Adafruit_ST7735 tft = Adafruit_ST7735 (cs, dc, mosi, sclk, rst);
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing inställning av stift och maximalt avstånd.
void setup(void) {
DHT11.attach(2); ställa in digital port 2 känna DHT11 input
tft.initR(INITR_BLACKTAB); initiera en ST7735S chip, svart flik
uint16_t tid = millis(); tidberäkningar Visa skiss runtime i sekunder
tft.fillScreen(ST7735_BLACK);
tid = millis() - tid.
tftPrintTest(); Ursprunglig introduktion text, ta bort kommentar för att visa på skärmen
tft.fillScreen(ST7735_BLACK); Tydlig skärm
*** Utskrift statiska objekt visas i inställningen för ogiltiga för att påskynda loop void ***
tft.fillScreen(ST7735_BLACK); Rensa skärmen
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(0,0);
TFT.println ("skiss har varit");
TFT.println ("kör för:");
tft.setCursor (40, 40);
tft.setTextColor(ST7735_WHITE);
TFT.println("seconds");
tft.drawLine (0, 50, tft.width ()-1, 50, ST7735_WHITE);
tft.setCursor (0, 60);
tft.setTextColor(ST7735_YELLOW);
TFT.println ("Temperature (C):");
tft.drawLine (0, 110, tft.width ()-1, 110, ST7735_WHITE);
tft.setTextColor(ST7735_WHITE);
TFT.println ("luftfuktighet (%):");
tft.setTextColor(ST7735_YELLOW);
TFT.println ("temperatur (F):");
tft.setTextColor(ST7735_YELLOW);
TFT.println ("temperatur (K):");
tft.setTextColor(ST7735_WHITE);
TFT.println ("Dew Point (C):");
tft.setTextColor(ST7735_WHITE);
TFT.println("DewPointFast(C):");
tft.setCursor(0,115);
tft.setTextColor(ST7735_YELLOW);
TFT.Print ("ljusstyrka");
}
void loop() {
tft.setCursor (50, 20);
tft.setTextSize(2); ställa in textstorleken för sekunder
tft.setTextColor (ST7735_BLUE, ST7735_BLACK); Ange färg i sekunder
TFT.Print(Millis() / 1000);
tft.setTextSize(1); ställa in textstorleken för alla data som kommer från DHT11
tft.setCursor (98, 60);
tft.setTextColor (ST7735_GREEN, ST7735_BLACK); Ange färg för alla data som kommer från DHT11
TFT.Print((float)DHT11.temperature,2);
tft.setCursor (98, 68);
TFT.Print((float)DHT11.humidity,2);
tft.setCursor (98, 76);
TFT.Print(DHT11.Fahrenheit(), 2);
tft.setCursor (98, 84);
TFT.Print(DHT11.Kelvin(), 1);
tft.setCursor (98, 92);
TFT.Print(DHT11.dewPoint(), 2);
tft.setCursor(98,100);
TFT.Print(DHT11.dewPointFast(), 2);
tft.setCursor(98,115);
int val = analogRead(ANALOG_IN); LÄS LJUSSENSOR VÄRDE
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK); Ange ljussensor data textfärg
TFT.Print (val, 1); SKRIVA UT LJUSSENSOR VÄRDE
TFT.Print("");
Delay(50); Vänta 50 ms mellan pingmeddelandena (ca 20 ping/SEK). 29ms bör vara den kortaste fördröjningen mellan pingar.
unsigned int oss = sonar.ping(); Skicka ping, ping tid i mikrosekunder (oss) att få.
tft.setCursor(0,130);
tft.setTextColor(ST7735_RED);
TFT.Print ("avstånd:");
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK);
TFT.Print(US / US_ROUNDTRIP_CM); Konvertera ping tid avstånd och skriva ut resultatet (0 = utanför visst avstånd sortiment, ingen ping echo)
tft.setTextColor(ST7735_RED,ST7735_BLACK);
TFT.Print ("cm");
Delay(50);
}
void tftPrintTest() {
tft.setTextWrap(false);
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 10);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
TFT.println("
Delay(500);
tft.setCursor (0, 60);
tft.setTextColor(ST7735_RED);
tft.setTextSize(2);
TFT.println("temperature");
tft.setTextColor(ST7735_YELLOW);
tft.setTextSize(2);
TFT.println("humidity");
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(2);
TFT.println("Monitor");
tft.setTextColor(ST7735_BLUE);
Delay(50);
}