boa noite pessoal
queria uma ajuda , queria gerar palavras ou letras aleatorias, então progamei da seguinte forma
long int result ;
void setup(){
Serial.begin(9600);
}
void loop(){
result == random(1,5);
delay(2000);
if (result == 1);{
Serial.println('a');
delay(2000);
}
if (result == 2);{
Serial.println('b');
delay(2000);
}
if (result == 3);{
Serial.println('c');
delay(2000);
}
if (result == 4);{
Serial.println('d');
delay(2000);
}
}
só que ele só gera na ordem a,b,c,d sempre , não gera aleatoriamente
Alguem poderia me ajudar a descobrir oque tem de errado com esse sketch ?
Tags:
Olá,
Faltou a seguinte linha no setup:
randomSeed(analogRead(0));
É:
result == random(1,5);
Ou:
result = random(1,5);
Alex,
Você achou mais um erro, que tinha me passado despercebido.
Em C usamos = para atribuir um valor a um determinado registro ou variável e == para comparar valores, registros, variaveis ou constantes.
No caso como a linha atribui um valor gerado pela função random para a variável result a linha deve ficar:
result =random(1,5);
Se for usar esse parêntese após o sinal de igualdade, fecha ele antes do ponto e vírgula.
Tenta fazer assim:
long int result ;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop(){
result = random(1,5);
switch (result) {
case 1:
Serial.println('a');
break;
case 2:
Serial.println('b');
break;
case 3:
Serial.println('c');
break;
case 4:
Serial.println('d');
break;
default:
break;
}
delay(2000);
}
Aqui tá funcionando.
Abraço.
Iago,
O erro do sketck com if está no ;
if (result == 1);{
Serial.println('a');
delay(2000);
}
tire o ; nas linhas de todos os if
if (result == 1){
Serial.println('a');
delay(2000);
}
Do jeito que estava o if é interrompido no ; sem fazer nada e o print é sempre executado.
Com o if ficaria assim:
long int result ;
void setup(){
Serial.begin(9600);
randomSeed(analogRead(0));
}
void loop(){
result = random(1,5);
result == random(1,5);
delay(2000);
if (result == 1){
Serial.println('a');
delay(2000);
}
if (result == 2){
Serial.println('b');
delay(2000);
}
if (result == 3){
Serial.println('c');
delay(2000);
}
if (result == 4){
Serial.println('d');
delay(2000);
}
}
Vc pose usar da seguinte forma, na tables ascii a - 97 e z - 122
char A = random(97,122);
Depois da um print com o char
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por