Taula de continguts:

Concurs Calculator TinkerCad: 8 passos
Concurs Calculator TinkerCad: 8 passos

Vídeo: Concurs Calculator TinkerCad: 8 passos

Vídeo: Concurs Calculator TinkerCad: 8 passos
Vídeo: Pensament Computacional Desendollat: 1r seminari web 2024, Desembre
Anonim
Concurs Calculadora TinkerCad
Concurs Calculadora TinkerCad

Hola, recentment he estat explorant com implementar diferents tipus de codi en un circuit. Vaig trobar que fer una calculadora seria una bona manera d'implementar "majúscules" i altres formes de codi que m'ha semblat interessants. En el passat he fet calculadores directament del codi, però fer un circuit per a mi em va interessar. Especialment durant aquesta època de quarantena on estic gairebé tot el dia al meu ordinador. El projecte consisteix a implementar operacions matemàtiques en una pantalla LCD.

Pas 1: materials

Per al circuit:

  • LCD de 16 x 2
  • Arduino Uno R3
  • Teclat 4x4
  • Taula de pa petita
  • Potenciòmetre (250 kΩ)
  • Resistència (1 kΩ)
  • x26 cables de pont

Pas 2: connectar el teclat 4x4

Connexió del teclat 4x4
Connexió del teclat 4x4

Connecteu els 4 pins de fila del teclat 4x4 als pins Arduino 4-7 i connecteu els 4 pins de columna als pins Arduino 0-3.

Pas 3: subministreu alimentació a la tauleta de pa i connecteu la pantalla LCD

Subministreu alimentació a la placa de pa i connecteu la pantalla LCD
Subministreu alimentació a la placa de pa i connecteu la pantalla LCD

Vaig utilitzar un voltatge de potència de 5 per a la taula de treball. Vaig connectar l’alimentació i la terra a la placa. La pantalla LCD es col·loca a la taula de configuració i es col·loca de manera que tots els seus pins es connectin a la taula de treball.

Pas 4: connecteu l'alimentació i la terra a la pantalla LCD

Connecteu l'alimentació i la terra a la pantalla LCD
Connecteu l'alimentació i la terra a la pantalla LCD

Hi haurà 3 pins de terra necessaris per connectar-se a la pantalla LCD. Un es connectarà a la terra a si mateix de la pantalla LCD, un altre es connectarà al LED de la pantalla LCD i l'últim es connectarà al RW. El VCC de la pantalla LCD i el led necessitaran poder connectar-se. No obstant això, la potència del LED requerirà una resistència connectada en aquest cas, he utilitzat una resistència de 1kΩ.

Pas 5: connectar el potenciòmetre

Connexió del potenciòmetre
Connexió del potenciòmetre

Connecteu el potenciòmetre a la taula amb tres columnes lliures. Tindrà 3 pins, la columna que conté el terminal 1 pin necessitarà terra que se li doni. La columna que conté el terminal 2 pin necessitarà energia. A continuació, el netejador tindrà un cable de pont a la seva columna que es connecta al VO de la pantalla LCD.

Pas 6: Connexió de l'Arduino a la pantalla LCD

Connexió de l'Arduino a la pantalla LCD
Connexió de l'Arduino a la pantalla LCD

Els pins 8-13 de l’Arduino es connectaran a la pantalla LCD. Els pins 8-11 de l’Arduino es connectaran a D8 (7-4) respectivament. A continuació, el pin 12 de l’Arduino es connectarà amb l’activació de la pantalla LCD i el pin 13 de l’Arduino es connectarà al registre de la pantalla LCD.

Pas 7: implementeu el codi

Es necessitarà codi per utilitzar operacions matemàtiques amb el teclat i la pantalla LCD. El següent serà el codi que he fet servir, tot i que es poden implementar diversos canvis per fer-lo més net i millor. Així que no dubteu a jugar-hi una mica.

#include #include

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

llarg primer = 0;

segon llarg = 0;

doble total = 0;

int posit = 0;

char customKey;

byte const ROWS = 4;

byte const COLS = 4;

tecles de caràcters [ROWS] [COLS] = {

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

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

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

Teclat customKeypad = Teclat (makeKeymap (tecles), rowPins, colPins, ROWS, COLS);

configuració nul·la () {

lcd.begin (16, 2);

lcd.setCursor (5, 0);

lcd.clear (); }

bucle buit () {

customKey = customKeypad.getKey ();

commutador (tecla personalitzada) {

cas '0' … '9':

lcd.setCursor (0, 0);

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

lcd.print (primer);

posit ++;

trencar;

cas '+':

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

lcd.setCursor (posit, 0);

lcd.print ("+");

posit ++;

segon = segon número ();

total = primer + segon;

lcd.setCursor (1, 1);

lcd.print (total);

primer = 0, segon = 0;

posit = 0;

trencar;

Caixa '-':

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

lcd.setCursor (posit, 0);

lcd.print ("-");

posit ++;

segon = segon número ();

total = primer - segon;

lcd.setCursor (1, 1);

lcd.print (total);

primer = 0, segon = 0;

posit = 0;

trencar;

Caixa '*':

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

lcd.setCursor (posit, 0);

lcd.print ("*");

posit ++;

segon = segon número ();

total = primer * segon;

lcd.setCursor (1, 1);

lcd.print (total);

primer = 0, segon = 0;

posit = 0;

trencar;

Caixa '/':

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

lcd.setCursor (posit, 0);

lcd.print ("/");

posit ++;

segon = segon número (); lcd.setCursor (1, 1);

segon == 0? lcd.print ("Error"): total = (float) primer / (float) segon;

lcd.print (total);

primer = 0, segon = 0;

posit = 0;

trencar;

cas "C":

total = 0;

primer = 0;

segon = 0;

posit = 0;

lcd.clear ();

trencar; }

}

llarg segon número () {

mentre (1) {

customKey = customKeypad.getKey ();

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

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

lcd.setCursor (posit, 0);

lcd.print (segon); }

if (customKey == 'C') {

total = 0;

primer = 0;

segon = 0;

posit = 0;

lcd.clear ();

trencar; }

if (customKey == '=') {

lcd.setCursor (0, 1);

lcd.print ("=");

posit = total;

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("=");

trencar; }

}

tornar segon;}

Pas 8: Resultat

Resultat
Resultat
Resultat
Resultat

Espero que a tots us hagi agradat aquest instructiu. Gràcies per llegir!

Saim.

Recomanat: