Enviado em 20/12/2016 - 06:31h
Estou querendo fazer uma calculadora com operaçoes +, -, * e / que retorna um valor em binario nos leds, so que estou com um problema na hora de converter o numero decimal para binario, a logica que estou utilizando funciona para algumas operaçoes. Segue o codigo abaixo:
int contador = 0, contador1 = -1, contador2 = -1, sinal = -1;
void setup() {
Serial.begin(9600);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
contador = 0;
if (Serial.available() > 0) {
contador1 = Serial.read();
Serial.flush();
}
if( Serial.available() > 0){
sinal = Serial.read();
Serial.flush();
}
if( Serial.available() > 0){
contador2 = Serial.read();
Serial.flush();
}
switch(sinal){
case '+':
contador = contador1 + contador2;
break;
case '-':
contador = contador1 - contador2;
break;
case '*':
contador = (int)contador1 * contador2;
break;
case '/':
contador = (int)contador1 / contador2;
break;
}
digitalWrite(11,contador % 2);
digitalWrite(10,(contador >> 1) % 2);
digitalWrite(9,(contador >> 2) % 2);
digitalWrite(8,(contador >> 3) % 2);
digitalWrite(7,(contador >> 4) % 2);
delay(5000);
contador1 = -1;
contador2 = -1;
sinal = -1;
apagaLeds();
delay(1000);
}
void apagaLeds(){
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
Máquina perereca - até onde é possível o uso de Linux?
Mitigação - O que é e quando é "seguro" desabilitar
Atualizar Debian Online de uma Versão para outra
A arte e a prática da Disciplina a longo prazo
Topgrade - Atualize seu sistema Linux inteiro com um único comando
Site com diversos emojis para seus códigos
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Agora temos uma assistente virtual no fórum!!! (251)
Rede Windows / Linux Mint- pastas e arquivos somente como leitura (3)
Debian 11 Bullseye não liga normalmente (17)