Étape 10 : Dernier flux intérieur recouvert de génération de code (esquisse). Tourne plus vite, regarde mieux !
Cette esquisse a été modifiée pour exécuter la boucle plus vite... taux de rafraîchissement est d’environ 1,5 secondes.
Copiez le schéma ci-dessous et le coller dans l’IDE Arduino vérifier et exécuter le programme.
cette esquisse a été créée à l’aide de code à partir de croquis échantillon adafruit, virtuabotix et newPing
#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8
#define ANALOG_IN 0 / / pour les CD capteur de lumière
#define TRIGGER_PIN 12 / / goupille de Arduino lié à déclencher la broche sur le capteur à ultrasons.
#define ECHO_PIN 11 / / goupille de Arduino liée à la broche sur le capteur à ultrasons d’écho.
#define MAX_DISTANCE 200 / / distance maximale que nous voulons faire un ping pour (en centimètres). Distance maximum sensor est évalué à 400-500cm.
#include < Adafruit_GFX.h > / / bibliothèque graphique de base
#include < Adafruit_ST7735.h > / / spécifiques au matériel bibliothèque
#include < SPI.h >
#include < dht11.h > / / DHT11 temp bibliothèque de capteur d’humidité
#include < NewPing.h > / / capteur à ultrasons S04 bibliothèque
dht11 DHT11 ;
Tft Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, mosi, sclk, rst) ;
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE) ; NewPing configuration des broches et distance maximale.
void setup(void) {}
DHT11.Attach(2) ; définir le port numérique 2 à ressentir DHT11 entrée
tft.initR(INITR_BLACKTAB) ; initialiser un onglet de puce, noire ST7735S
temps d’uint16_t = millis() ; calcul de temps pour afficher les croquis DUREE en secondes
tft.fillScreen(ST7735_BLACK) ;
temps = millis() - temps ;
tftPrintTest() ; Premier texte d’introduction, décommentez pour afficher à l’écran
tft.fillScreen(ST7735_BLACK) ; Efface l’écran
*** Impression éléments statiques exposées dans le programme d’installation Sub afin d’accélérer la boucle vide ***
tft.fillScreen(ST7735_BLACK) ; effacer l’écran
tft.setTextColor(ST7735_WHITE) ;
tft.setTextSize(1) ;
tft.setCursor(0,0) ;
TFT.println (« esquisse a été ») ;
TFT.println ("en cours d’exécution pour:") ;
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 ("humidité (%):") ;
tft.setTextColor(ST7735_YELLOW) ;
TFT.println ("température (F):") ;
tft.setTextColor(ST7735_YELLOW) ;
TFT.println ("température (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 (« intensité lumineuse") ;
}
void loop() {}
tft.setCursor (50, 20) ;
tft.setTextSize(2) ; définir la taille du texte pour les secondes
tft.setTextColor (ST7735_BLUE, ST7735_BLACK) ; définir la couleur des secondes
TFT.Print(Millis() / 1000) ;
tft.setTextSize(1) ; Définissez la taille du texte à toutes les données venant de DHT11
tft.setCursor (98, 60) ;
tft.setTextColor (ST7735_GREEN, ST7735_BLACK) ; la valeur de couleur pour toutes les données venant de 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) ; VALEUR DE LECTURE CAPTEUR DE LUMIÈRE
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK) ; Définissez la couleur de texte des données capteur de lumière
TFT.Print (val, 1) ; IMPRIMER LA VALEUR DU CAPTEUR DE LUMIÈRE
TFT.Print("") ;
Delay(50) ; Attendre 50ms entre les pings (environ 20 pings/sec). 29ms devrait être le délai le plus court entre les pings.
unsigned int nous = sonar.ping() ; Envoyer des ping, ping temps en microsecondes (nous).
tft.setCursor(0,130) ;
tft.setTextColor(ST7735_RED) ;
TFT.Print ("Distance:") ;
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK) ;
TFT.Print(US / US_ROUNDTRIP_CM) ; Convertir les temps de ping à distance et d’imprimer le résultat (0 = distance définie hors plage, aucun écho de ping)
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) ;
}