
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03

Ei, recentemente estive explorando como implementar diferentes tipos de código em um circuito. Descobri que fazer uma calculadora seria uma ótima maneira de implementar "case" e outras formas de código que achei interessantes. No passado, fiz calculadoras direto do código, mas fazer um circuito para elas me despertou interesse. Principalmente durante esse período de quarentena em que fico no computador quase o dia todo. O projeto é implementar operações matemáticas em uma tela LCD.
Etapa 1: Materiais
Para Circuito:
- LCD 16 x 2
- Arduino Uno R3
- Teclado 4x4
- Prancha de pão pequena
- Potenciômetro (250 kΩ)
- Resistor (1kΩ)
- x26 fios de ligação
Etapa 2: Conectando o teclado 4x4

Conecte os pinos de 4 linhas no teclado 4x4 aos pinos 4-7 do Arduino e conecte os pinos de 4 colunas aos pinos 0-3 do Arduino.
Etapa 3: Forneça energia para a placa de ensaio e conecte o LCD

Usei uma tensão de alimentação de 5 para a placa de ensaio. Eu conectei a energia e o aterramento à placa de ensaio. O LCD é colocado na placa de ensaio e colocado de forma que todos os seus pinos sejam conectados à placa de ensaio.
Etapa 4: conecte a alimentação e o aterramento ao LCD

Haverá 3 pinos de aterramento necessários para serem conectados ao LCD. Um será conectado ao aterramento próprio do LCD, outro será conectado ao LED do LCD, e o último será conectado ao RW. O VCC do LCD e o led exigirão alimentação para serem conectados. Porém, a alimentação do LED exigirá um resistor conectado, neste caso usei um resistor de 1kΩ.
Etapa 5: conectando o potenciômetro

Conecte o potenciômetro à placa de ensaio com 3 colunas livres. Ele terá 3 pinos, a coluna que contém o pino do terminal 1 precisará de aterramento fornecido a ele. A coluna que contém o pino do terminal 2 precisará de alimentação. Em seguida, o limpador terá um fio de jumper em sua coluna que se conecta ao VO do LCD.
Etapa 6: Conectando o Arduino ao LCD

Os pinos 8-13 no Arduino serão conectados ao LCD. Os pinos 8-11 no Arduino se conectarão ao D8 (7-4) respectivamente. Em seguida, o pino 12 do Arduino se conectará com o Enable do LCD e o pino 13 do Arduino se conectará ao registro do LCD.
Etapa 7: Implementar Código
O código será necessário para usar operações matemáticas com o teclado e LCD. A seguir será o código que usei, no entanto, várias alterações ainda podem ser implementadas para torná-lo mais limpo e melhor. Portanto, fique à vontade para brincar um pouco com ele.
#include #include
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
longo primeiro = 0;
segundo longo = 0;
total duplo = 0;
int posit = 0;
char customKey;
const byte ROWS = 4;
const byte COLS = 4;
chaves char [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};
Teclado customKeypad = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);
void setup () {
lcd.begin (16, 2);
lcd.setCursor (5, 0);
lcd.clear (); }
void loop () {
customKey = customKeypad.getKey ();
switch (customKey) {
caso '0' … '9':
lcd.setCursor (0, 0);
primeiro = primeiro * 10 + (customKey - '0');
lcd.print (primeiro);
posit ++;
pausa;
case '+':
primeiro = (total! = 0? total: primeiro);
lcd.setCursor (posit, 0);
lcd.print ("+");
posit ++;
segundo = SecondNumber ();
total = primeiro + segundo;
lcd.setCursor (1, 1);
lcd.print (total);
primeiro = 0, segundo = 0;
postular = 0;
pausa;
caso '-':
primeiro = (total! = 0? total: primeiro);
lcd.setCursor (posit, 0);
lcd.print ("-");
posit ++;
segundo = SecondNumber ();
total = primeiro - segundo;
lcd.setCursor (1, 1);
lcd.print (total);
primeiro = 0, segundo = 0;
postular = 0;
pausa;
caso '*':
primeiro = (total! = 0? total: primeiro);
lcd.setCursor (posit, 0);
lcd.print ("*");
posit ++;
segundo = SecondNumber ();
total = primeiro * segundo;
lcd.setCursor (1, 1);
lcd.print (total);
primeiro = 0, segundo = 0;
postular = 0;
pausa;
caso '/':
primeiro = (total! = 0? total: primeiro);
lcd.setCursor (posit, 0);
lcd.print ("/");
posit ++;
segundo = SecondNumber (); lcd.setCursor (1, 1);
segundo == 0? lcd.print ("Erro"): total = (flutuante) primeiro / (flutuante) segundo;
lcd.print (total);
primeiro = 0, segundo = 0;
postular = 0;
pausa;
caso 'C':
total = 0;
primeiro = 0;
segundo = 0;
postular = 0;
lcd.clear ();
pausa; }
}
Long SecondNumber () {
enquanto (1) {
customKey = customKeypad.getKey ();
if (customKey> = '0' && customKey <= '9') {
segundo = segundo * 10 + (customKey - '0');
lcd.setCursor (posit, 0);
lcd.print (segundo); }
if (customKey == 'C') {
total = 0;
primeiro = 0;
segundo = 0;
postular = 0;
lcd.clear ();
pausa; }
if (customKey == '=') {
lcd.setCursor (0, 1);
lcd.print ("=");
posit = total;
lcd.clear ();
lcd.setCursor (0, 1);
lcd.print ("=");
pausa; }
}
retornar em segundo lugar;}
Etapa 8: Resultado


Espero que todos tenham gostado deste instrutível. Obrigado por ler!
Saim.
Recomendado:
Desenho de robô com escudo de Adafruit (concurso Make It Move): 10 etapas (com imagens)

Drawing Robot With Adafruit Shield (Concurso Make It Move): Olá, meus nomes, Jacob e eu moramos no Reino Unido. Neste projeto vou construir um robô que desenha para você. * Tenho certeza de que muitos de vocês querem ver, então, se quiserem saber, pule direto para a penúltima etapa, mas certifique-se de voltar aqui para ver
Esteira DIY VR - Concurso Basys3 FPGA-Digilent: 3 etapas

DIY VR Treadmill- Basys3 FPGA-Digilent Contest: Você quer construir uma esteira VR na qual você possa executar seus aplicativos e jogos de desktop? Então você veio ao lugar certo! Nos jogos convencionais você usa o mouse e o teclado para interagir com o ambiente. Portanto, precisamos enviar o
Harvest Drawers - NASA Growing Beyond Earth Concurso Inscrição: 5 etapas (com fotos)

Harvest Drawers - NASA Growing Beyond Earth Concurso Inscrição: Resumo: A bordo da estação espacial internacional, os astronautas não têm muito espaço para cultivar alimentos. Este jardim hidropônico é projetado para operar de forma eficiente usando a quantidade mínima de espaço para colher 30 plantas em um cronograma rotativo em uma gravidade zero
Braço do robô servo motor RC controlado por Fpga - Concurso Digilent: 3 etapas

Braço de robô servo motor RC controlado por Fpga - Concurso Digilent: braço de robô servo motor controlado por FPGA. O objetivo deste projeto é criar um sistema programável que possa realizar operações de soldagem na placa perf. O sistema é baseado na placa de desenvolvimento Digilent Basys3 e será capaz de soldar co
Marca: Inscrição no Concurso de Emblema de Nova York em uma impressora GameBoy antiga: 14 etapas (com fotos)

Marca: Inscrição no Concurso de Insígnias de Nova York de uma antiga impressora GameBoy: Olá a todos, aqui está minha segunda chance em um Instructable .. sejam gentis .. Então, a reunião local de Make: NYC teve um concurso de emblemas para sua segunda reunião .. (link aqui) , a essência da competição é fazer um crachá / crachá usável de algum tipo, de alguns materiais