Boa noite pessoal.
Estou começando a brincar com o arduino agora, e estou tentando fazer uma calculadora simples no Tinkercad. Mas eu não tenho muito conhecimento sobre C e tão pouco com o arduino. Fiz um esboço mas está complicado seguir daqui.
const int SOMA = 13;
const int SUB = 12;
const int MULT = 11;
const int DIV = 10;
const int RESULT = 9;
int n1, n2, R, cont = 0, num1, num2;
int bsoma, bsub, bmult, bdiv, cont_op = 0, auxs = 0, auxsu = 0;
int auxd = 0, auxm = 0, contn1 = 0, contn2 = 0, bresult, auxr = 0;
char soma, sub, mult, divs, op;
void setup()
{
pinMode (SOMA, INPUT);
pinMode (SUB, INPUT);
pinMode (MULT, INPUT);
pinMode (DIV, INPUT);
pinMode (RESULT, INPUT);
Serial.begin (9600);
Serial.println ("Este programa e uma calculadora");
Serial.println ("As instrucoes sao simples.");
Serial.println ("Voce deve digitar um numero, logo depois pressionar o");
Serial.println ("botao referente a operacao que deseja realizar");
Serial.println ("e logo em seguida, digitar o segundo numero e pressionar o botao de IGUAL!");
}
void loop()
{
bsoma = digitalRead (SOMA);
bsub = digitalRead (SUB);
bmult = digitalRead (MULT);
bdiv = digitalRead (DIV);
bresult = digitalRead (RESULT);
if (Serial.available())
{
n1 = Serial.parseInt();
if (n1 > 0)
num1 = n1;
Serial.println (num1);
}
if (bsoma == 1 && auxs == 0)
{
cont = cont + 1;
auxs = 1;
if (cont == 1)
op = '+';
Serial.println (op);
}
if (Serial.available())
{
n2 = Serial.parseInt();
if (n2 != 0)
num2 = n2;
Serial.println (num2);
}
R = num2 + num1;
if (bresult == 1 && auxr == 0)
{
auxr = 1;
Serial.println (R);
}
// operação de soma
if (bsub == 1 && auxsu == 0)
{
cont_op = cont_op + 1;
auxsu = 1;
if(cont_op)
op = '-';
Serial.println (op);
}
if (digitalRead (MULT) == 1)
op = '*';
if (digitalRead (DIV) == 1)
op = '/';
if (digitalRead (RESULT) == 1)
{
R = n1 + n2;
Serial.println (R);
}
if (Serial.available())
{
n2 = Serial.parseInt ();
Serial.println (n2);
}
// R = n1 ( op ) n2; *
}
Fiz tudo de um jeito que funcionaria, dai não funcionou e tentei arrumar só a parte da soma, então é por isso que ela está mais incrementada.