Étape 2: Code
Le code suivant est toujours un travail en cours, mais il est fonctionnel. Faites-nous savoir si vous avez des problèmes ou avez des suggestions pour des améliorations.
/*
Exemple de texte Arduino TFT
Cet exemple montre comment dessiner du texte le
TFT avec un Arduino.
Cet exemple de code est dans le domaine public
Créé le 15 avril 2013 par Scott Fitzgerald
http://Arduino.cc/en/Tutorial/TFTDisplayText
Modded par Steve Spence de http://arduinotronics.blogspot.com
*/
#include « SPI.h »
#include « ST7735.h »
Broches SCLK et MOSI sont fixés dans le matériel et la broche 10 (ou 53)
doit être une sortie
#define sclk 13 / / pour les MEGAs utilisent broche 52
#define mosi 11 / / pour les MEGAs utilisent NIP 51
#define cs 10 / / pour MEGAs, vous voulez probablement c’est broche 53
#define dc 9
#define rst 8 / / vous pouvez également vous connecter cela à la réinitialisation de l’Arduino
définition de broche pour le Leonardo
#define cs 7
#define dc 0
#define rst 1
Créez une instance de la bibliothèque
TFT TFTscreen = TFT (cs, dc, rst) ;
Tableau de caractères à imprimer à l’écran
char tempPrintout [6] ;
char humPrintout [6] ;
Exemple de test de croquis pour différents capteurs d’humidité/température DHT
Rédigé par ladyada, domaine public
Conversion Fahrenheit ajoutée par Steve Spence, http://arduinotronics.blogspot.com
#include « DHT.h » / / https://learn.adafruit.com/dht/downloads
#define DHTPIN 2 / / quelle broche nous sommes connectés à
Décommentez peu importe le type que vous utilisez !
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)
Connecter la broche + (celle du milieu) du capteur à + 5V
Relier la broche S (à droite) du capteur pour tout ce qui est votre DHTPIN
Relier la broche - (à gauche) du capteur au sol
Connecter 10 k résistance entre S et +
int cycleTime = 2000 ;
DHT dht (DHTPIN, DHTTYPE) ;
flotteur h ;
flotteur t ;
void setup() {}
Ajoutez cette ligne au début de chaque croquis qui utilise le GLCD :
TFTscreen.begin() ;
effacer l’écran avec un fond noir
TFTscreen.background (0, 0, 0) ;
écrivez le texte statique à l’écran
Définissez la couleur de la police à blanc
TFTscreen.stroke(255,255,255) ;
définir la taille de police
TFTscreen.setTextSize(2) ;
écrire le texte dans le coin supérieur gauche de l’écran
TFTscreen.text ("Temp (F)", 0, 0) ;
écrire le texte dans le coin supérieur gauche de l’écran
TFTscreen.text ("humidité (%)", 0,60) ;
Ste très grand pour la boucle de la taille de la police
TFTscreen.setTextSize(4) ;
DHT.Begin() ;
}
void loop() {}
Lire la valeur de la sonde de temperature/HUMIDITE sur D2
Lecture de température ou humidité prend environ 250 millisecondes !
Lectures du capteur peuvent également être jusqu'à 2 secondes « ancienne » (c’est un capteur très lent)
h = dht.readHumidity() ;
t = dht.readTemperature() ;
t = (t * 1,8) + 32 ; C à la conversion de F
String tempVal = doubleToString (t, 2) ;
String humVal = doubleToString (h, 0) ;
String sensorVal = String(1.234) ;
convertir la lecture en un tableau de char
tempVal.toCharArray (tempPrintout, 6) ;
humVal.toCharArray (humPrintout, 6) ;
Définissez la couleur de police
TFTscreen.stroke(255,255,255) ;
imprimer la valeur de la sonde
TFTscreen.text (tempPrintout, 0, 25) ;
TFTscreen.text (humPrintout, 0, 85) ;
Attendez un moment
Delay(cycleTime) ;
effacer le texte que vous venez d’écrire
TFTscreen.stroke(0,0,0) ;
TFTscreen.text (tempPrintout, 0, 25) ;
TFTscreen.text (humPrintout, 0, 85) ;
}
Tours, vers le bas (par troncature de conversion entier intermédiaire)
String doubleToString (double entrée, int decimalPlaces) {}
{if(decimalPlaces!=0)}
Chaîne chaîne = String((int)(input*pow(10,decimalPlaces))) ;
if(ABS(Input) < 1) {}
if(Input>0)
String = « 0 » + string ;
d’autre if(input<0)
string = string.substring(0,1)+"0"+string.substring(1) ;
}
return string.substring(0,string.length()-decimalPlaces) + "." + string.substring(string.length()-decimalPlaces) ;
}
else {}
Return String((int)input) ;
}
}