Arduino TFT için bu örnek, 2 potansiyometrenin gerekse bağlı olduğu için beyaz bir çizgi çiziyor. Anlık bir düğmeye basarsanız ekran silinir.
Gerekli Donanım Arduino Uno Arduino TFT ekran breadboard bağlantı teli iki adet 10 kilohm potansiyometre anlık anahtar 10 kilohm direnç
devre Gücü ve topraklamayı devre tahtasına gidiyor.
Potansiyometreleri breadboard üzerine seçilir. Onun tencerede bir tarafı toprağa, diğerini güce yaşıyor. Bir potansiyometrenin orta pimini A0'a, diğerini A1'e göre.
Breadboard'un ortasına bir anahtar koyun. Bir ucunu güce, şarj edilebilir ucunu Arduino dijital pim 2'ye göre. Aynı pimi 10 kilohm'luk bir çekme direnci ile toprağa dayalı
Ekranı breadboard'a bağlıdır. Ekranın yan tarafındaki küçük mavi sekmeli ve oklu üstbilgiler. Ekranın yönüne dikkat edin, bu görüntülerde baş aşağı.
BL ve + 5V pinlerini güce ve GND'yi toprağa çıkıyor. CS-LD'yi pin 10'a, DC 9 pinin, RESET pin 8'e, MOSI pin 11'e ve SCK'yı 13 pinine açar. Bir Leonardo kullanın farklı pinler kullanacaksınız. daha fazla ayrıntı için başlangıç sayfasına bakın.
Daha büyük sürüm için resimin üzerine tıklayınız
Kod Ekranı kullanmak için önce SPI ve TFT kitaplıklarını eklemeniz gerekir.
#include <SPI.h> #include <TFT.h>
[Kodu Al]
Ekranı Kontrol etmek Için kullanacağınız pinleri tanımlayın ettik TFTscreen
Adlı Bir TFT kütüphanesi Örneği oluşturun. Ekranla her çalışmayı bu nesneye çalışıruracaksınız.
#define cs 10 #define dc 9 #define rst 8 TFT TFT ekran = TFT ( cs , dc , rst ) ;
İmlecin x & yılı renklerde. Örnekte, ekranın ortasında başlar; ekran yüksekliğini ve genişliğini 2'ye bölerek çalışır. Silme anahtarınız için adlandırılmış bir pin içindir.
int xPos = LCD ekran. genişlik ( ) / 2 ; int yPos = LCD ekran. yükseklik ( ) / 2 ; int erasePin = 2 ;
setup()
, silme iğnesini giriş olarak bildirdikten sonra, görüntüleme ve ekranın arka planını seçin.
void setup ( ) { pinMode (erasePin, GİRİŞ); TFTscreen. begin ( ) ; TFTscreen. arka plan ( 0 , 0 , 0 ) ; }
Saksıların değerlerini okuyun ve daha küçük sayılara eşleyin.
void loop ( ) { int xValue = analogOkuma (A0); int yValue = analogRead (A1); xPos = xPos + ( harita ( xValue , 0 , 1023 , 2 , - 2 ) ) ; yPos = yPos + ( harita ( yValue , 0 , 1023 , - 2 , 2 ) ) ;
Birkaç if()
ifadesi ile ekran dışına taşınmasını engelleyebilirsiniz.
içerir ( xPos > 159 ) { ( xPos = 159 ) ; } içerir ( xPos < 0 ) { ( xPos = 0 ) ; } içerir ( yPos > 127 ) { ( yPos = 127 ) ; } içerir ( yPos < 0 ) { ( yPos = 0 ) ; } TFTscreen. inme ( 255 , 255 , 255 ) ; TFTscreen. nokta ( xPos , yPos ) ;
Son olarak, düğmeyi kontrol edin. Basılıysa ve HIGH
, ekran background()
ekranında.
if ( digitalRead ( erasePin ) == YÜKSEK ) { TFTscreen. arka plan ( 0 , 0 , 0 ) ; } gecikme ( 33 ) ; }
Çizimin listesinde aşağıdakidır:
/ * TFT EtchASketch Arduino ekranı için bu örnek beyaz bir nokta çiziyor 2 potansiyometrenin değerlerine dayanarak GLCD üzerinde. Ekranı temizlemek için, pim 2'ye bağlı bir düğmeye basın. Bu örnek kod kamu malıdır. 15 Nisan 2013 tarafından Scott Fitzgerald tarafından oluşturuldu http: egitim.aspx e = TFTEtchASketch * / #include <TFT.h> // Arduino LCD kütüphanesi #include <SPI.h> // Uno için pin tanımı #define cs 10 #define dc 9 #define rst 8 // Leonardo için pin tanımı // #define cs 7 // #define dc 0 // #definci rst 1 TFT TFT ekran = TFT ( cs , dc , rst ) ; // imlecin başlangıç konumu int xPos = TFT ekran. genişlik ( ) / 2 ; int yPos = TFTekran. yükseklik ( ) / 2 ; // silme anahtarının bağlı olduğu pimi int erasePin = 2 ; void setup ( ) { // girişleri bildir pinMode (erasePin, GİRİŞ); // ekranı başlat TFTscreen. begin ( ) ; // arka planı siyah yap TFTscreen. arka plan ( 0 , 0 , 0 ) ; } void loop ( ) { // A0 ve A1'deki potansiyometreleri okuyun int xValue = analogOkuma (A0); int yValue = analogRead (A1); // güncel eşleyin ve konumu izleyineyin xPos = xPos + ( harita ( xValue , 0 , 1023 , 2 , - 2 ) ) ; yPos = yPos + ( harita ( yValue , 0 , 1023 , - 2 , 2 ) ) ; // noktanın ekran kenarlarından geçmesine izin verme içerir ( xPos > 159 ) { ( xPos = 159 ) ; } içerir ( xPos < 0 ) { ( xPos = 0 ) ; } içerir ( yPos > 127 ) { ( yPos = 127 ) ; } içerir ( yPos < 0 ) { ( yPos = 0 ) ; } // noktayı çiz TFTscreen. inme ( 255 , 255 , 255 ) ; TFTscreen. nokta ( xPos , yPos ) ; // raptiyenin değerini okuyun ve kaydedinrsa ekranı silin if ( digitalRead ( erasePin ) == YÜKSEK ) { TFTscreen. arka plan ( 0 , 0 , 0 ) ; } gecikme ( 33 ) ; }
Kodu Kopyala /* TFT EtchASketch This example for the Arduino screen draws a white point on the GLCD based on the values of 2 potentiometers. To clear the screen, press a button attached to pin 2. This example code is in the public domain. Created 15 April 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/TFTEtchASketch */ #include // Arduino LCD library #include // pin definition for the Uno #define cs 10 #define dc 9 #define rst 8 // pin definition for the Leonardo // #define cs 7 // #define dc 0 // #define rst 1 TFT TFTscreen = TFT(cs, dc, rst); // initial position of the cursor int xPos = TFTscreen.width() / 2; int yPos = TFTscreen.height() / 2; // pin the erase switch is connected to int erasePin = 2; void setup() { // declare inputs pinMode(erasePin, INPUT); // initialize the screen TFTscreen.begin(); // make the background black TFTscreen.background(0, 0, 0); } void loop() { // read the potentiometers on A0 and A1 int xValue = analogRead(A0); int yValue = analogRead(A1); // map the values and update the position xPos = xPos + (map(xValue, 0, 1023, 2, -2)); yPos = yPos + (map(yValue, 0, 1023, -2, 2)); // don't let the point go past the screen edges if (xPos > 159) { (xPos = 159); } if (xPos < 0) { (xPos = 0); } if (yPos > 127) { (yPos = 127); } if (yPos < 0) { (yPos = 0); } // draw the point TFTscreen.stroke(255, 255, 255); TFTscreen.point(xPos, yPos); // read the value of the pin, and erase the screen if pressed if (digitalRead(erasePin) == HIGH) { TFTscreen.background(0, 0, 0); } delay(33); }
/* TFT EtchASketch This example for the Arduino screen draws a white point on the GLCD based on the values of 2 potentiometers. To clear the screen, press a button attached to pin 2. This example code is in the public domain. Created 15 April 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/TFTEtchASketch */ #include // Arduino LCD library #include // pin definition for the Uno #define cs 10 #define dc 9 #define rst 8 // pin definition for the Leonardo // #define cs 7 // #define dc 0 // #define rst 1 TFT TFTscreen = TFT(cs, dc, rst); // initial position of the cursor int xPos = TFTscreen.width() / 2; int yPos = TFTscreen.height() / 2; // pin the erase switch is connected to int erasePin = 2; void setup() { // declare inputs pinMode(erasePin, INPUT); // initialize the screen TFTscreen.begin(); // make the background black TFTscreen.background(0, 0, 0); } void loop() { // read the potentiometers on A0 and A1 int xValue = analogRead(A0); int yValue = analogRead(A1); // map the values and update the position xPos = xPos + (map(xValue, 0, 1023, 2, -2)); yPos = yPos + (map(yValue, 0, 1023, -2, 2)); // don't let the point go past the screen edges if (xPos > 159) { (xPos = 159); } if (xPos < 0) { (xPos = 0); } if (yPos > 127) { (yPos = 127); } if (yPos < 0) { (yPos = 0); } // draw the point TFTscreen.stroke(255, 255, 255); TFTscreen.point(xPos, yPos); // read the value of the pin, and erase the screen if pressed if (digitalRead(erasePin) == HIGH) { TFTscreen.background(0, 0, 0); } delay(33); }
/* TFT EtchASketch This example for the Arduino screen draws a white point on the GLCD based on the values of 2 potentiometers. To clear the screen, press a button attached to pin 2. This example code is in the public domain. Created 15 April 2013 by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/TFTEtchASketch */ #include // Arduino LCD library #include // pin definition for the Uno #define cs 10 #define dc 9 #define rst 8 // pin definition for the Leonardo // #define cs 7 // #define dc 0 // #define rst 1 TFT TFTscreen = TFT(cs, dc, rst); // initial position of the cursor int xPos = TFTscreen.width() / 2; int yPos = TFTscreen.height() / 2; // pin the erase switch is connected to int erasePin = 2; void setup() { // declare inputs pinMode(erasePin, INPUT); // initialize the screen TFTscreen.begin(); // make the background black TFTscreen.background(0, 0, 0); } void loop() { // read the potentiometers on A0 and A1 int xValue = analogRead(A0); int yValue = analogRead(A1); // map the values and update the position xPos = xPos + (map(xValue, 0, 1023, 2, -2)); yPos = yPos + (map(yValue, 0, 1023, -2, 2)); // don't let the point go past the screen edges if (xPos > 159) { (xPos = 159); } if (xPos < 0) { (xPos = 0); } if (yPos > 127) { (yPos = 127); } if (yPos < 0) { (yPos = 0); } // draw the point TFTscreen.stroke(255, 255, 255); TFTscreen.point(xPos, yPos); // read the value of the pin, and erase the screen if pressed if (digitalRead(erasePin) == HIGH) { TFTscreen.background(0, 0, 0); } delay(33); }