Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
I denna handledning kommer vi att bygga vår egen miniräknare med Arduino. Värdena kan skickas in via en knappsats (4 × 4 knappsats) och resultatet kan ses på en LCD -skärm. Denna räknare kan utföra enkla operationer som addition, subtraktion, multiplikation och division med heltal. Men när du väl förstår konceptet kan du implementera även vetenskapliga funktioner med Arduinos inbyggda funktioner.
Tillbehör
Arduino Uno
16 × 2 LCD -skärm
4 × 4 knappsats
Bakbord
Startkablar
Arduino -kabel
Steg 1: Scheman
Steg 2: Installation av bibliotek:
Som tidigare berättat kommer vi att ansluta en LCD och knappsats till Arduino med hjälp av bibliotek. Så låt oss lägga till dem i vår Arduino IDE först. Biblioteket för LCD är redan inkluderat i din Arduino som standard så vi behöver inte oroa oss för det. För knappsatsbibliotek (klicka på länken för att ladda ner det från Github). Du får en ZIP -fil och lägger sedan till denna lib till Arduino med Sketch -> Inkludera bibliotek -> Lägg till. ZIP -fil och pekar platsen på den nedladdade filen. När vi är klara är vi redo för programmering.
Steg 3: Källkod:
/*
© Techtronic Harsh
*/
#omfatta
#omfatta
LiquidCrystal lcd (0, 1, 2, 3, 4, 5);
const byte RADER = 4; const byte COLS = 4;
char nycklar [RADER] [COLS] = {
{'1', '2', '3', '+'}, {'4', '5', '6', '-'}, {'7', '8', '9', ' *'}, {' C ',' 0 ',' = ','/'}}; byte rowPins [ROWS] = {13, 12, 11, 10}; byte colPins [COLS] = {9, 8, 7, 6};
Knappsats myKeypad = Knappsats (makeKeymap (nycklar), rowPins, colPins, ROWS, COLS);
booleskt presentValue = false;
booleskt nästa = falskt; booleskt slutligt = falskt; Sträng num1, num2; int svar; char op;
void setup ()
{lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Techtronic Harsh"); lcd.setCursor (0, 1); lcd.print ("Kalkylator"); fördröjning (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Gilla Och"); lcd.setCursor (0, 1); lcd.print ("Prenumerera oss"); fördröjning (3000); lcd.clear (); }
void loop () {
char key = myKeypad.getKey ();
if (key! = NO_KEY && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key = = '6' || key == '7' || key == '8' || key == '9' || key == '0'))
{if (presentValue! = true) {num1 = num1 + key; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // för att justera ett blanksteg för operator lcd.print (num1); } annat {num2 = num2 + nyckel; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); final = true; }}
annars om (presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))
{if (presentValue == false) {presentValue = true; op = nyckel; lcd.setCursor (15, 0); lcd.print (op); }}
annars om (final == true && key! = NO_KEY && key == '=') {
om (op == ' +') {svar = num1.toInt () + num2.toInt (); } annars if (op == ' -') {answer = num1.toInt () - num2.toInt (); } annars if (op == ' *') {answer = num1.toInt () * num2.toInt (); } annars if (op == ' /') {answer = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (svar); lcd.noAutoscroll (); } annars if (key! = NO_KEY && key == 'C') {lcd.clear (); presentValue = false; slutlig = falsk; num1 = ""; num2 = ""; svar = 0; op = ''; }}
/*
© Techtronic Harsh
*/
Steg 4: Arbeta:
Gör anslutningarna enligt kretsschema och ladda upp koden. Om det visar fel, se till att du har lagt till biblioteket enligt instruktionerna ovan.
Tecken på knappsats och antagande:
- “A” - Tillägg (+)
- “B” - Subtraktion (-)
- “C” - multiplikation (*)
- “D” - Division (/)
- “*” - Rensa (C)
- “#” - är lika med (=)