Stap 2: Code
De volgende code is nog steeds een work in progress, maar het is functioneel. Laat het ons weten als u problemen of suggesties voor verbeteringen.
/*
Voorbeeld van de tekst van de Arduino TFT
In het volgende voorbeeld ziet u hoe tekst worden getekend op de
TFT met een Arduino.
Deze voorbeeldcode is in het publieke domein
Gemaakt van 15 April 2013 door Scott Fitzgerald
http://Arduino.CC/en/tutorial/TFTDisplayText
Modded door Steve Spence van http://arduinotronics.blogspot.com
*/
#include "SPI.h"
#include "ST7735.h"
PIN SCLK en MOSI zijn opgelost in hardware, en pin 10 (of 53)
moet een vermogen
#define sclk 13 / / voor MEGAs gebruik pin 52
#define mosi 11 / / voor MEGAs gebruik pin 51
#define cs 10 / / MEGAs u waarschijnlijk wilt dit als pin 53
#define dc 9
#define rst 8 / / u kunt dit ook aansluiten op de Arduino reset
PIN definitie voor het Leonardo
#define cs 7
#define dc 0
#define rst 1
Maak een instantie van de bibliotheek
TFT TFTscreen = TFT (cs, dc, rst);
char matrix af te drukken op het scherm
char tempPrintout [6];
char humPrintout [6];
Voorbeeld testen schets voor diverse DHT luchtvochtigheid/temperatuur sensoren
Geschreven door ladyada, openbaar
Fahrenheit conversie toegevoegd door Steve Spence, http://arduinotronics.blogspot.com
#include "DHT.h" / / https://learn.adafruit.com/dht/downloads
#define DHTPIN 2 / / welke pin wij verbonden bent met
Uncomment welke type u!
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)
Aansluiten pin + (midden) van de sensor + 5V
Verbinden met pin S (aan de rechterkant) van de sensor wat uw DHTPIN is
Pin - (aan de linkerkant) van de sensor verbinden met grond
Verbinding maken met 10 k ohm weerstand tussen S en +
int cycleTime = 2000;
DHT dht (DHTPIN, DHTTYPE);
float h;
float t;
VOID Setup {}
Zet deze lijn aan het begin van elke schets die gebruikmaakt van de GLCD:
TFTscreen.begin();
Schakel het scherm met een zwarte achtergrond
TFTscreen.background (0, 0, 0);
de statische tekst op het scherm schrijven
kleur van het lettertype ingesteld op wit
TFTscreen.stroke(255,255,255);
de lettergrootte instellen
TFTscreen.setTextSize(2);
schrijven van de tekst naar de linker bovenhoek van het scherm
TFTscreen.text ('Temp (F)', 0, 0);
schrijven van de tekst naar de linker bovenhoek van het scherm
TFTscreen.text ("vochtigheid (%)", 0,60);
ste groot voor de lus op de grootte van het lettertype
TFTscreen.setTextSize(4);
DHT.begin();
}
void loop {}
Luiden naar de waarde van de sensor temp/vochtigheid op D2
Lezing temperatuur of vochtigheid neemt ongeveer 250 milliseconden!
Sensor lezingen kan maximaal 2 seconden 'oude' (het is een zeer langzame sensor)
h = dht.readHumidity();
t = dht.readTemperature();
t = (t * 1.8) + 32; C naar F conversie
TempVal koord = doubleToString (v, 2);
HumVal koord = doubleToString (h, 0);
SensorVal koord = String(1.234);
de lezing omzetten in een char-matrix
tempVal.toCharArray (tempPrintout, 6);
humVal.toCharArray (humPrintout, 6);
de tekstkleur instellen
TFTscreen.stroke(255,255,255);
afdrukken van de sensor-waarde
TFTscreen.text (tempPrintout, 0, 25);
TFTscreen.text (humPrintout, 0, 85);
wachten op een moment
delay(cycleTime);
wissen van de tekst die u enkel schreef
TFTscreen.stroke(0,0,0);
TFTscreen.text (tempPrintout, 0, 25);
TFTscreen.text (humPrintout, 0, 85);
}
Rondes neer (via intermediaire integer conversie truncatie)
String doubleToString (dubbele invoer, int decimalPlaces) {}
if(decimalPlaces!=0) {}
String string = String((int)(input*pow(10,decimalPlaces)));
if(ABS(input) < 1) {}
if(input>0)
tekenreeks = '0' + koord;
anders if(input<0)
tekenreeks = string.substring(0,1)+"0"+string.substring(1);
}
keren string.substring(0,string.length()-decimalPlaces) + "." + string.substring(string.length()-decimalPlaces);
}
else {}
Return String((int)input);
}
}