TFTEtchASketch

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 ) ;
}


 /* 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); }