Inhoudsopgave:
- Stap 1: Dingen die je nodig hebt
- Stap 2: Aansluitingen
- Stap 3: Coderen
- Stap 4: Uitvoer van rekenmachine
Video: Arduino DIY-calculator met 1602 LCD en 4x4-toetsenbord - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Hallo jongens in deze instructables zullen we een rekenmachine maken met Arduino die basisberekeningen kan doen. Dus in principe zullen we invoer nemen van het 4x4-toetsenbord en de gegevens afdrukken op een 16x2 lcd-scherm en Arduino zal de berekeningen uitvoeren.
Stap 1: Dingen die je nodig hebt
Voor deze instructables hebben we de volgende dingen nodig: Arduino Uno (elke versie zal werken)
16 × 2 LCD-scherm
4×4 Toetsenbord9V BatterijBreadboardVerbindingsdraden
Stap 2: Aansluitingen
Het complete schakelschema van dit Arduino Calculator Project staat hierboven. De in het schakelschema getoonde +5V- en massa-aansluiting kan worden verkregen via de 5V- en massa-pin van de Arduino. De Arduino zelf kan worden gevoed vanaf uw laptop of via de DC-aansluiting met behulp van een 12V-adapter of 9V-batterij. We bedienen het LCD-scherm in 4-bit-modus met Arduino, dus alleen de laatste vier databits van het LCD-scherm zijn verbonden met Arduino. Het toetsenbord heeft 8 uitgangspinnen die moeten worden aangesloten van pin 0 naar pin 7, zoals hierboven weergegeven. Sommige Arduino-kaarten kunnen een fout vertonen tijdens het uploaden van het programma als er iets is aangesloten op pin 0 en pin1, dus als je iets ervaart, verwijder dan gewoon het toetsenbord tijdens het uploaden van het programma.
Stap 3: Coderen
Kopieer de volgende code en upload uw arduino ernaar:/* * Arduino Keypad-calculatorprogramma */#include "LiquidCrystal.h" //Header-bestand voor LCD van https://www.arduino.cc/en/Reference/LiquidCrystal# omvatten "Keypad.h" // Header-bestand voor Keypad van https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Vier rijenconst byte COLS = 4; // Drie kolommen// Definieer de Keymapchar-toetsen [ROWS][COLS] = { {'7', '8', '9', 'D'}, {'4', '5', '6', ' C'}, {'1', '2', '3', 'B'}, {'*', '0', '#', 'A'}};byte rowPins[ROWS] = { 0, 1, 2, 3 };// Sluit toetsenbord ROW0, ROW1, ROW2 en ROW3 aan op deze Arduino-pinnen.byte colPins [COLS] = {4, 5, 6, 7}; // Sluit toetsenbord COL0, COL1 en COL2 aan op deze Arduino-pinnen. Keypad kpd = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS); // Maak de Keypadconst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pinnen waarop LCD is aangesloten LiquidCrystal lcd (rs, en, d4, d5, d6, d7); lang Num1, Num2, Getal; char-toets, actie; boolean resultaat = false; ongeldige setup () { lcd.begin (16, 2); // We gebruiken een 16 * 2 LCD-scherm lcd.print ("DIY Calculator"); // Geef een introbericht weer lcd.setCursor (0, 1); // zet de cursor op kolom 0, regel 1 vertraging (2000); //Wacht tot het scherm info lcd.clear(); // Maak het vervolgens schoon} void loop () {key = kpd.getKey (); //opslaan van ingedrukte toetswaarde in een charif (key!=NO_KEY)DetectButtons();if (result==true)CalculateResult();DisplayResult(); }nietig DetectButtons(){ lcd.clear(); //Maak het dan schoon als (key=='*') //Als de annuleerknop is ingedrukt {Serial.println ("Button Cancel"); Getal=Num1=Num2=0; result=false;} if (key == '1') //If Button 1 is ingedrukt {Serial.println ("Button 1"); if (Getal==0) Getal=1; anders Getal = (Getal*10) + 1; //Twee keer ingedrukt } if (toets == '4') //Als knop 4 wordt ingedrukt {Serial.println ("Knop 4"); if (Getal==0) Getal=4; anders Getal = (Getal*10) + 4; //Twee keer ingedrukt } if (key == '7') //If Button 7 is ingedrukt {Serial.println ("Button 7"); if (Getal==0) Getal=7; anders Getal = (Getal*10) + 7; // Tweemaal ingedrukt } if (key == '0') {Serial.println ("Knop 0"); // Knop 0 wordt ingedrukt als (nummer == 0) nummer = 0; anders Getal = (Getal*10) + 0; // Tweemaal ingedrukt } als (toets == '2') // Knop 2 is ingedrukt {Serial.println ("Knop 2"); if (Getal==0) Getal=2; anders Getal = (Getal*10) + 2; // Tweemaal ingedrukt } if (key == '5') {Serial.println ("Knop 5"); if (Getal==0) Getal=5; anders Getal = (Getal*10) + 5; // Tweemaal ingedrukt } if (key == '8') {Serial.println ("Knop 8"); if (Getal==0) Getal=8; anders Getal = (Getal*10) + 8; // Tweemaal ingedrukt } if (key == '#') {Serial.println ("Button Equal"); Getal2=Nummer; resultaat = waar; } if (key == '3') {Serial.println ("Knop 3"); if (Getal==0) Getal=3; anders Getal = (Getal*10) + 3; // Tweemaal ingedrukt } if (key == '6') {Serial.println ("Knop 6"); if (Getal==0) Getal=6; anders Getal = (Getal*10) + 6; // Tweemaal ingedrukt } if (key == '9') {Serial.println ("Knop 9"); if (Getal==0) Getal=9; anders Getal = (Getal*10) + 9; // Tweemaal ingedrukt } if (toets == 'A' || toets == 'B' || toets == 'C' || toets == 'D') // Knoppen detecteren op kolom 4 { Num1 = nummer; Getal =0; if (key == 'A') {Serial.println ("Toevoeging"); action = '+';} if (key == 'B') {Serial.println ("Aftrekken"); actie = '-'; } if (key == 'C') {Serial.println ("Vermenigvuldiging"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); actie = '/';} vertraging(100); }}
void BerekenResultaat(){ if (action=='+') Getal = Num1+Num2; if (action=='-') Getal = Num1-Num2; if (action=='*') Getal = Num1*Num2; if (action=='/') Getal = Num1/Num2; } void DisplayResult() { lcd.setCursor(0, 0); // zet de cursor op kolom 0, regel 1 lcd.print (Num1); lcd.print(actie); lcd.afdruk (Num2); if (resultaat==waar) {lcd.print(" ="); lcd.print (Number);} // Geef het resultaat weer lcd.setCursor (0, 1); // zet de cursor op kolom 0, regel 1 lcd.print(Number); // Geef het resultaat weer}
Stap 4: Uitvoer van rekenmachine
Dus we hebben de verbindingen voltooid en de code geüpload naar Arduino en het is tijd om de stroom aan te sluiten en wat berekeningen uit te voeren en zoals je kunt zien, doe ik berekeningen met het toetsenbord en je kunt de resultaten op het lcd zien. Dus veel plezier met het maken van je eigen doe-het-zelf rekenmachine met arduino.
Aanbevolen:
Lego 4x4 toetsenbordmatrix: 8 stappen (met afbeeldingen)
Lego 4x4 toetsenbordmatrix: hoewel ik de afgelopen weken in huis heb vastgezeten, ben ik er eindelijk in geslaagd een aantal projecten af te ronden die in mijn hoofd ronddraaiden. Ik heb de afgelopen weken Lego gebruikt als basis voor de meeste van mijn projecten
RFID-beveiligingssysteem met LCD 1602: 4 stappen
RFID-beveiligingssysteem met LCD 1602: InleidingVandaag gaan we een RFID-beveiligingssysteem maken. Dit werkt als een beveiligingssysteem, dus als een RFID-tag of -kaart in de buurt is, wordt er een bericht weergegeven op de LCD 1602. Het doel van dit project is om te simuleren hoe RFID-deursloten werken. Dus
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
I2C Backlight Control van een LCD-scherm 1602/2004 of HD44780 Etc: 4 stappen
I2C Backlight Control van een LCD Display 1602/2004 of HD44780 Etc: Deze instructable laat zien hoe u de achtergrondverlichting van een LCD-display kunt regelen door middel van een I2C ADC-module. Het contrast kan op dezelfde manier worden geregeld na het verwijderen van de trimpotentiometer