Construa uma Calculadora Básica com Arduino UNO – Projeto Fácil
Componentes e materiais
| Componente | Quantidade |
|---|---|
| Arduino UNO | 1 |
| Arduino 101 | 1 |
| Arduino Nano R3 | 1 |
| Arduino Yun | 1 |
| Arduino Mega 2560 | 1 |
| Arduino Due | 1 |
| Arduino Leonardo | 1 |
Nota: Apenas a placa é necessária, sem componentes adicionais. Funciona com qualquer placa compatível com Arduino IDE.
Aplicativos e serviços online
- Arduino IDE
Sobre o projeto
Um dia, meu professor de matemática me perguntou enquanto eu falava sobre Arduino: "Você pode fazer matemática com ele?". Respondi "Não sei", e isso me fez pensar em como fazer isso acontecer. Então, meio que descobri como fazer e quero compartilhar agora.
Então aqui está! Uma maneira muito simples de fazer matemática com Arduino. Para meu projeto, usei Arduino UNO, mas acredito que funciona com qualquer um deles.
O passo a passo é muito simples:
- Conecte a placa ao computador
- Carregue o código abaixo
- Ative o Monitor Serial
- Digite um cálculo válido (Veja o código para mais instruções)
Planejo fazer uma calculadora melhor, mas por enquanto é apenas isso: uma maneira de fazer matemática básica. Se você quer a calculadora "melhor", por favor me avise.
Fique ligado para ver uma calculadora "melhor"! Espero vê-los em breve!
Código
CÓDIGO PARA CALCULADORA
Você insere os números e o sinal juntos, como "2+3", ou 8*2, e ele dá o resultado.
/* Calculadora serial Arduino
Neste projeto, você pode fazer aritmética básica com a ajuda do Arduino, quase como uma calculadora muito rústica.
Aceita dois números e um sinal, e faz a operação, que pode ser +, -, * ou /.
Ex: envie "2+3" (sem aspas e sem espaço separando a info), e Arduino responde 5.
Digite "7-3" e Arduino responde com 4.
Criado por João Paulo Rodrigues Poltronieri
Este código é de domínio público
*/
// Primeiro, crie variáveis para armazenar a informação enviada ao Arduino
long number1; // primeiro número do cálculo, enviado pelo Monitor Serial
// Note que é uma variável long, então podemos usar números grandes
long number2; // segundo número enviado pelo SM
char calSignal; // cria variável char para armazenar o sinal do cálculo
long result; // resultado do cálculo
void setup() {
Serial.begin(9600); // inicia comunicação serial
Serial.println("Envie-me um cálculo");
Serial.println("Ex: 2+3");
Serial.println(); // imprime isso para testar comunicação serial e pula uma linha
}
void loop() {
while(Serial.available() > 0) { // enquanto houver dados sendo enviados ao Arduino
number1 = Serial.parseInt(); // number1 será o primeiro número
// Note o uso de "Serial.parseInt", então, se você usar 23, armazena em number1 o número 23
// se usássemos Serial.read(), só armazenaria 2
calSignal = Serial.read(); // calSignal será a primeira info após o primeiro número
number2 = Serial.parseInt(); // armazena o segundo número em number2
resolucao(); // Função personalizada para resolver os cálculos
Serial.println("Resultado = ");
Serial.println(result); // Imprime o resultado do cálculo
Serial.println(); // pula uma linha
Serial.println("Outra conta, por favor"); // imprime
Serial.println(); // pula uma linha
}
}
void resolucao() {
// Função personalizada que resolve os cálculos
switch (calSignal) {
// Aqui usamos "switch...case" para economizar espaço no sketch.
// Basicamente, é uma função que verifica vários statements "if".
// Aqui, verifica qual o valor guardado por calSignal. Basicamente, verifica o "sinal" do cálculo
case '+' : // se calSignal é '+'
result = number1 + number2; // soma os números e faz result guardar o valor do cálculo
break; // break para sair do "case"
case '-' : // se calSignal é '-'
result = number1 - number2; // subtrai os números e faz result guardar o valor do cálculo
break;
case '*' : // se calSignal é '*'
result = number1 * number2; // multiplica os números e faz result guardar o valor do cálculo
break;
case '/' : // se calSignal é '/'
result = number1 / number2; // divide os números e faz result guardar o valor do cálculo
// PS: caso a divisão não seja exata, o resultado será o inteiro mais próximo
break;
default : // Se não for nenhum destes...
Serial.println("CONTA INVÁLIDA"); // Cria um "erro"
Serial.println();
result = 0;
}
}
Esquemáticos
Basicamente, apenas a placa é necessária.
Processo de manufatura
- Relógio de Palavras DIY com Arduino – Construa um Display Elegante de Tempo Real
- Relógio em Tempo Real com Arduino para Horários de Oração Islâmica
- Servidor Web Arduino Uno WiFi: Controle LED via Navegador
- Construa um Sensor de Obstáculos Simples com Arduino – Tutorial Fácil com LED IR e Fotodiodo
- Display Portátil de Persistência da Visão com Arduino UNO e ATtiny85
- SerialDebug: Depuração Avançada para Arduino com Log Serial por Níveis
- Cronômetro Arduino Simples: Botão Ativa Cronômetro com EEPROM e Interrupções
- Timer de Lavagem de Mãos com Arduino: Ferramenta DIY Simples para Combater a COVID‑19
- Controlando Matriz de LED 8×8 com Arduino Uno: Guia Passo a Passo
- Wi-Servo: Controle Servomotores via Wi-Fi pelo Navegador