webwinkelkeur logo

4.7 Ø

5183+ Bewertungen
webwinkelkeur logoAlle ansehen

5183+ Bewertungen

5183+ Bewertungen

Bestellen bis 16:00 Uhr für Versand am selben Tag

14 Tage Rückgabe

DE

DE

Privat

Geschäftlich

Arduino-Projekt: Taschenrechner

Fortgeschritten
25 Min
22,37

In diesem unterhaltsamen Projekt lernen Sie, wie Sie Ihren eigenen Arduino- Taschenrechner bauen.

Mit diesem Rechner können Sie einfache Berechnungen durchführen. Diese sind Plus, Minus, mal oder geteilt durch. Erwarten Sie also nicht, dass Sie damit Gleichungen lösen können.

Wir tun dies mithilfe einer 4x4-Tastatur und eines 16x2-LCD-Displays. Wir schließen das Display über I2C an, bedenken Sie also, dass Sie zusätzliche Bibliotheken benötigen. Für das Keypad müssen Sie die Keypad-Bibliothek importieren, weitere Informationen hierzu finden Sie im Piezo-Piano -Projekt. Informationen zu den I2C-Bibliotheken finden Sie im I2C-LCD- Projekt.

Bau und Verkabelung

Programmierung

//de librarys die we nodig hebben

#include <Wire.h>

#include <Keypad.h>

#include <LiquidCrystal_I2C>

//keypad definities

const byte ROWS = 4;

const byte COLS = 4;

char keys[ROWS][COLS] = {

  {‘1’, ‘2’, ‘3’, ‘+’},

  {‘4’, ‘5’, ‘6’, ‘-‘},

  {‘7’, ‘8’, ‘9’, ‘*’},

  {‘C’, ‘0’, ‘=’, ‘/’}

};

byte rowPins[ROWS] = {0, 1, 2, 3};

byte colPins[COLS] = {4, 5, 6, 7};

 

Keypad ourKeypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

//lcd initializeren

LiquidCrystal_I2C lcd(0x3F,20,4);

 

//hier zeggen wat deze waardes zijn

boolean eersteNumState = true;

String eersteNum = “”;

String tweedeNum = “”;

float antw = 0.0;

char oper = ‘ ‘;

 

void setup(){

  //hier zetten we het beeldscherm aan

  lcd.begin(16,2);

  lcd.init();

  lcd.init();

  lcd.backlight();

  lcd.setCursor(0,0);

  lcd.print(“Elektronica”);

  lcd.setCursor(0,1);

  lcd.print(“Voor Jou”);

  delay(1500);

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print(“rekenmachine”);

  delay(1500);

  lcd.clear();

}

void loop(){

  char newKey = ourKeypad.getKey();

  //wat hij moet doen als hij een nummer binnen krijgt

  if(newKey != NO_KEY && (newKey == ‘1’ || newKey == ‘2’ || newKey == ‘3’ || newKey == ‘4’ || newKey == ‘5’ || newKey == ‘6’ || newKey == ‘7’ || newKey == ‘8’ || newKey == ‘9’ || newKey ==’0′)){

    if(eersteNumState == true){

      eersteNum = eersteNum + newKey;

      lcd.print(newKey);

    }else{

      tweedeNum = tweedeNum + newKey;

      lcd.print(newKey);

    }

  }

  //wat hij moet doen als hij een operator binnen krijgt

  if(newKey != NO_KEY && (newKey == ‘+’ || newKey == ‘-‘ || newKey == ‘*’ || newKey == ‘/’)){

    if(eersteNumState == true){

      oper = newKey;

      eersteNumState = false;

      lcd.print(oper);

    }

  }

  //hier zeggen we wat er gebeurt als je

  //op # drukt

  if(newKey != NO_KEY && newKey == ‘=’){

    //wat hij moet doen als je operator

    //+ is

    if(oper == ‘+’){

      antw = eersteNum.toFloat() + tweedeNum.toFloat();

    }

    //wat hij moet doen als je operator

    //- is

    if(oper == ‘-‘){

      antw = eersteNum.toFloat() – tweedeNum.toFloat();

    }

    //wat hij moet doen als je operator

    //* is

    if(oper == ‘*’){

      antw = eersteNum.toFloat() * tweedeNum.toFloat();

    }

    //wat hij moet doen als je operator

    //gedeeld door is

    if(oper == ‘/’){

      antw = eersteNum.toFloat() / tweedeNum.toFloat();

    }

    lcd.setCursor(0,0);

    lcd.print(eersteNum);

    lcd.print(oper);

    lcd.print(tweedeNum);

    lcd.setCursor(0,1);

    lcd.print(“=”);

    lcd.print(antw);

    eersteNumState = true;

  }

  if(newKey != NO_KEY && newKey == ‘C’){

    //hier zeggen we wat er gebeurt als je

    //op * drukt

    lcd.clear();

    lcd.setCursor(0,0);

    eersteNum = “”;

    tweedeNum = “”;

    antw = 0;

    oper = ‘ ‘;

  }

}