Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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.