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 ?

Exibições: 910

Responder esta

Respostas a este tópico

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.

Obrigado galera , mas continua gerando na ordem abcd , niguem mais consegue achar outro erro?

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

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço