Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino-rekenmachine

Componenten en benodigdheden

Arduino UNO
× 1
RGB LCD Shield Kit, 16x2 Character Display
× 1
Jumperdraden (algemeen)
× 1
9V-batterij (algemeen)
× 1
Broodplank (algemeen)
× 1

Over dit project

Aan het einde van dit project weet je hoe je een 16x2 LCD en toetsenbord met Arduino moet gebruiken en hoe gemakkelijk het is om voor hen te programmeren met behulp van de direct beschikbare bibliotheken. U zult ook begrijpen hoe u uw Arduino programmeert om een ​​bepaalde taak uit te voeren.

Benodigde materialen:

  • Arduino Uno (elke versie werkt)
  • 16×2 LCD-scherm
  • 4×4 toetsenbord
  • 9V batterij
  • Broodplank en verbindingsdraden

D0

1e pin van het toetsenbord

D1

2e pin van het toetsenbord

D2

3e pin van het toetsenbord

D3

4e pin van het toetsenbord

D4

5e pin van het toetsenbord

D5

6e pin van het toetsenbord

D6

7e pin van het toetsenbord

D7

8e pin van het toetsenbord

D8

Registreer selecteer pin van LCD (pin 4)

D9

Pin van LCD inschakelen (pin 6)

D10

Gegevens pin 4 (pin 11)

D11

Gegevens pin 4 (pin 11)

D12

Gegevens pin 4 (pin 11)

D13

Gegevens pin 4 (pin 11)

+5V

Verbonden met Vdd-pin van LCD (pin 2)

Grond

Verbonden met Vss, Vee en RW pin van LCD (pin 1, 3 en 5)

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.

Zodra uw verbindingen tot stand zijn gebracht, ziet uw hardware er ongeveer zo uit als hieronder

Code

  • Naamloos bestand
Naamloos bestandArduino
* * Arduino Keypad-calculatorprogramma */#include  //Header-bestand voor LCD van https://www.arduino.cc/en/Reference/LiquidCrystal#include  //Header bestand voor toetsenbord van https://github.com/Chris--A/Keypadconst byte ROWS =4; // Vier rijenconstbyte COLS =4; // Drie kolommen// Definieer de Keymapchar-sleutels [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. Toetsenbord kpd =Toetsenbord (makeKeymap (sleutels), rowPins, colPins, RIJEN, 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 getal1, getal2, getal; char-toets, actie; booleaans resultaat =onwaar; void 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 lcd.print("-CircuitDigest"); // Geef een vertraging van het introbericht weer (2000); //Wacht op het display om 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; resultaat=false;} if (key =='1') //Als knop 1 wordt ingedrukt {Serial.println ("Knop 1"); if (Getal==0) Getal=1; anders Getal =(Getal*10) + 1; //Twee keer ingedrukt } if (key =='4') //If Button 4 is ingedrukt {Serial.println ("Button 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; //Twee keer ingedrukt } if (key =='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 (sleutel =='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); } }ongeldig 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); //Toon het resultaat}

Schema's


Productieproces

  1. Deegrol
  2. Bowlingspeld
  3. Arduino Keyboard Exploit Demo (HID) en preventie
  4. Atmel AT89-serie programmeren via Arduino
  5. Arduino Spybot
  6. PPM-signaal van de RC-ontvanger lezen met Arduino
  7. FlickMote
  8. Zelfgemaakte tv B-Gone
  9. Hoofdklok
  10. Arduino + LED's + MIDI Keyboard + MuseScore =Piano Tutor
  11. 25 kHz 4-pins PWM-ventilatorregeling met Arduino Uno