Nybörjare Arduino - med en 1,8 tums TFT-skärm (3 / 3 steg)

Steg 3: Ladda upp koden och kör




Måste du installera två bibliotek för att driva skärmen:

  1. ST7735 bibliotek
  2. Adafruit GFX bibliotek

Hämta varje bibliotek och packa upp mapparna. Döp dem till "Adafruit_ST7735" och "Adafruit_GFX" och placera varje mapp inuti mappen Arduino bibliotek. Jag har bifogat en skärmdump av biblioteken i rätt mapp. En gång installerat, är du redo att driva skärmen! Inuti Adafruit ST7735 är bibliotek en fil som heter graphicstest.ino som du kan ladda upp till din Arduino och det kommer att köras genom ett antal funktioner som ritar objekt på skärmen. Denna fil behöver dock vissa förändringar för att anpassa stiften i layouten.

Alternativt, du kan kopiera/klistra in koden nedan i Arduino IDE och ladda upp den. Detta är en modifierad version av Adafruit's graphictest.ino, den primära skillnaden är tilldelningen av stiften. Jag har också spelat med koden lite för att se vilken typ av funktioner finns. Låt mig veta om du upplever några problem med koden. Det fungerade bra för mig.

/***************************************************
Det här är ett bibliotek för Adafruit 1.8" SPI displayen. Detta bibliotek har
ändrats från den ursprungliga versionen att arbeta med en icke-Adafruit
1.8 i visas.

Detta bibliotek fungerar med det Adafruit 1.8" TFT Breakout w/SD-kortet
---> http://www.adafruit.com/products/358

1.8" TFT sköld
---> http://www.adafruit.com/products/358

1,44" TFT utbrytning
---> http://www.adafruit.com/products/358

samt Adafruit raw 1.8" TFT-skärm
---> http://www.adafruit.com/products/358

Kolla in länkarna ovan för våra tutorials och kopplingsscheman
Dessa skärmar använder SPI för att kommunicera, är 4 eller 5 stift skyldiga att
gränssnitt (RST är tillval)
Adafruit investerar tid och resurser att tillhandahålla detta öppen källkod,
Vänligen stödja Adafruit och öppen hårdvara genom att köpa
produkter från Adafruit!

Skrivet av Limor stekt/Ladyada för Adafruit industrier.
MIT license, alla texten ovan måste inkluderas i en omfördelning
****************************************************/

#include < Adafruit_GFX.h > / / Core grafik bibliotek
#include < Adafruit_ST7735.h > / / maskinvaruspecifika bibliotek
#include < SPI.h >

För utbrytning, kan du använda några 2 eller 3 stift
Dessa stift fungerar också för 1.8" TFT shield
#define TFT_CS 9
#define TFT_RST 7 / / du kan också ansluta detta till Arduino Återställ
i vilket fall, som detta #define stift till 0!
#define TFT_DC 8

Alternativ 1 (rekommenderas): måste använda hårdvara SPI stiften
(för UNO som sclk = 13 och sid = 11) och stift 10 måste vara
en utgång. Detta är mycket snabbare - också krävs om du vill
för att använda microSD kort (se bilden ritning exempel)
Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_RST);

Alternativ 2: använda några stift men lite långsammare!
#define TFT_SCLK 13 / / ange att dessa ska vara oavsett pins som du!
#define TFT_MOSI 11 / / ange att dessa ska vara oavsett pins som du!
Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);

flyta p = 3.1415926;

void setup(void) {
Serial.BEGIN(9600);
Serial.Print ("Hej! ST7735 TFT-Test").

Använd denna initierare om du använder en 1.8" TFT
tft.initR(INITR_BLACKTAB); initiera en ST7735S chip, svart flik

Använd denna initierare (avkommentera) om du använder en 1,44" TFT
tft.initR(INITR_144GREENTAB); initiera en ST7735S chip, svart flik

Serial.println("Initialized");

uint16_t tid = millis();
tft.fillScreen(ST7735_BLACK);
tid = millis() - tid.

Serial.println (tid, DEC);
Delay(500);

stort block av text
tft.fillScreen(ST7735_BLACK);
testdrawtext (5, 45, "theblckwlf presenterar", ST7735_WHITE);
Delay(2000);

testdrawtext (15, 65, "microscreen", ST7735_WHITE);
testdrawtext (10, 75, "1,8 i TFT-skärm", ST7735_WHITE);
Delay(4000);
tft.fillScreen(ST7735_BLUE);
tft.setTextSize(2);
tft.fillScreen(ST7735_WHITE);
tft.setTextSize(1);
testdrawtext (5, 65, "start", ST7735_BLACK);
testdrawtext (5, 75, "diagnostiska test..", ST7735_BLACK);
Delay(1000);

tft.fillScreen(ST7735_WHITE);
testdrawScreenData();
Delay(3000);

tft.setTextSize(2);

drawTestGrid(10,10);
tft.setCursor (5, 40);
TFT.println ("10 x 10 Grid");
Delay(2000);
tft.setCursor (15, 40);
drawTestGrid(5,5);
TFT.println ("5 x 5 Grid");
Delay(2000);

tft.fillScreen(ST7735_WHITE);
tft.setTextSize(1);
tft.drawPixel (tft.width () / 2, (tft.height) / 2, ST7735_BLACK);
tft.setCursor (15, (tft.height()/2)-15);
TFT.Print ("Center");
TFT.Print(TFT.width()/2);
TFT.Print (",");
TFT.println(TFT.height()/2);
tft.drawCircle (tft.width () / 2, (tft.height) / 2, 5, ST7735_BLACK);
Delay(2000);

TFT funktionen print!
tftPrintTest();
Delay(4000);

en pixel
tft.drawPixel (tft.width () / 2, (tft.height) / 2, ST7735_GREEN);
Delay(500);

linje draw test
testlines(ST7735_YELLOW);
Delay(500);

optimerad linjer
testfastlines (ST7735_RED, ST7735_BLUE);
Delay(500);

testdrawrects(ST7735_GREEN);
Delay(500);

testfillrects (ST7735_YELLOW, ST7735_MAGENTA);
Delay(500);

tft.fillScreen(ST7735_BLACK);
testfillcircles (5, ST7735_BLUE).
testdrawcircles (5, ST7735_WHITE).
Delay(500);

för (int jag = 0; jag < 5; i ++) {
testroundrects();
}
Delay(500);

testtriangles();
Delay(500);

mediabuttons();
Delay(500);

Serial.println("Done");
Delay(1000);
}

void loop() {
tft.invertDisplay(true);
Delay(500);
tft.invertDisplay(false);
Delay(500);
}

void testlines (uint16_t färg) {
tft.fillScreen(ST7735_BLACK);
för (int16_t x = 0; x < tft.width(); x+= 6) {
tft.drawLine (0, 0, x, tft.height ()-1, färg);
}
för (int16_t y = 0; y < tft.height(); y + = 6) {
tft.drawLine (0, 0, tft.width ()-1, y, färg);
}

tft.fillScreen(ST7735_BLACK);
för (int16_t x = 0; x < tft.width(); x+= 6) {
tft.drawLine (tft.width ()-1, 0, x, tft.height ()-1, färg);
}
för (int16_t y = 0; y < tft.height(); y + = 6) {
tft.drawLine (tft.width ()-1, 0, 0, y, färg);
}

tft.fillScreen(ST7735_BLACK);
för (int16_t x = 0; x < tft.width(); x+= 6) {
tft.drawLine (0, tft.height ()-1, x, 0, färg);
}
för (int16_t y = 0; y < tft.height(); y + = 6) {
tft.drawLine (0, tft.height ()-1, tft.width ()-1, y, färg);
}

tft.fillScreen(ST7735_BLACK);
för (int16_t x = 0; x < tft.width(); x+= 6) {
tft.drawLine (tft.width ()-1, tft.height ()-1, x, 0, färg);
}
för (int16_t y = 0; y < tft.height(); y + = 6) {
tft.drawLine (tft.width ()-1, tft.height ()-1, 0, y, färg);
}
}

void drawTestGrid (int hor, int vert) {
tft.fillScreen(ST7735_WHITE);
Rita lodräta linjer
för (int16_t x = 0; x < tft.width(); x+= vert) {
tft.drawFastVLine (x, 0, tft.height(), ST7735_RED);
}
för (int16_t y = 0; y < tft.height(); y += hor) {
tft.drawFastHLine (0, y, tft.width(), ST7735_BLACK);
}
}

void testdrawtext (int wid, int hei, char * text, uint16_t färg) {
tft.setCursor (wid, hei);
tft.setTextColor(color);
tft.setTextWrap(true);
TFT.Print(text);
}

void testfastlines (uint16_t color1, uint16_t color2) {
tft.fillScreen(ST7735_BLACK);
för (int16_t y = 0; y < tft.height(); y += 5) {
tft.drawFastHLine (0, y, tft.width(), color1);
}
för (int16_t x = 0; x < tft.width(); x+= 5) {
tft.drawFastVLine (x, 0, tft.height(), color2);
}
}

void testdrawrects (uint16_t färg) {
tft.fillScreen(ST7735_BLACK);
för (int16_t x = 0; x < tft.width(); x+= 6) {
tft.drawRect (tft.width () / 2 - x / 2, (tft.height) / 2 - x / 2, x, x, färg);
}
}

void testfillrects (uint16_t color1, uint16_t color2) {
tft.fillScreen(ST7735_BLACK);
för (int16_t x=tft.width ()-1 x > 6; x-= 6) {
tft.fillRect (tft.width () / 2 - x / 2, (tft.height) / 2 - x / 2, x, x, color1);
tft.drawRect (tft.width () / 2 - x / 2, (tft.height) / 2 - x / 2, x, x, color2);
}
}

void testfillcircles (uint8_t radie, uint16_t färg) {
för (int16_t x = radie; x < tft.width(); x+= radie * 2) {
för (int16_t y = radie; y < tft.height(); y += radie * 2) {
tft.fillCircle (x, y, radie, färg);
}
}
}

void testdrawcircles (uint8_t radie, uint16_t färg) {
för (int16_t x = 0; x < tft.width () + radie, x+= radie * 2) {
för (int16_t y = 0; y < tft.height () + radie; y += radie * 2) {
tft.drawCircle (x, y, radie, färg);
}
}
}

void testtriangles() {
tft.fillScreen(ST7735_BLACK);
int färg = 0xF800;
int t;
int w = tft.width () / 2;
int x = tft.height ()-1;
int y = 0;
int z = tft.width();
för (t = 0; t < = 15; t += 1) {
tft.drawTriangle (w, y, y, x, z, x, färg);
x-= 4.
y + = 4.
z-= 4.
färg + = 100.
}
}

void testroundrects() {
tft.fillScreen(ST7735_BLACK);
int färg = 100;
int i;
int t;
för (t = 0; t < = 4; t += 1) {
int x = 0;
int y = 0;
int w = tft.width ()-2;
int h = tft.height ()-2;
för (jag = 0; jag < = 16; jag + = 1) {
tft.drawRoundRect (x, y, w, h, 5, färg);
x+= 2.
y + = 3.
w-= 4.
h-= 6.
färg + = 1100;
}
färg + = 100.
}
}
void testdrawScreenData() {
tft.setCursor(0,20);
TFT.println ("skärmen Data:");
TFT.Print ("skärmens bredd:");
TFT.println(TFT.width());
TFT.Print ("skärmhöjd:");
TFT.println(TFT.height());

}
void testdrawCountdown() {
tft.setTextWrap(true);
tft.fillScreen(ST7735_RED);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(6);
tft.setCursor (30, 50);
för (int jag = 10; Jag > 0; i--) {
TFT.println(i);
Delay(1000);
tft.setCursor (50, 50);
tft.fillScreen(ST7735_RED);
}
}

void circlePass() {
tft.fillScreen(ST7735_BLACK);
testfillcircles (5, ST7735_GREEN).
Delay(1000);
testfillcircles (4, ST7735_RED).
Delay(1000);
testfillcircles (2, ST7735_BLACK).
testfillcircles (3, ST7735_YELLOW).
Delay(500);
}

void tftPrintTest() {
tft.setTextWrap(false);
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 30);
tft.setTextColor(ST7735_RED);
tft.setTextSize(1);
TFT.println ("Hello World!");
tft.setTextColor(ST7735_YELLOW);
tft.setTextSize(2);
TFT.println ("Hello World!");
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(3);
TFT.println ("Hello World!");
tft.setTextColor(ST7735_BLUE);
tft.setTextSize(4);
TFT.Print(1234.567);
Delay(1500);
tft.setCursor (0, 0);
tft.fillScreen(ST7735_BLACK);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(0);
TFT.println ("Hello World!");
tft.setTextSize(1);
tft.setTextColor(ST7735_GREEN);
TFT.Print (p, 6);
TFT.println ("vill ha pi?");
TFT.println("");
TFT.Print (8675309, HEX); skriva 8,675,309 ut i HEX!
TFT.println ("Print HEX!");
TFT.println("");
tft.setTextColor(ST7735_WHITE);
TFT.println ("skiss har varit");
TFT.println ("kör för:");
tft.setTextColor(ST7735_MAGENTA);
TFT.Print(Millis() / 1000);
tft.setTextColor(ST7735_WHITE);
TFT.Print ("sekunder.");
}

void mediabuttons() {
spela
tft.fillScreen(ST7735_BLACK);
tft.fillRoundRect (25, 10, 78, 60, 8, ST7735_WHITE);
tft.fillTriangle (42, 20, 42, 60, 90, 40, ST7735_RED);
Delay(500);
pausa
tft.fillRoundRect (25, 90, 78, 60, 8, ST7735_WHITE);
tft.fillRoundRect (39 98, 20, 45, 5, ST7735_GREEN);
tft.fillRoundRect (69 98, 20, 45, 5, ST7735_GREEN);
Delay(500);
spela färg
tft.fillTriangle (42, 20, 42, 60, 90, 40, ST7735_BLUE);
Delay(50);
Pausa färg
tft.fillRoundRect (39 98, 20, 45, 5, ST7735_RED);
tft.fillRoundRect (69 98, 20, 45, 5, ST7735_RED);
spela färg
tft.fillTriangle (42, 20, 42, 60, 90, 40, ST7735_GREEN);
}

Det är allt det finns till den. Min video för detta steg visar hur förväntade displayen ska se ut om du kör koden ovan.

Njut av din nya display!

Se Steg
Relaterade Ämnen

Arduino för nybörjare, nu med data plottning, kontrolleras av Android, utan kodning, ingen lödning behövs.

IntroductionDetta instructable visar dig hur du kan läsa och skriva digital stiften på din Arduino Uno och läsa värden från de analoga pins alla styrs från din Android mobil utan att göra någon kodning. Hela projektet är plug and play. Ingen lödning...

En lätt ardunino kompatibel BLE nybörjare ombord med iOS SDK

Detta instructable visar dig hur du ansluter mellan en arduino kompatibla ombord och iOS enheten bara enkelt med en bräda jag göra nyligen som namnet "Azufier". Besök här för mer informationSteg 1: Vad behöver du En micro-b USB-kabelAzufier styr...

Trafikljus [nybörjare Arduino projekt]

detta är en nybörjare projekt för Arduino. Jag använder Arduino Uno men bör fungera med liten eller ingen förändring på andra arduino modeller.Ställa in hårdvaran är mycket enkelt. Detta projekt är mer av ett verktyg för att lära sig hur man programm...

En nybörjare Arduino projekt: Tri Colour by en Bi färg LED

Hej och Välkommen till min 7th instructable. Denna gång jag leker med min nya TRduino duemilanove. Faktiskt det är en klon av Arduino görs av Thinnkware och har ATMega 328.Arduino är en mycket bra programmerare och det är också öppen källkod (sak jag...

Nybörjare Arduino

Arduino är en fickformat dator (också kallade en "microcontroller") som du kan programmera och använda att kontrollera kretsar. Det interagerar med utanför ordet genom sensorer, lysdioder, motorer, högtalare... även internet. Detta gör det en fl...

Sömnad för nybörjare - fodrad, med dragkedja förändring handväska

det finns ingen synålar i detta projekt! Min hand sömnad färdigheter är... begränsad... så jag tenderar att undvika att göra det så mycket som möjligt.Detta mönster gör en förändring handväska som är 4 "x 3 1/4" (10 x 8 cm). Genom att öka storle...

Blinky dumskalle (nybörjare Arduino projekt)

Detta är bara en kul liten tillägg till ditt skrivbord.Tack till min syster för att göra papper kub och hår!Steg 1: Samla dina leveranser.Steg 2: Rita en rektangel som är 2 1/2 X 10 "Steg 3: Rita linjer som är 2 1/2 apart.Steg 4: Dra 2 mer rutor och...

Speedball utrustning för nybörjare

Okej, efter att ha sett mycket få speedball i'bles, och de som inte är här mycket bra, har jag beslutat att göra min egen.Nu det första du bör veta är att speedball skiljer sig mycket från woodsball. Woodsball är inte så snabbt tempo, och enligt min...

Hur man spelar räknar stjärnor på Piano - enkelt för nybörjare

Räknar stjärnor - OneRepublic - enkel Piano handledning för nybörjare.Lär dig att spela din första låt på piano: nybörjare kan lära sig den här låten på en timme. Du kommer att spela med båda händerna men vänstra är mycket lätt eftersom hand position...

Hur att visa bilder på 2,4 tum TFT och göra det en digital fotoram

Jag hade verkligen denna önskan att bygga en digital fotoram från sista tre, tills i januari när jag fick denna tft lcd touch modul. Jag var upphetsad men när jag tittade på internet fann mycket få (tyvärr ingen) hjälpa om det bara JoaoLopesF instruc...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...

Enkelklick på/av från din Android mobil med hjälp av Arduino och pfodApp. Arduino för nybörjare

IntroduktionDetta instructable visar hur du kan byta en Arduino utgång på och bort från din Android mobil med bara ett klick på ikonen pfodApp . Lägga till ett relä som drivs av denna utgång för att växla den riktig hårdvaran. Ingen Android kodning k...

Hemautomation (för nybörjare) med Arduino och Bludrinodroid

Detta är ett bra projekt för nybörjare på hemautomation. Bludrinodroid är en fantastisk app som inte många vet om id bra för nybörjare till proffs. Jag hoppas du njuta av projektet!Steg 1: Delarna De delar du behöver är:1) en Arduino2) en Bluetooth-e...

En nybörjare guide till setup ESP8266 med Arduino Mega 2560 eller Uno

För produkter med öppen källkod för att lyckas eller anta en masse "skaparna" / "DIY-na" / "dev" / "etc"; en aktuell och korrekt dokumentation eller snabbstart-guide som skall krävas. Användarens inlägg i diskussion...

Styra Arduino med Blynk [USB] [nybörjare] trådlöst var som helst i världen

här är hur du styr arduino med blynk via USB från var som helst i världen!Steg 1: Här är hur du styr arduino med blynk via USB från var som helst i världen!titta och njut!...

SUPER ENKEL NYBÖRJARE ROBOT II (ARDUINO UNO VER.)

Detta "vänners kompatibla är baserad på min ganska populära SUPER enkel nybörjare ROBOT" vänners kompatibla. Efter många, många förfrågningar att tillhandahålla en uppdaterad version Arduino, är här det!Jag skapade detta Instructable, och dess f...

3 x 3 x 3 ledde kuben med en 555 timer och en 4020 SKIFT array IC - ingen programmering (för fullständiga nybörjare som jag själv)

se en video av en 8 x 8 x 8 led cube på you-tube, ledde mig till instructables webbplats för första gången, nu jag hooked. Dock hade jag eller ska jag säga har ett grundläggande problem absolut ingen erfarenhet eller kunskap om elektronik. Så är jag...

En 3 x 3 x 3 ledde kub för absoluta nybörjare med en 555 timer och 4020 IC - nr programmering

se en video av en 8 x 8 x 8 led cube på you-tube, ledde mig till instructables webbplats för första gången, nu jag hooked. Dock hade jag eller ska jag säga har ett grundläggande problem absolut ingen erfarenhet eller kunskap om elektronik. Så är jag...

DIY Home Automation för nybörjare. Absolut ingen kodning eller lödning behövs. Android/Arduino för att växla saker på och av

Denna instructiable är att den absoluta nybörjaren. Om du kan hantera en vass kniv utan att skära kan fingrarna av dig göra och anpassa denna hemautomation controller.Dessa instruktioner är också on-line på www.pfod.com.au under Android / Arduino för...