Sugestão de solução - Exercício 4 - Aula 4 MIC2
Ir para navegação
Ir para pesquisar
int converte(char);
char c;
char LEDVET[4];
void setup(){
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
Serial.begin(9600);
}
void loop()
{ int i;
if (Serial.available()>0)
{
c = Serial.read()- '0' ;
if(converte(c))
{ for(i=0;i<4;i++)
digitalWrite(i+2,LEDVET[i]);
}
delay(2000);
Serial.println("------");
}
}
int converte(char val)
{ int i;
if(val<0 || val>15)
{ Serial.println("Erro! Valor inválido!");
return 0;
}
else
{ for(i=0;i<4;i++)
{
LEDVET[i] = val&1;
Serial.print(LEDVET[i], DEC);
Serial.println();
val=val/2;
}
return 1;
}
}
Outra forma de testar o valor binário do número digitado é:
byte x; byte bin[4];
void setup() {
Serial.begin(9600);
} void loop() {
if (Serial.available()>0)
{ x = Serial.read() - '0';
Serial.flush();
if(x>=0 && x<=9)
intparabin(x);
}
}//end loop
void intparabin(byte n) {int i; Serial.print("Palavra binária lida: ");
for(i=0;i<4;i++)
{ bin[i] = (n>>i)&1;
Serial.print(bin[i]);
Serial.print(" ");
}
Serial.println("."); }