INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Hallo ouens, in hierdie instruksies leer ons hoe om 'n sakrekenaar te maak met Arduino Uno met 'n 3,5 TFT LCD -raakskerm. gee die uitset van basiese wiskundige uitdrukkings.
Stap 1: Dinge wat u nodig het
Vir hierdie projek benodig u die volgende: 3,5 TFT LCD DISPLAYARDUINO UNO
Stap 2: Installeer TFT -skermbiblioteek in Arduino IDE
Ons gebruik die SPFD5408 -biblioteek:
om hierdie arduino -sakrekenaarkode te laat werk. Dit is 'n aangepaste biblioteek van Adafruit en kan naatloos werk met ons LCD TFT -module. Dit is baie belangrik dat u hierdie biblioteek sonder enige fout installeer in u Arduino IDE of hierdie program om dit op te stel. Om hierdie biblioteek te installeer, kan u eenvoudig op die skakel hierbo klik, wat u na 'n Github -bladsy bring. Klik daar op kloon of laai af en kies "Download zip". 'N zip -lêer sal afgelaai word. Maak nou Arduino IDE oop en kies Sketch -> Include Librarey -> Add. ZIP library. In die blaaiervenster sal u na die zip -lêer gaan en op "OK" klik. U moet 'Biblioteek bygevoeg tot u biblioteke' in die onderste linkerhoek van Arduino sien.
Stap 3: Laai die sakrekenaarkode op
Nadat u die biblioteek geïnstalleer het, koppel die skerm aan met Arduino en kopieer die volgende kode en laai dit op na Arduino. biblioteek#sluit in "SPFD5408_TouchScreen.h"/*_ Einde van biblioteke _*//*_ Definieer LCD -penne (ek het die standaardwaardes toegeken) _*/#definieer YP A1 // moet 'n analoog pen wees, gebruik ''n' 'notasie!# definieer XM A2 // moet 'n analoog pen wees, gebruik 'An' notasie! #define YM 7 // kan 'n digitale pen wees#definieer XP 6 // kan 'n digitale pen wees#definieer LCD_CS A3#definieer LCD_CD A2#definieer LCD_WR A1#definieer LCD_RD A0#definieer LCD_RESET A4/*_ Einde van definisies _*//*_ Ken name toe aan kleure en druk _*/#definieer WIT 0x0000 // Swart-> Wit#definieer GEEL 0x001F // Blou-> Geel#definieer CYAN 0xF800 // Rooi-> Siaan#definieer ROOI 0x07E0 // Groen-> Pienk#definieer ROOI 0x07FF // Siaan-> Rooi#definieer GROEN 0xF81F // Pienk-> Groen #define BLOU 0xFFE0 // Geel- > Blou#definieer SWART 0xFFFF // Wit-> Swart#definieer MINPRESSURE 10#definieer MAXPRESSURE 1000/*_ Toegewys _*//*_ Kalibreer TFT LCD _*/#definieer TS_MINX 125#definieer TS_MINY 85#definieer TS_MAXX 965#definieer TS_MAXY 905/* _Einde van kalibrasie _*/TouchScreen ts = TouchScreen (XP, YP, XM, YM, 300); // 300 is die sensitiwiteitAdafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Begin kommunikasie met LCDString -simbool [4] [4] = {{"7", "8", "9", "/"}, {"4", "5", "6", "*"}, {"1", "2", "3", "-"}, {"C", "0", "=", "+"}}; int X, Y; lang Num1, Num2, Getal; char aksie; booleaanse resultaat = vals; ongeldige opstelling () {Serial.begin (9600); // Gebruik seriële monitor vir die ontfouting van tft.reset (); // Herstel altyd by die begin tft.begin (0x9341); // My LCD gebruik LIL9341 Interface driver IC tft.setRotation (2); // Ek het net so gegooi dat die kragaansluiting na bo wys - opsioneel tft.fillScreen (WHITE); IntroScreen (); draw_BoxNButtons (); } leemte -lus () {TSPoint p = waitTouch (); X = p.y; Y = p.x; // Serial.print (X); Serial.print (','); Serial.println (Y); // + "" + Y); DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); vertraging (300);} TSPoint waitTouch () {TSPoint p; doen {p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); } terwyl ((p.z MAXPRESSURE)); p.x = kaart (p.x, TS_MINX, TS_MAXX, 0, 320); p.y = kaart (p.y, TS_MINY, TS_MAXY, 0, 240);; return p;} void DetectButtons () {if (X0) // Detecting Buttons on Column 1 {if (Y> 0 && Y <85) // As die kansellasie -knoppie gedruk word {Serial.println ("Button Cancel"); Getal = Num1 = Num2 = 0; result = false;} as (Y> 85 && Y <140) // As knoppie 1 ingedruk word {Serial.println ("Button 1"); as (Getal == 0) Getal = 1; anders Getal = (Getal*10) + 1; // Twee keer ingedruk} as (Y> 140 && Y <192) // As knoppie 4 ingedruk word {Serial.println ("Knoppie 4"); as (Getal == 0) Getal = 4; anders Getal = (Getal*10) + 4; // Twee keer ingedruk} as (Y> 192 && Y <245) // As knoppie 7 ingedruk word {Serial.println ("Knoppie 7"); as (Getal == 0) Getal = 7; anders Getal = (Getal*10) + 7; // Twee keer ingedruk}} if (X50) // Knoppies opspoor in kolom 2 {if (Y> 0 && Y <85) {Serial.println ("Button 0"); // Knoppie 0 word ingedruk as (Number == 0) Number = 0; anders Getal = (Getal*10) + 0; // Twee keer ingedruk} as (Y> 85 && Y <140) {Serial.println ("Knoppie 2"); as (Getal == 0) Getal = 2; anders Getal = (Getal*10) + 2; // Twee keer ingedruk} as (Y> 140 && Y <192) {Serial.println ("Knoppie 5"); as (Getal == 0) Getal = 5; anders Getal = (Getal*10) + 5; // Twee keer ingedruk as (Y> 192 && Y <245) {Serial.println ("Knoppie 8"); as (Getal == 0) Getal = 8; anders Getal = (Getal*10) + 8; // Twic gedruk}} if (X105) // Knoppies op kolom 3 {if (Y> 0 && Y <85) {Serial.println ("Button Equal") opspoor; Num2 = Getal; resultaat = waar; } if (Y> 85 && Y <140) {Serial.println ("Knoppie 3"); as (Getal == 0) Getal = 3; anders Getal = (Getal*10) + 3; // Twee keer ingedruk} as (Y> 140 && Y <192) {Serial.println ("Knoppie 6"); as (Getal == 0) Getal = 6; anders Getal = (Getal*10) + 6; // Twee keer ingedruk} as (Y> 192 && Y <245) {Serial.println ("Knoppie 9"); as (Getal == 0) Getal = 9; anders Getal = (Getal*10) + 9; // Twee keer ingedruk}} as (X165) // Knoppies op kolom 3 {Num1 = Number; Getal = 0; tft.setCursor (200, 20); tft.setTextColor (ROOI); as (Y> 0 && Y <85) {Serial.println ("Byvoeging"); aksie = 1; tft.println ('+');} if (Y> 85 && Y <140) {Serial.println ("Aftrekking"); aksie = 2; tft.println ('-');} if (Y> 140 && Y <192) {Serial.println ("Vermenigvuldiging"); aksie = 3; tft.println ('*');} if (Y> 192 && Y <245) {Serial.println ("Devesion"); aksie = 4; tft.println ('/');} vertraging (300); }} void CalculateResult () {if (action == 1) Number = Num1+Num2; as (aksie == 2) Getal = Num1-Num2; as (aksie == 3) Getal = Num1*Num2; as (aksie == 4) Getal = Num1/Num2; } ongeldig DisplayResult () {tft.fillRect (0, 0, 240, 80, CYAN); // maak die kassie tft.setCursor skoon (10, 20); tft.setTextSize (4); tft.setTextColor (SWART); tft.println (nommer); // opdater nuwe waarde} void IntroScreen () {tft.setCursor (55, 120); tft.setTextSize (3); tft.setTextColor (ROOI); tft.println ("ARDUINO"); tft.setCursor (30, 160); tft.println ("CALCULATOR"); tft.setCursor (30, 220); tft.setTextSize (2); tft.setTextColor (BLOU); tft.println ("-Circut Digest"); delay (1800);} void draw_BoxNButtons () {// Draw the Resultate Box tft.fillRect (0, 0, 240, 80, CYAN); // Teken eerste kolom tft.fillRect (0, 260, 60, 60, ROOI); tft.fillRect (0, 200, 60, 60, SWART); tft.fillRect (0, 140, 60, 60, SWART); tft.fillRect (0, 80, 60, 60, SWART); // Teken derde kolom tft.fillRect (120, 260, 60, 60, GROEN); tft.fillRect (120, 200, 60, 60, SWART); tft.fillRect (120, 140, 60, 60, SWART); tft.fillRect (120, 80, 60, 60, SWART); // Teken tweede en vierde kolom vir (int b = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60, 60, BLOU); tft.fillRect (60, b, 60, 60, SWART);} // Teken horisontale lyne vir (int h = 80; h <= 320; h+= 60) tft.drawFastHLine (0, h, 240, WHITE); // Teken vertikale lyne vir (int v = 0; v <= 240; v+= 60) tft.drawFastVLine (v, 80, 240, WHITE); // Wys die toetsbordblaaie vir (int j = 0; j <4; j ++) {vir (int i = 0; i <4; i ++) {tft.setCursor (22+(60*i), 100+(60* j)); tft.setTextSize (3); tft.setTextColor (WIT); tft.println (simbool [j] ); }}}} Nadat u die kode opgelaai het, kan u die sakrekenaar in my skerm sien werk, en nou kan u basiese wiskundige berekeninge hierop doen. Geniet dus u eie sakrekenaar met Arduino UNO.
Aanbeveel:
Vingerafdrukmodule + STONE TFT-LCD: 3 stappe
Vingerafdrukmodule + STONE TFT-LCD: Ek het hierdie maand beplan om 'n vingerafdruk-deurslotprojek te ontwikkel. Toe ek die vingerafdruk -identifikasiemodule kies, is die projek opgeskort. Ek het egter gedink dat, aangesien die vingerafdruk -identifikasiemodule gekoop is, ek dit sou vereenvoudig
Eenvoudige monitering van luggehalte met TFT LCD-skerm- Ameba Arduino: 3 stappe
Eenvoudige monitering van luggehalte met TFT LCD-skerm-Ameba Arduino: Inleiding Noudat die meeste mense tuis bly om noue kontak met moontlike COVID-19-virusdraer te vermy, word luggehalte 'n belangrike faktor vir mense se welstand, veral in tropiese lande waar lugversorging is 'n moet tydens die dag
I2C / IIC LCD -skerm - Gebruik 'n SPI LCD na die I2C LCD Display met behulp van SPI tot IIC module met Arduino: 5 stappe
I2C / IIC LCD -skerm | Gebruik 'n SPI LCD na die I2C LCD -skerm Met behulp van SPI na IIC -module met Arduino: Hallo ouens, aangesien 'n normale SPI LCD 1602 te veel drade het om aan te sluit, is dit baie moeilik om dit met arduino te koppel, maar daar is een module op die mark wat kan omskep SPI -skerm in IIC -skerm, sodat u slegs 4 drade moet aansluit
I2C / IIC LCD -skerm - Skakel 'n SPI LCD om na die I2C LCD Display: 5 stappe
I2C / IIC LCD -skerm | Skakel 'n SPI -LCD om na die I2C LCD -skerm: met behulp van spi -lcd -skerm is te veel verbindings nodig, wat baie moeilik is om te doen
Hoe om 'n intydse klok te maak met Arduino en TFT -skerm - Arduino Mega RTC met 3,5 duim TFT -skerm: 4 stappe
Hoe om 'n intydse horlosie te maak met behulp van Arduino en TFT-skerm | Arduino Mega RTC met 3,5 duim TFT-skerm: Besoek my Youtube-kanaal 2560 en DS3231 RTC-module … .Voordat u begin … kyk na die video van my YouTube-kanaal..Let op:- As u Arduin gebruik