INHOUDSOPGAWE:
Video: Arduino DIY -sakrekenaar met 1602 LCD- en 4x4 -klavier: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Hallo ouens in hierdie instruksies, ons maak 'n sakrekenaar met behulp van Arduino wat basiese berekeninge kan doen. So basies neem ons die invoer van die 4x4 -bedieningspaneel en druk die data op 'n 16x2 lcd -skerm, en arduino sal die berekeninge doen.
Stap 1: Dinge wat u nodig het
Vir hierdie instruksies benodig ons die volgende dinge: Arduino Uno (enige weergawe werk)
16 × 2 LCD -skerm
4 × 4 Toetsenbord 9V battery Broodbord Verbindingsdrade
Stap 2: Verbindings
Die volledige stroombaandiagram van hierdie Arduino Sakrekenaarprojek word hierbo gegee. Die +5V en grondverbinding wat in die stroombaan -diagram getoon word, kan verkry word vanaf die 5V en grondpen van die Arduino. Die Arduino self kan van u skootrekenaar of deur die DC-aansluiting gevoed word met 'n 12V-adapter of 'n 9V-battery. Ons werk die LCD in 4-bis-modus met Arduino, sodat slegs die laaste vier databits van die LCD aan Arduino gekoppel is. Die sleutelbord sal 8 uitvoerpenne hê wat van pen 0 tot pen 7 gekoppel moet word, soos hierbo getoon. die toetsbord terwyl u die program oplaai.
Stap 3: Kodeer
Kopieer die volgende kode en laai dit na u arduino:/ * * Arduino -toetsbord -sakrekenaarprogram */#sluit 'LiquidCrystal.h' // Koptekstlêer vir LCD van https://www.arduino.cc/en/Reference/LiquidCrystal# in sluit "Keypad.h" // Koptekstlêer vir toetsbord in van https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Vier rye konst byte COLS = 4; // Drie kolomme // Definieer die Keymapchar -sleutels [RYE] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Koppel die bedieningspaneel ROW0, ROW1, ROW2 en ROW3 aan hierdie Arduino -penne. Byte colPins [COLS] = {4, 5, 6, 7}; // Koppel die sleutelbord COL0, COL1 en COL2 aan hierdie Arduino -penne. Toetsenbord kpd = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS); // Skep die sleutelbordkonst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Spelde waarmee die LCD gekoppel is LiquidCrystal lcd (rs, en, d4, d5, d6, d7); lang Num1, Num2, Getal; char sleutel, aksie; booleaanse resultaat = vals; ongeldige opstelling () {lcd.begin (16, 2); // Ons gebruik 'n 16*2 LCD -skerm lcd.print ("DIY Sakrekenaar"); // Wys 'n intro -boodskap lcd.setCursor (0, 1); // stel die wyser in kolom 0, reël 1 vertraging (2000); // Wag totdat die vertoning inligting vertoon lcd.clear (); // Maak dit dan skoon} void loop () {key = kpd.getKey (); // stoor die gedrukte sleutelwaarde in 'n charif (sleutel! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } ongeldig DetectButtons () {lcd.clear (); // Maak dit dan skoon as (key == '*') // As die kansellasie -knoppie ingedruk word {Serial.println ("Button Cancel"); Getal = Num1 = Num2 = 0; result = false;} if (key == '1') // As knoppie 1 ingedruk word {Serial.println ("Button 1"); as (Getal == 0) Getal = 1; anders Getal = (Getal*10) + 1; // Twee keer ingedruk} as (sleutel == '4') // As knoppie 4 ingedruk word {Serial.println ("Button 4"); as (Getal == 0) Getal = 4; anders Getal = (Getal*10) + 4; // Twee keer ingedruk} as (sleutel == '7') // As knoppie 7 ingedruk word {Serial.println ("Knoppie 7"); as (Getal == 0) Getal = 7; anders Getal = (Getal*10) + 7; // Twee keer ingedruk} if (key == '0') {Serial.println ("Button 0"); // Knoppie 0 word ingedruk as (Number == 0) Number = 0; anders Getal = (Getal*10) + 0; // Twee keer ingedruk} as (sleutel == '2') // Knoppie 2 word ingedruk {Serial.println ("Knoppie 2"); as (Getal == 0) Getal = 2; anders Getal = (Getal*10) + 2; // Twee keer ingedruk} if (sleutel == '5') {Serial.println ("Knoppie 5"); as (Getal == 0) Getal = 5; anders Getal = (Getal*10) + 5; // Twee keer ingedruk} if (sleutel == '8') {Serial.println ("Knoppie 8"); as (Getal == 0) Getal = 8; anders Getal = (Getal*10) + 8; // Twee keer ingedruk} if (key == '#') {Serial.println ("Button Equal"); Num2 = Getal; resultaat = waar; } if (sleutel == '3') {Serial.println ("Knoppie 3"); as (Getal == 0) Getal = 3; anders Getal = (Getal*10) + 3; // Twee keer ingedruk} if (key == '6') {Serial.println ("Button 6"); as (Getal == 0) Getal = 6; anders Getal = (Getal*10) + 6; // Twee keer ingedruk} if (key == '9') {Serial.println ("Button 9"); as (Getal == 0) Getal = 9; anders Getal = (Getal*10) + 9; // Twee keer ingedruk} as (sleutel == 'A' || sleutel == 'B' || sleutel == 'C' || sleutel == 'D') // Opsporing van knoppies op kolom 4 {Num1 = getal; Getal = 0; if (sleutel == 'A') {Serial.println ("Byvoeging"); action = '+';} if (sleutel == 'B') {Serial.println ("Aftrekking"); aksie = '-'; } if (sleutel == 'C') {Serial.println ("Vermenigvuldiging"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); aksie = '/';} vertraging (100); }}
void CalculateResult () {if (action == '+') Number = Num1+Num2; as (aksie == '-') Getal = Num1-Num2; as (aksie == '*') Getal = Num1*Num2; as (aksie == '/') Getal = Num1/Num2; } ongeldig DisplayResult () {lcd.setCursor (0, 0); // stel die wyser in kolom 0, reël 1 lcd.print (Num1); lcd.print (aksie); lcd.print (Num2); as (resultaat == waar) {lcd.print ("="); lcd.print (Number);} // Wys die resultaat lcd.setCursor (0, 1); // stel die wyser in kolom 0, reël 1 lcd.print (nommer); // Wys die resultaat}
Stap 4: Sakrekenaaruitset
So het ons die verbindings voltooi en die kode opgelaai na arduino en dit is tyd om die stroom aan te sluit en 'n paar berekeninge te doen, en soos u kan sien, doen ek berekeninge met die toetsbord, en u kan die resultate op die LCD sien. Geniet dus u eie selfgemaakte sakrekenaar met behulp van arduino.
Aanbeveel:
RFID -sekuriteitstelsel met LCD 1602: 4 stappe
RFID -sekuriteitstelsel met LCD 1602: Inleiding Ons maak vandag 'n RFID -sekuriteitstelsel. Dit sal werk soos 'n sekuriteitstelsel, en as 'n RFID -etiket of kaart naby is, sal dit 'n boodskap op die LCD 1602 vertoon. Die doel van hierdie projek is om te simuleer hoe RFID -deurslotte werk. So
Arduino LCD 16x2 handleiding - Koppelvlak 1602 LCD -skerm met Arduino Uno: 5 stappe
Arduino LCD 16x2 handleiding | Interfacing 1602 LCD -skerm met Arduino Uno: Hallo ouens, aangesien baie projekte 'n skerm nodig het om die data weer te gee, of dit 'n selfoonmeter is, of 'n YouTube -intekening, of 'n sakrekenaar of 'n toetsblok met skerm en as al hierdie projekte gemaak word arduino, hulle sal beslis beslis
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
Gebruik 1602 LCD -sleutelbordskerm met Arduino [+praktiese projekte]: 7 stappe
Met behulp van 1602 LCD -sleutelbordskerm W/ Arduino [+Praktiese projekte]: U kan hierdie en ander wonderlike tutoriale lees op die amptelike webwerf van ElectroPeak Oorsig In hierdie tutoriaal leer u hoe u Arduino LCD -klavierskerm met 3 praktiese projekte kan gebruik. Hoe om die skild op te stel en die sleutels te identifiseerHo
LCD 1602 met Arduino Uno R3: 6 stappe
LCD 1602 Met Arduino Uno R3: In hierdie les leer ons hoe om 'n LCD1602 te gebruik om karakters en snare te vertoon. LCD1602, of 1602 karakter-tipe vloeibare kristalvertoning, is 'n soort puntmatriksmodule om letters, syfers en karakters ens te wys. Dit bestaan uit 5x7 of