Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Calculadora Arduino

Componentes e suprimentos

Arduino UNO
× 1
Kit RGB LCD Shield, visor de caracteres 16x2
× 1
Fios de jumpers (genérico)
× 1
Bateria de 9 V (genérica)
× 1
Breadboard (genérico)
× 1

Sobre este projeto




No final deste projeto você saberá como usar um LCD 16x2 e teclado com Arduino e também como é fácil programar para eles usando as bibliotecas disponíveis. Você também entenderá como programar seu Arduino para realizar uma tarefa específica.





Materiais necessários:

  • Arduino Uno (qualquer versão funcionará)
  • Tela LCD 16 × 2
  • teclado 4 × 4
  • Bateria 9V
  • Placa de ensaio e fios de conexão

D0

1º pino do teclado

D1

2º pino do teclado

D2

3º pino do teclado

D3

4º pino do teclado

D4

5º pino do teclado

D5

6º pino do teclado

D6

7º pino do teclado

D7

8º pino do teclado

D8

Registre o pino de seleção do LCD (pino 4)

D9

Habilitar pino de LCD (pino 6)

D10

Pino de dados 4 (pino 11)

D11

Pino de dados 4 (pino 11)

D12

Pino de dados 4 (pino 11)

D13

Pino de dados 4 (pino 11)

+ 5V

Conectado ao pino Vdd do LCD (pino 2)

Chão

Conectado aos pinos Vss, Vee e RW do LCD (pinos 1, 3 e 5)

Algumas placas Arduino podem mostrar um erro durante o upload do programa se houver alguma coisa conectada ao pino 0 e pino 1, então se você tiver algum, apenas remova o teclado enquanto carrega o programa.

Uma vez que suas conexões sejam feitas, seu hardware ficará mais ou menos assim abaixo


Código

  • Arquivo sem título
Arquivo sem título Arduino
 * * Programa de calculadora do teclado Arduino * / # include  // Arquivo de cabeçalho para LCD de https://www.arduino.cc/en/Reference/LiquidCrystal#include  // Header arquivo para teclado de https://github.com/Chris--A/Keypadconst byte ROWS =4; // Quatro linhasconst byte COLS =4; // Três colunas // Defina as chaves do keymapchar [ROWS] [COLS] ={{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}}; byte rowPins [ROWS] ={0, 1, 2, 3}; // Conecte o teclado ROW0, ROW1, ROW2 e ROW3 a esses pinos do Arduino.byte colPins [COLS] ={4, 5, 6, 7}; // Conecte o teclado COL0, COL1 e COL2 a esses pinos do Arduino.Keypad kpd =Teclado (makeKeymap (keys), rowPins, colPins, ROWS, COLS); // Crie o tecladoconst int rs =8, en =9, d4 =10, d5 =11, d6 =12, d7 =13; // Pinos aos quais o LCD está conectadoLiquidCrystal lcd (rs, en, d4, d5, d6, d7); longo Num1, Num2, Número; chave char, ação; resultado booleano =falso; configuração vazia () {lcd.begin (16, 2); // Estamos usando um display LCD 16 * 2 lcd.print ("DIY Calculator"); // Exibe uma mensagem de introdução lcd.setCursor (0, 1); // define o cursor para a coluna 0, linha 1 lcd.print ("- CircuitDigest"); // Exibe uma mensagem de introdução delay (2000); // Aguarde o display mostrar informações lcd.clear (); // Em seguida, limpe-o} void loop () {key =kpd.getKey (); // armazenando o valor da tecla pressionada em um charif (key! =NO_KEY) DetectButtons (); if (result ==true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Em seguida, limpe if (key =='*') // Se o botão Cancelar for pressionado {Serial.println ("Botão Cancelar"); Número =Num1 =Num2 =0; resultado =falso;} if (key =='1') // Se o botão 1 for pressionado {Serial.println ("Botão 1"); if (Número ==0) Número =1; senão Número =(Número * 10) + 1; // pressionado duas vezes} if (key =='4') // Se o botão 4 for pressionado {Serial.println ("Botão 4"); if (Número ==0) Número =4; senão Número =(Número * 10) + 4; // pressionado duas vezes} if (key =='7') // Se o botão 7 for pressionado {Serial.println ("Botão 7"); if (Número ==0) Número =7; senão Número =(Número * 10) + 7; // Pressionado duas vezes} if (key =='0') {Serial.println ("Botão 0"); // Botão 0 é pressionado if (Number ==0) Number =0; senão Número =(Número * 10) + 0; // Pressionado duas vezes} if (key =='2') // Botão 2 é pressionado {Serial.println ("Botão 2"); if (Número ==0) Número =2; senão Número =(Número * 10) + 2; // Pressionado duas vezes} if (key =='5') {Serial.println ("Botão 5"); if (Número ==0) Número =5; senão Número =(Número * 10) + 5; // Pressionado duas vezes} if (key =='8') {Serial.println ("Botão 8"); if (Número ==0) Número =8; senão Número =(Número * 10) + 8; // Pressionado duas vezes} if (key =='#') {Serial.println ("Botão igual"); Num2 =número; resultado =verdadeiro; } if (key =='3') {Serial.println ("Botão 3"); if (Número ==0) Número =3; senão Número =(Número * 10) + 3; // Pressionado duas vezes} if (key =='6') {Serial.println ("Botão 6"); if (Número ==0) Número =6; senão Número =(Número * 10) + 6; // Pressionado duas vezes} if (key =='9') {Serial.println ("Botão 9"); if (Número ==0) Número =9; senão Número =(Número * 10) + 9; // Pressionado duas vezes} if (key =='A' || key =='B' || key =='C' || key =='D') // Botões de detecção na coluna 4 {Num1 =Número; Número =0; if (chave =='A') {Serial.println ("Adição"); ação ='+';} if (chave =='B') {Serial.println ("Subtração"); ação ='-'; } if (key =='C') {Serial.println ("Multiplicação"); action ='*';} if (key =='D') {Serial.println ("Devesion"); ação ='/';} atraso (100); }} void CalculateResult () {if (action =='+') Number =Num1 + Num2; if (ação =='-') Número =Num1-Num2; if (ação =='*') Número =Num1 * Num2; if (ação =='/') Número =Num1 / Num2; } void DisplayResult () {lcd.setCursor (0, 0); // define o cursor para a coluna 0, linha 1 lcd.print (Num1); lcd.print (ação); lcd.print (Num2); if (resultado ==verdadeiro) {lcd.print ("="); lcd.print (Number);} // Exibe o resultado lcd.setCursor (0, 1); // define o cursor para a coluna 0, linha 1 lcd.print (Number); // Exibir o resultado} 

Esquemas


Processo de manufatura

  1. Rolling Pin
  2. Pino de boliche
  3. Demonstração de exploração do teclado Arduino (HID) e prevenção
  4. Programação da série Atmel AT89 via Arduino
  5. Arduino Spybot
  6. Leitura do sinal PPM do receptor RC usando Arduino
  7. FlickMote
  8. TV B-Gone caseiro
  9. Relógio mestre
  10. Controle de ventilador PWM de 4 pinos de 25 kHz com Arduino Uno