Tartalomjegyzék:
- Kellékek
- Lépés: Formázza meg az SD kártyát
- 2. lépés: Készítse elő az Arduino -t
- 3. lépés: Arduino vázlat
- 4. lépés: A program használata
Videó: Arduino TFT rajzprogram: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Ez az útmutató leírja azt a kódot, amely az Arduino TFT képernyő rajzprogramjának elkészítéséhez szükséges. Ez a program azonban egyedülálló, mivel lehetővé teszi a rajz SD -kártyára mentését és későbbi betöltését, hogy további szerkesztéseket végezzen!
Kellékek
- Arduino Uno - eredeti vagy kompatibilis klón
- TFT érintőképernyő - Elegoo képernyőt használtam, vagyis szükségem volt Elegoo illesztőprogramokra.
- Micro SD olvasótábla - a rajzadatok SD kártyára való tárolására szolgál. A képernyőm beépített olvasóval rendelkezett a kijelző alatt.
- Ceruza - a képernyőm egyet kapott. A körmök is jól működnek.
- Micro SD kártya - legfeljebb 32 GB az exFAT formázási korlátai miatt (Az Arduino képes olvasni a FAT32 formátumú kártyákat, de NEM exFAT. A legtöbb nagyobb kártya exFAT formátumú.) Ez az a fajta, amelyet egy bővíthető tárhelyű telefonba helyezne.
- Számítógép Arduino IDE -vel
- Programozókábel - USB A - USB B. Az Arduino készülékemhez tartozék.
- SD -kártya -adapter - a Micro SD -kártyát normál SD -re konvertálja, hogy SD -foglalatba helyezze, VAGY olyanba, amely SD -kártyát csatlakoztat egy USB -nyíláshoz.
Lépés: Formázza meg az SD kártyát
- Fogja meg a Micro SD kártyát, és csatlakoztassa a számítógéphez az SD kártyaolvasó segítségével
- Nyissa meg a File Explorer programot, és keresse meg az SD -kártyát.
- Kattintson a jobb gombbal, és válassza a Formátum lehetőséget.
- Állítsa be a beállításokat a képernyőkép alapján.
- Kattintson a Start gombra.
- Vegye ki a kártyát, amikor a folyamat befejeződött.
Ha nem Windows rendszert futtat, próbálkozzon az SD társító SD Formatter használatával.
2. lépés: Készítse elő az Arduino -t
- Nyomja le a képernyővédőt az Arduino -ra, ügyelve a csapok sorba állítására.
- Helyezze be az SD -kártyát a képernyő alatti olvasóba.
3. lépés: Arduino vázlat
Bár az alkatrészlista meglehetősen egyszerű volt, rengeteg kód van. Itt lépésről lépésre végigmegyek.
#befoglalni
#befoglalás #befoglalás #befoglalás #befoglalás
Az Elegoo_GFX, a _TFTLCD és az TouchScreen hardver-specifikusak. Ha másik képernyőt használ, használja a gyártó által biztosított könyvtárakat.
Az SPI és az SD az SD -kártyával való kommunikációra szolgál. Az SPI az SD kártya vezérlő által használt protokoll.
#if meghatározott (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
Ez is hardver-specifikus.
#define YP A3 // analóg tűnek kell lennie #define XM A2 // analóg tűnek kell lennie #define YM 9 #define XP 8
// Érintse meg az Új ILI9341 TP gombot
#define TS_MINX 120 #define TS_MAXX 900 #define TS_MINY 70 #define TS_MAXY 920
#define CSPIN 10
#define LCD_CS A3
#define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4
Ezen #define utasítások mindegyike arra készteti az IDE -t, hogy a nevet helyettesítse az értékkel. Itt állítják be az LCD és SD I/O érintkezőket.
// Nevek hozzárendelése néhány 16 bites színértékhez: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0
Ez néhány a kódban használt színek közül. #ezek meghatározása megkönnyíti a kód olvasását.
#define PENRADIUS 3
Ez határozza meg a rajzoló toll méretét.
#define MINPRESSURE 10#define MAXPRESSURE 1000
// A jobb nyomáspontosság érdekében ismernünk kell az ellenállást
// X+ és X között- Bármilyen multiméterrel olvassa el // Az általam használt készülék 300 ohmja az X-lemezen keresztül TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Ezek a kijelentések meghatározzák az érintés regisztrálásához, az érintési funkció inicializálásához és a képernyő elindításához szükséges nyomást.
Fájltárolás; int storageSize; int stoX = 1; int stoY = 1;
Ezek a program tároló részének változói.
void setup (void) {Serial.begin (9600); Serial.println ("Festékprogram");
tft.reset ();
uint16_t azonosító = tft.readID ();
if (azonosító == 0x0101) {azonosító = 0x9341; Serial.println (F ("Found 0x9341 LCD driver")); }
// Indítsa el a képernyőt
tft.begin (azonosító); tft.setRotation (2);
pinMode (13, KIMENET);
// Indítsa el az SD kártyát
if (! SD.begin (CSPIN)) {Serial.println ("Az SD inicializálása nem sikerült"); Visszatérés; } Serial.println ("SD inicializálva");
// Rajzolja le a hátteret
drawBackground (); }
A beállítási funkció elindítja a Soros beállítást, ha rendelkezésre áll, visszaállítja a képernyőt, felismeri a TFT illesztőprogramot, elindítja a képernyőt, elindítja a kártyát, és meghív egy funkciót a háttér rajzolásához.
Átugranék a hurokfüggvény nagy részéhez. Minden más csak az érintőképernyő meghajtására szolgál.
// Érzékeli a képernyő megnyomását és tárolja a változókhoz, ha (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Méret p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - térkép (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
//Húz
if (p.y> 21) {// Adatok mentése az SD -kártya tárhelyére = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();
// Pont az érintési helyzetben
tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }
// Törlés gomb
if ((p.y 198) && (p.x <219)) {deleteStorage (); }
// Betöltőgomb művelet
if ((219. o.)) {loadStorage (); }}
Ha nyomást észlel, állítson be változókat a sajtó helyére.
Ezután, ha a préselés a rajzterületen belül van, mentse el a pontot az SD -kártyára a storage.txt fájlba, és rajzoljon egy kört a megnyomott ponton, meghatározott méretben és színben.
Ezután, ha a sajtó a törlés gomb helyén van, futtasson egy funkciót, amely törli a tárolt rajzot. Ha más méretű képernyőt használ, próbáljon játszani a gombok helyértékeivel.
Ezután, ha a prés a betöltés gomb helyén van, futtasson egy funkciót, amely betölti a tárolt rajzot. Ha más méretű képernyőt használ, próbáljon játszani a gombok helyértékeivel.
Most elmagyarázom a funkciókat.
Az első funkció a beállításoknál hívódik meg, hogy rajzolja meg a hátteret és a gombokat.
void drawBackground () {// A háttér beállítása tft.fillScreen (FEKETE);
// Szöveg festése
tft.setTextColor (FEHÉR); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Festék");
// Betöltés gomb
tft.fillRect (219, 0, 21, 21, ZÖLD);
// Törlés gomb
tft.fillRect (198, 0, 21, 21, PIROS); }
Feketével kitölti a képernyőt, írja a Paint szót, és színes négyzeteket rajzol a gombokhoz. Ha más méretű képernyőt használ, próbáljon játszani a gombok helyértékeivel.
void deleteStorage () {// A fájl törlése SD.remove ("storage.txt");
// Állítsa be a hátteret
tft.fillScreen (FEKETE);
// Sikeres szöveg törlése
tft.setTextColor (FEHÉR); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt törölve");
// Hagyja, hogy a felhasználó elolvassa
késleltetés (2000);
// Folytassa a rajzot
drawBackground (); }
A deleteStorage funkció eltávolítja a storage.txt fájlt, feketén tölti be a képernyőt, és sikeres üzenetet ad a törléshez. Ezután felhívja a drawBackground függvényt, hogy lehetővé tegye valami más festését.
void loadStorage () {// Kerülje az ismétléseket a lassú ujjak késleltetéséből (250);
// Ellenőrizze a tárolófájlt
if (! SD.exists ("storage.txt")) {Serial.println ("Nincs storage.txt fájl"); Visszatérés; }
// Fájl megnyitása csak olvasható módban
storage = SD.open ("storage.txt", FILE_READ);
// Amíg vannak adatok, while (stoY> 0) {// A pozícióváltozók frissítése stoX = storage.parseInt (); stoY = storage.parseInt ();
// Rajzolás a tárolóból
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Zárja be a storage.close () fájlt; }
Végül a loadStorage függvény ellenőrzi a tárolófájlt, megnyitja azt csak olvasható módban, majd megismétli ezt a ciklust:
Amíg több adat van,
- Frissítse a pozícióváltozókat a storage.txt fájlból származó elemzett adatokkal
- Rajzoljon kört a betöltött pontra
Amikor a ciklus befejeződik, és nincs több adat, bezárja a tárolófájlt.
Ennek a vázlatnak a kódja alább található. Csak töltse le, nyissa meg az Arduino -ban, és töltse fel a táblára!
4. lépés: A program használata
Csak csatlakoztassa az Arduino -t egy áramforráshoz - számítógéphez, akkumulátorhoz, fali szemölcshöz stb., És kezdje el rajzolni. A rajz és a tárolt adatok törléséhez nyomja meg a piros gombot. Ha egy rajzot szeretne betölteni a tárolóból, és folytatni szeretné a munkát, kattintson a zöld gombra. Ily módon sokszor iterálhat egy rajzon!
Bővítményként próbálja meg rajzolni a rajzot a számítógépére:
- Csatlakoztassa az adatokat tartalmazó SD -kártyát a számítógéphez.
- Nyissa meg a storage.txt fájlt kedvenc szöveg-/kódszerkesztőjében.
- Másolja a storage.txt fájlban található összes értéket.
- Kövesse ezt a linket egy pontrajzoló programhoz.
- Törölje a bal oldali két példapontot.
- Illessze be az adatokat oda, ahol a példapontok voltak.
Ez egy ügyes módja annak, hogy megmutassa rajzait - talán még próbálja meg megváltoztatni a pont színét az Arduino -n vagy a pontrajzolón!
A módosításokat szívesen fogadjuk, és szívesen látnék néhány javaslatot a megjegyzésekben. Köszönöm, hogy megnézted ezt, és remélem, hogy találsz rá rendes felhasználási lehetőséget saját projektjeidben!
Ajánlott:
Egyszerű levegőminőség-ellenőrzés TFT LCD kijelzővel- Ameba Arduino: 3 lépés
Egyszerű levegőminőség-monitorozás TFT LCD kijelzővel-Ameba Arduino: Bevezetés Most, hogy a legtöbb ember otthon marad, hogy elkerülje a potenciális COVID-19 vírushordozóval való szoros érintkezést, a levegő minősége fontos tényezővé válik az emberek jóléte szempontjából, különösen azokban a trópusi országokban, ahol a légkondicionálás használata elengedhetetlen a
Arduino TFT grafikus pajzs: 4 lépés (képekkel)
Arduino TFT Graphics Shield: a.cikkek {font-size: 110,0%; betűtípus súlya: félkövér; betűtípus: dőlt; szövegdíszítés: nincs; háttérszín: piros;} a. cikkek: lebegés {háttér-szín: fekete;} Ez az utasítás elmagyarázza, hogyan készíthet 240 x 320 képpontos (QVGA) színes grafikát
Varázslatos válaszok labda Arduino Pro Mini és TFT kijelzővel: 7 lépés
Varázslatos válaszok labda Arduino Pro Mini és TFT kijelzővel: Nemrégiben a lányommal szétszedtünk egy Magic 8 labdát, hogy lecserélhesse a húsz választ az általa választottakkal. Ez ajándék volt egy barátjának. Ez elgondolkodtatott, hogy hogyan tehetném ezt nagyobb léptékben. Lehet -e sok m
Arduino Flappy Bird - Arduino 2,4 hüvelykes TFT érintőképernyős SPFD5408 madárjáték -projekt: 3 lépés
Arduino Flappy Bird | Arduino 2,4 hüvelykes TFT érintőképernyős SPFD5408 madárjáték -projekt: A Flappy Bird néhány év alatt túl népszerű játék volt ott, és sokan a maguk módján alkották meg, én is, én készítettem a flappy bird verzióját Arduino -val és az olcsó 2,4 "TFT -vel Érintőképernyő SPFD5408, Tehát kezdjük
Valós idejű óra készítése Arduino és TFT kijelző használatával - Arduino Mega RTC 3,5 hüvelykes TFT kijelzővel: 4 lépés
Hogyan készítsünk valós idejű órát Arduino és TFT kijelző használatával | Arduino Mega RTC 3,5 hüvelykes TFT kijelzővel: Látogasson el a Youtube csatornámra. 2560 és DS3231 RTC modul… .Mielőtt elkezdené… ellenőrizze a videót a YouTube-csatornámról. Megjegyzés:- Ha Arduin-t használ