Sisukord:
- Tarvikud
- Samm: vormindage SD -kaart
- Samm: valmistage Arduino ette
- Samm: Arduino visand
- Samm: selle programmi kasutamine
Video: Arduino TFT joonistusprogramm: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
See juhendab üksikasjalikult koodi, mis läheb Arduino TFT -ekraani joonistusprogrammi tegemiseks. See programm on aga ainulaadne, kuna võimaldab salvestada joonise SD -kaardile ja laadida selle hiljem, et teha rohkem muudatusi!
Tarvikud
- Arduino Uno - originaal või ühilduv kloon
- TFT puuteekraan - kasutasin Elegoo ekraani, mis tähendab, et mul on vaja Elegoo draivereid.
- Micro SD lugejalaud - kasutatakse joonistusandmete salvestamiseks SD -kaardile. Minu ekraanil oli ekraani all sisseehitatud lugeja.
- Pliiats - minu ekraanil oli üks. Ka sõrmeküüned töötavad hästi.
- Micro SD -kaart - exFAT -vormindamispiirangute tõttu mitte rohkem kui 32 GB (Arduino saab lugeda FAT32 -vormingus kaarte, kuid EI exFAT -i. Enamik suuremaid kaarte on vormindatud exFAT -iga.) See on selline, mille paneksite laiendatava salvestusruumiga telefoni.
- Arduino IDE -ga arvuti
- Programmeerimiskaabel - USB A kuni USB B. Minu Arduinoga oli kaasas üks.
- SD -kaardi adapter - kasutatakse Micro SD -kaardi teisendamiseks tavaliseks SD -kaardi pesaks või selliseks, mis ühendab SD -kaardi USB -pesaga.
Samm: vormindage SD -kaart
- Võtke Micro SD -kaart ja kinnitage see oma SD -kaardilugeja abil arvutiga
- Avage File Explorer ja leidke SD -kaart.
- Paremklõpsake seda ja valige Vorminda.
- Määrake suvandid ekraanipildi põhjal.
- Klõpsake nuppu Start.
- Eemaldage kaart, kui protsess on lõpule jõudnud.
Kui te ei kasuta Windowsi, proovige kasutada SD -ühenduse SD -vormindajat.
Samm: valmistage Arduino ette
- Vajutage ekraanikilp Arduinole, jälgides tihvtide joondamist.
- Sisestage SD -kaart ekraani all asuvasse lugejasse.
Samm: Arduino visand
Kuigi osade loend oli üsna lihtne, on seal palju koodi. Ma käin selle siin samm-sammult läbi.
#kaasake
#kaasamine #kaasamine #kaasamine #kaasamine
Elegoo_GFX, _TFTLCD ja puutetundlik ekraan on kõik riistvarapõhised. Kui kasutate erinevat ekraani, kasutage tootja pakutavaid teeke.
SD -kaardiga suhtlemiseks kasutatakse SPI -d ja SD -d. SPI on protokoll, mida kasutab SD -kaardi kontroller.
#if defineeritud (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #define F (string_literal) string_literal #endif
See on ka riistvarapõhine.
#define YP A3 // peab olema analoogpinge #define XM A2 // peab olema analoogpistik #define YM 9 #define XP 8
// Puudutage valikut Uus ILI9341 TP
#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
Kõik need #define laused sunnivad IDE asendama nime väärtusega. Siin määravad nad LCD ja SD I/O kontaktid.
// Määrake nimed mõnele 16-bitisele värviväärtusele: #define BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #define GREEN 0x07E0
Need on mõned koodis kasutatud värvid. #nende määratlemine muudab koodi lugemise lihtsamaks.
#defineeri PENRADIUS 3
See määrab joonistuspliiatsi suuruse.
#define MINPRESSURE 10#define MAXPRESSURE 1000
// Parema rõhu täpsuse saavutamiseks peame teadma takistust
// X+ ja X vahel- lugemiseks kasutage mis tahes multimeetrit // Minu kasutatava seadme puhul on selle 300 oomi X-plaadil puuteekraan ts = puutetundlik ekraan (XP, YP, XM, YM, 300);
Elegoo_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
Need väited määravad puudutuse registreerimiseks, puudutusfunktsiooni initsialiseerimiseks ja ekraani käivitamiseks vajaliku rõhu.
Failide salvestamine; int storageSize; int stoX = 1; int stoY = 1;
Need on programmi salvestusosa muutujad.
tühine seadistus (tühine) {Serial.begin (9600); Serial.println ("Värviprogramm");
tft.reset ();
uint16_t identifikaator = tft.readID ();
kui (identifikaator == 0x0101) {identifikaator = 0x9341; Serial.println (F ("Leitud 0x9341 LCD draiver")); }
// Käivitage ekraan
tft.begin (identifikaator); tft.setRotation (2);
pinMode (13, VÄLJUND);
// SD -kaardi käivitamine
if (! SD.begin (CSPIN)) {Serial.println ("SD lähtestamine nurjus"); tagasipöördumine; } Serial.println ("SD lähtestatud");
// Joonista taust
drawBackground (); }
Seadistusfunktsioon käivitab Serial, kui see on saadaval, lähtestab ekraani, tuvastab TFT -draiveri, käivitab ekraani, käivitab kaardi ja kutsub üles tausta joonistamise funktsiooni.
Jätan silmusfunktsiooni suurema osa juurde. Kõike muud kasutatakse lihtsalt puuteekraani juhtimiseks.
// Tuvastage ekraanivajutus ja salvestage see muutujatele, kui (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// Skaala p.x = map (p.x, TS_MINX, TS_MAXX, tft.width (), 0); p.y = (tft.height () - kaart (p.y, TS_MINY, TS_MAXY, tft.height (), 0));
// Joonista
if (p.y> 21) {// Salvesta andmed SD -kaardi mällu = SD.open ("storage.txt", FILE_WRITE); storage.print (p.x); storage.print (","); storage.println (p.y); storage.close ();
// Täpp puudutusasendis
tft.fillCircle (p.x, p.y, PENRADIUS, WHITE); }
// Kustuta nupp
if ((lk 198) && (p.x <219)) {deleteStorage (); }
// Laadimisnupu toiming
if ((lk 219)) {loadStorage (); }}
Kui tuvastatakse ajakirjandus, määrake ajakirjanduse asukoha muutujad.
Seejärel, kui press on joonistuspiirkonnas, salvestage punkt SD -kaardile salvestusruumis.txt ja joonistage vajutatud kohale ring, millel on määratud suurus ja värv.
Kui vajutate kustutamisnupu asukohta, käivitage funktsioon, mis kustutab salvestatud joonise. Kui kasutate erineva suurusega ekraani, proovige mängida nupu asukoha väärtustega.
Kui vajutate laadimisnupu asukohta, käivitage funktsioon, mis laadib salvestatud joonise. Kui kasutate erineva suurusega ekraani, proovige mängida nuppude asukoha väärtustega.
Nüüd selgitan funktsioone.
Seadistuses kutsutakse esimest funktsiooni tausta ja nuppude joonistamiseks.
void drawBackground () {// Tausta määramine tft.fillScreen (MUST);
// Värvi tekst
tft.setTextColor (VALGE); tft.setTextSize (3); tft.setCursor (0, 0); tft.println ("Värv");
// Laadimisnupp
tft.fillRect (219, 0, 21, 21, GREEN);
// Kustuta nupp
tft.fillRect (198, 0, 21, 21, PUNANE); }
See täidab ekraani musta värvi, kirjutab sõna Paint ja joonistab nuppudele värvilised ruudud. Kui kasutate erineva suurusega ekraani, proovige mängida nuppude asukoha väärtustega.
void deleteStorage () {// Kustuta fail SD.remove ("storage.txt");
// Määra taust
tft.fillScreen (MUST);
// Edu teksti kustutamine
tft.setTextColor (VALGE); tft.setTextSize (2); tft.setCursor (0, 0); tft.println ("storage.txt kustutatud");
// Lase kasutajal seda lugeda
viivitus (2000);
// Jätka joonistamist
drawBackground (); }
Funktsioon deleteStorage eemaldab faili storage.txt, täidab ekraani musta värvi ja annab kustutamiseks eduka teate. Seejärel kutsub see funktsiooni drawBackground, et saaksite hakata midagi muud maalima.
void loadStorage () {// Vältige aeglaste sõrmede viivituse kordamist (250);
// Kontrollige salvestusfaili
if (! SD.exists ("storage.txt")) {Serial.println ("Storage.txt faili pole"); tagasipöördumine; }
// Faili avamine kirjutuskaitstud režiimis
storage = SD.open ("storage.txt", FILE_READ);
// Kuigi andmeid on, while (stoY> 0) {// Värskenda positsioonimuutujaid stoX = storage.parseInt (); stoY = storage.parseInt ();
// Joonista hoidlast
tft.fillCircle (stoX, stoY, PENRADIUS, WHITE); } // Sulge fail storage.close (); }
Lõpuks kontrollib funktsioon loadStorage salvestusfaili, avab selle kirjutuskaitstud režiimis ja kordab seda tsüklit:
Niikaua kui andmeid on rohkem,
- Värskendage positsioonimuutujaid failist storage.txt parsitud andmetega
- Joonista laaditud punktile ring
Kui tsükkel lõpeb ja andmeid pole enam, sulgeb see salvestusfaili.
Selle visandi koodi leiate allpool. Lihtsalt laadige see alla, avage see Arduinos ja laadige see oma lauale!
Samm: selle programmi kasutamine
Lihtsalt ühendage Arduino toiteallikaga - arvuti, aku, seintüügas jne - ja alustage joonistamist. Joonise ja selle salvestatud andmete kustutamiseks vajutage punast nuppu. Joonise salvestamiseks laadimiseks ja selle kallal töötamise jätkamiseks klõpsake rohelist nuppu. Sel moel saate joonisel mitu korda itereerida!
Laiendina proovige joonistada joonis arvutisse:
- Ühendage andmetega SD -kaart arvutisse.
- Avage storage.txt oma lemmik teksti-/koodiredaktoris.
- Kopeerige kõik väärtused failist storage.txt.
- Järgige seda linki punktide joonistamise programmiga.
- Kustutage vasakul kaks näitepunkti.
- Kleepige oma andmed sinna, kus olid näidispunktid.
See on kena viis oma joonistuste näitamiseks - võib -olla proovige isegi Arduino või punkti -plotteri punktivärvi muuta!
Muudatused on teretulnud ja mulle meeldiks näha mõningaid soovitusi kommentaarides. Täname, et vaatasite seda ja loodan, et leiate oma projektides sellele kena kasutusvõimaluse!
Soovitan:
Lihtne õhukvaliteedi jälgimine TFT LCD-ekraaniga- Ameba Arduino: 3 sammu
Lihtne õhukvaliteedi jälgimine TFT LCD-ekraaniga-Ameba Arduino: Sissejuhatus Nüüd, kui enamik inimesi jääb koju, et vältida tihedat kontakti võimaliku COVID-19 viiruse kandjaga, muutub õhukvaliteet inimeste heaolu oluliseks teguriks, eriti troopilistes riikides, kus õhu konditsioneeri kasutamine on hädavajalik
Arduino TFT graafikakilp: 4 sammu (koos piltidega)
Arduino TFT graafikakilp: a. Artiklid {font-size: 110,0%; fondi kaal: paks; fondi stiil: kaldkiri; teksti kaunistamine: puudub; taustavärv: punane;} a. artiklid: hõljutage kursorit {background-color: black;} See juhend annab selgituse, kuidas teha 240 x 320 pikslit (QVGA) värvigraafikat
Maagiliste vastuste pall Arduino Pro Mini ja TFT -ekraaniga: 7 sammu
Maagiliste vastuste pall Arduino Pro Mini ja TFT -ekraaniga: mõni aeg tagasi võtsime tütrega Magic 8 palli lahti, et ta saaks asendada kakskümmend vastust enda valitud vastustega. See oli kingitus tema sõbrale. See pani mind mõtlema, kuidas seda laiemalt teha. Kas meil võiks olla palju m
Arduino Flappy Bird - Arduino 2,4 "TFT puuteekraaniga SPFD5408 linnumänguprojekt: 3 sammu
Arduino Flappy Bird | Arduino 2,4 -tollise puutetundliku ekraaniga SPFD5408 linnumänguprojekt: Flappy Bird oli mõne aasta jooksul seal liiga populaarne mäng ja paljud inimesed lõid selle omal moel, nii ka mina, lõin Arduinoga oma versiooni flappy linnust ja odava 2,4 "TFT -ga. Puuteekraan SPFD5408, alustame siis
Kuidas teha reaalajas kella Arduino ja TFT -ekraani abil - Arduino Mega RTC 3,5 -tollise TFT -ekraaniga: 4 sammu
Kuidas teha reaalajas kella Arduino ja TFT-ekraani abil | Arduino Mega RTC 3,5-tollise TFT-ekraaniga: külastage minu Youtube'i kanalit. Sissejuhatus:- Selles postituses kavatsen teha reaalajas kella, kasutades 3,5-tollist TFT-puutetundlikku LCD-d, Arduino Mega 2560 ja DS3231 RTC moodul…. Enne alustamist… kontrollige minu YouTube'i kanali videot. Märkus:- Kui kasutate Arduini