INHOUDSOPGAWE:

LCD Sakrekenaar deur Jai Mishra: 8 stappe
LCD Sakrekenaar deur Jai Mishra: 8 stappe

Video: LCD Sakrekenaar deur Jai Mishra: 8 stappe

Video: LCD Sakrekenaar deur Jai Mishra: 8 stappe
Video: SKR Pro V1.1 - A4988 stepper driver install 2024, Julie
Anonim
LCD Sakrekenaar deur Jai Mishra
LCD Sakrekenaar deur Jai Mishra

Tinkercad -projekte »

Dit is 'n baie nuttige projek wat u leer hoe om u eie sakrekenaar te maak. U kan hierdie sakrekenaar aanlyn of in die werklike lewe met behulp van ekstra voorrade skep, maar vir eers gaan ons slegs fokus op die skep van 'n aanlyn sakrekenaar.

Voorrade

  • Arduino Uno R3
  • 220 Ohm weerstand
  • 4*4 Toetsenbord
  • 16*2 LCD
  • 'N Klomp drade om die stroombaan aan te sluit

Stap 1: Versamel u voorraad op TinkerCad

Versamel u voorraad op TinkerCad
Versamel u voorraad op TinkerCad

Maak seker dat al u voorraad beskikbaar is voordat ons met stap 2 begin om spanning en foute te verminder. Maak seker dat u ook die regte toebehore gebruik; sommige van die komponente op hierdie prent hierbo is soortgelyk aan ander komponente, dus moenie daardeur gemeng word nie. Gebruik die prent hierbo as leidraad.

Stap 2: Rangskik u voorraad

Rangskik jou voorrade
Rangskik jou voorrade

Deur u voorraad te rangskik, is die beste manier om 'n voorsmakie te sien van hoe u sakrekenaar kan lyk. U kan enige tipe sakrekenaarontwerp skep, maar sorg dat die sakrekenaar natuurlik lyk en dat gebruikers die ontwerp kan verstaan en nie deurmekaar raak nie. Ek het 'n tipiese, elegante sakrekenaarontwerp gebruik wat deur almal effektief en verstaanbaar is. U kan my ontwerp kies of u eie ontwerp, maar wees kreatief en sterkte!

Stap 3: Verbind die drade

Verbind die drade
Verbind die drade

Dit is moeilik om die drade aan te sluit as u nie die betekenis daarvan verstaan nie. In hierdie bedrading probeer ons om al vier komponente aan mekaar te koppel, sodat hulle as 'n groep kan werk as dit tyd is om die kode te skryf. As daar geen drade is nie, sal geen stroom vloei nie, wat lei tot 'n mislukte projek. Maak seker dat u drade behoorlik verbind is sonder enige misverstand.

Nadat u die drade verbind het, moet u seker maak dat u drade netjies en georganiseerd is, sodat dit makliker is vir u en ander om te verstaan wat presies in die hardeware van hierdie sakrekenaar aangaan. Soos ek al voorheen gesê het, kan u my tegniek gebruik om u drade te organiseer, of u kan u eie maak, maar wat u ook al besluit om te doen, maak seker dat hulle genoeg ruimte het.

Stap 4: Skryf die kode

Die skryf van die kode
Die skryf van die kode
Die skryf van die kode
Die skryf van die kode
Die skryf van die kode
Die skryf van die kode

#insluit

#include #include

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

lank eerste = 0; lang sekonde = 0; dubbele totaal = 0;

char customKey; const byte RYDE = 4; const byte COLS = 4;

char sleutels [ROWS] [COLS] = {{'1', '4', '7', '/'}, {'2', '5', '8', '+'}, {'3', '6', '9', '-'}, {'C', '0', '=', '*'}}; byte rowPins [ROWS] = {7, 6, 5, 4}; // maak verbinding met die ry -uitknoppies van die sleutelbord -byte colPins [COLS] = {3, 2, 1, 0}; // maak verbinding met die kolomknoppies van die bedieningspaneel

// initialiseer 'n instansie van die klas NewKeypad Keypad customKeypad = Keypad (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS);

ongeldige opstelling () {lcd.begin (16, 2); // begin lcd vir (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("Sakrekenaar"); lcd.setCursor (0, 1); lcd.print ("Deur Jai Mishra"); vertraging (4000); lcd.clear (); lcd.print ("Finale projek"); vertraging (2500); lcd.clear (); lcd.setCursor (0, 0); }

leemte -lus () {

customKey = customKeypad.getKey (); switch (customKey) {case '0' … '9': // Dit versamel steeds die eerste waarde totdat 'n operator "+-*/" lcd.setCursor (0, 0) ingedruk word; eerste = eerste * 10 + (customKey - '0'); lcd.print (eerste); breek;

geval '+': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("+"); tweede = TweedeNommer (); // kry die ingesamel die tweede getal totaal = eerste + tweede; lcd.setCursor (0, 3); lcd.print (totaal); eerste = 0, tweede = 0; // stel waardes terug op nul vir die volgende gebruiksbreek;

geval '-': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("-"); tweede = TweedeNommer (); totaal = eerste - tweede; lcd.setCursor (0, 3); lcd.print (totaal); eerste = 0, tweede = 0; breek;

geval '*': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("*"); tweede = TweedeNommer (); totaal = eerste * tweede; lcd.setCursor (0, 3); lcd.print (totaal); eerste = 0, tweede = 0; breek;

geval '/': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("/"); tweede = TweedeNommer (); lcd.setCursor (0, 3);

tweede == 0? lcd.print ("Ongeldig"): totaal = (float) eerste / (float) tweede;

lcd.print (totaal); eerste = 0, tweede = 0; breek;

geval 'C': totaal = 0; lcd.clear (); breek; }}

lang SecondNumber () {terwyl (1) {customKey = customKeypad.getKey (); if (customKey> = '0' && customKey <= '9') {tweede = tweede * 10 + (customKey - '0'); lcd.setCursor (0, 2); lcd.print (tweede); }

as (customKey == '=') breek; // tweede terugkeer; } tweede terugkeer; }

Stap 5: Die kode afbreek

Die kode afbreek
Die kode afbreek

Ons het die waardes geïnisialiseer wat die rekenaar moet verstaan

#insluit

#include #include

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

lank eerste = 0; lang sekonde = 0; dubbele totaal = 0;

char customKey; const byte RYDE = 4; const byte COLS = 4;

Ons het die nommers en tekens van die bediener aan die rekenaar vertel

char sleutels [ROWS] [COLS] = {{'1', '2', '3', '/'}, {'4', '5', '6', '+'}, {'7', '8', '9', '-'}, {'C', '0', '=', '*'}};

Ons het die rye en kolomme van die sleutelbord gefinaliseer en watter nommer kom in watter kolom, ens

byte rowPins [ROWS] = {7, 6, 5, 4}; byte colPins [COLS] = {3, 2, 1, 0};

Ons het die intro, of die skerm op die rekenaar, gemaak (u kan u eie naam daarop skryf)

ongeldige opstelling () {lcd.begin (16, 2); vir (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("Sakrekenaar"); lcd.setCursor (0, 1); lcd.print ("Deur Jai Mishra"); vertraging (4000); lcd.clear (); lcd.print ("Finale projek"); vertraging (2500); lcd.clear (); lcd.setCursor (0, 0); }

Ons skep die betekenis en die formule vir elke bewerking in die sakrekenaar, sodat die rekenaar kan verstaan watter formule hy moet gebruik as die gebruiker op die "+" op die sakrekenaar druk, ens

{geval '0' … '9': lcd.setCursor (0, 0); eerste = eerste * 10 + (customKey - '0'); lcd.print (eerste); breek;

geval '/': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("/"); tweede = TweedeNommer (); lcd.setCursor (0, 3);

tweede == 0? lcd.print ("Ongeldig"): totaal = (float) eerste / (float) tweede;

lcd.print (totaal); eerste = 0, tweede = 0; breek; geval '+': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("+"); tweede = TweedeNommer (); lcd.setCursor (0, 3); lcd.print (totaal); eerste = 0, tweede = 0; breek;

geval '-': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("-"); tweede = TweedeNommer (); totaal = eerste - tweede; lcd.setCursor (0, 3); lcd.print (totaal); eerste = 0, tweede = 0; breek;

geval '*': eerste = (totaal! = 0? totaal: eerste); lcd.setCursor (0, 1); lcd.print ("*"); tweede = TweedeNommer (); totaal = eerste * tweede; lcd.setCursor (0, 3); lcd.print (totaal); eerste = 0, tweede = 0; breek;

geval 'C': totaal = 0; lcd.clear (); breek; }}

Die kode is baie maklik; al wat u hoef te doen is om dit te probeer verstaan en dan kan alles maklik gedoen word. E -pos my as u probleme met die kode het

Stap 6: Hoe werk die hardeware van hierdie sakrekenaar?

Hoe werk die hardeware van hierdie sakrekenaar?
Hoe werk die hardeware van hierdie sakrekenaar?

Hierdie sakrekenaar gebruik 'n LCD, 'n klavier, 'n Arduino -bord en 'n weerstand van 220 ohm. Al hierdie komponente is apart, maar is verbind met die drade van die Arduino na die klavier en die LCD. Verskillende dele van die LCD is verbind met die Arduino -bord, wat hulle uiteindelik met die toetsbord verbind. Na die verbinding doen die kodering al die werk en gee elke operasie en knoppie op die bedieningspaneel 'n taak om te volg.

Stap 7: Volledige voorskou van die sakrekenaar

So lyk ons finale projek! As u kode nie werk nie, of as u tegniese probleme ondervind, stuur 'n e -pos aan my, en ek sal my bes doen om die beste sakrekenaar te skep!

Stap 8: My inspirasie vir hierdie kode

Ek is geïnspireer uit die video hierbo oor hoe om 'n sakrekenaar op tinkercad te maak! Ek het niks gekopieer en geplak nie, maar ek het sy idee van die sakrekenaar en die begrip van die kode gebruik.

Aanbeveel: