Cuprins:

Concurs Calculator TinkerCad: 8 pași
Concurs Calculator TinkerCad: 8 pași
Anonim
Concurs Calculator TinkerCad
Concurs Calculator TinkerCad

Hei, așa că recent am explorat cum să implementez diferite tipuri de cod într-un circuit. Am descoperit că realizarea unui calculator ar fi o modalitate excelentă de a implementa „caz” și alte forme de cod pe care le-am găsit interesante. În trecut am făcut calculatoare direct din cod, dar crearea unui circuit pentru acesta mi-a dat interes. Mai ales în această perioadă de carantină, unde sunt pe computer aproape toată ziua. Proiectul este de a implementa operații matematice pe un ecran LCD.

Pasul 1: Materiale

Pentru circuit:

  • LCD 16 x 2
  • Arduino Uno R3
  • Tastatură 4x4
  • Mică panou
  • Potențiometru (250 kΩ)
  • Rezistor (1kΩ)
  • x26 fire de jumper

Pasul 2: Conectarea tastaturii 4x4

Conectarea tastaturii 4x4
Conectarea tastaturii 4x4

Conectați cei 4 pini de rând de pe tastatura 4x4 la pinii Arduino 4-7 și conectați cei 4 pini de coloană la pinii Arduino 0-3.

Pasul 3: furnizați alimentare panoului și conectați ecranul LCD

Furnizați alimentare panoului și conectați LCD
Furnizați alimentare panoului și conectați LCD

Am folosit o tensiune de alimentare de 5 pentru panou. Am conectat alimentarea și împământarea la panou. Ecranul LCD este așezat pe panou și așezat astfel încât toți pinii să fie conectați la panou.

Pasul 4: Conectați alimentarea și împământarea la ecranul LCD

Conectați alimentarea și împământarea la ecranul LCD
Conectați alimentarea și împământarea la ecranul LCD

Pentru conectarea la LCD vor fi necesari 3 pini de masă. Unul va fi conectat la pământ de sine-ul său LCD, altul va fi conectat la LED-ul LCD, iar ultimul va fi conectat la RW. VCC-ul LCD și led-ul vor necesita conectarea la alimentare. Cu toate acestea, puterea pentru LED va necesita un rezistor conectat în acest caz, am folosit un rezistor de 1kΩ.

Pasul 5: Conectarea potențiometrului

Conectarea potențiometrului
Conectarea potențiometrului

Conectați potențiometrul la panoul cu 3 coloane libere. Va avea 3 pini, coloana care conține terminalul 1 pini va avea nevoie de pământ. Coloana care conține pinul 2 al terminalului va avea nevoie de energie. Apoi ștergătorul va avea un cablu jumper în coloana sa, care se conectează la VO al ecranului LCD.

Pasul 6: Conectarea Arduino la LCD

Conectarea Arduino la LCD
Conectarea Arduino la LCD

Pinii 8-13 de pe Arduino vor fi conectați la LCD. Pinii 8-11 de pe Arduino se vor conecta la D8 (7-4), respectiv. Apoi pinul 12 al Arduino se va conecta cu Enable of the LCD, iar pinul 13 de pe Arduino se va conecta la registrul LCD-ului.

Pasul 7: Implementați codul

Va fi necesar cod pentru a utiliza operații matematice cu tastatura și LCD. Următorul va fi codul pe care l-am folosit, totuși mai multe modificări pot fi implementate pentru a-l face mai curat și mai bun. Așadar, nu ezitați să vă jucați puțin cu el.

#include #include

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

lung primul = 0;

secunda lunga = 0;

total dublu = 0;

int pozitiv = 0;

char customKey;

octet const ROWS = 4;

octet const COLS = 4;

chei de caractere [ROWS] [COLS] = {

{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'}};

byte rowPins [ROWS] = {7, 6, 5, 4};

octet colPins [COLS] = {3, 2, 1, 0};

Tastatură customKeypad = Tastatură (makeKeymap (taste), rowPins, colPins, ROWS, COLS);

configurare nulă () {

lcd.inceput (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

bucla nulă () {

customKey = customKeypad.getKey ();

switch (customKey) {

cazul „0”… „9”:

lcd.setCursor (0, 0);

first = first * 10 + (customKey - '0');

lcd.print (primul);

pozitiv ++;

pauză;

cazul '+':

first = (total! = 0? total: first);

lcd.setCursor (pozitiv, 0);

lcd.print ("+");

pozitiv ++;

al doilea = Numărul al doilea ();

total = primul + al doilea;

lcd.setCursor (1, 1);

lcd.print (total);

primul = 0, al doilea = 0;

pozitiv = 0;

pauză;

caz '-':

first = (total! = 0? total: first);

lcd.setCursor (pozitiv, 0);

lcd.print ("-");

pozitiv ++;

al doilea = Numărul al doilea ();

total = primul - al doilea;

lcd.setCursor (1, 1);

lcd.print (total);

primul = 0, al doilea = 0;

pozitiv = 0;

pauză;

cazul '*':

first = (total! = 0? total: first);

lcd.setCursor (pozitiv, 0);

lcd.print ("*");

pozitiv ++;

al doilea = Numărul al doilea ();

total = primul * al doilea;

lcd.setCursor (1, 1);

lcd.print (total);

primul = 0, al doilea = 0;

pozitiv = 0;

pauză;

caz '/':

first = (total! = 0? total: first);

lcd.setCursor (pozitiv, 0);

lcd.print ("/");

pozitiv ++;

al doilea = Numărul al doilea (); lcd.setCursor (1, 1);

al doilea == 0? lcd.print ("Eroare"): total = (float) primul / (float) al doilea;

lcd.print (total);

primul = 0, al doilea = 0;

pozitiv = 0;

pauză;

cazul „C”:

total = 0;

primul = 0;

al doilea = 0;

pozitiv = 0;

lcd.clear ();

pauză; }

}

lung al doilea număr () {

în timp ce (1) {

customKey = customKeypad.getKey ();

if (customKey> = '0' && customKey <= '9') {

second = second * 10 + (customKey - '0');

lcd.setCursor (pozitiv, 0);

lcd.print (al doilea); }

if (customKey == 'C') {

total = 0;

primul = 0;

al doilea = 0;

pozitiv = 0;

lcd.clear ();

pauză; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

pozit = total;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

pauză; }

}

întoarce-te al doilea;}

Pasul 8: Rezultat

Rezultat
Rezultat
Rezultat
Rezultat

Sper că v-ați bucurat cu toții de acest instructabil. Mulțumesc că ai citit!

Saim.

Recomandat: