Skocz do zawartości

Serial.print - nie wyświetla zadnych wartosci


Pomocna odpowiedź

Napisano

Hej, mam sobie taki prosty program który wysyłać ma mi losowe dane przez port szeregowy jako jedna linijka, niestety w monitorze portu szeregowego widzę tylko "entery" ale żadnych wartości już nie. Co robię nie tak?

 

word Bat1[3];
word Bat2[3];
word Losowe[7];
 
void setup() {
  Serial.begin(115200);
}
 
void loop() {
  SerialPrint();
}
void SerialPrint(){
  Serial.println();
  Losowe[0] = random(0, 1023);
  Bat1[0] = map(Losowe[0], 0, 1023, 0, 5000);
  Losowe[1] = random(0, 1023);
  Bat1[1] = map(Losowe[1], 0, 1023, 0, 5000);
  Losowe[2] = random(0, 1023);
  Bat1[2] = map(Losowe[2], 0, 1023, 0, 5000);
  Losowe[3] = random(0, 1023);
  Bat1[3] = map(Losowe[3], 0, 1023, 0, 5000);

  Serial.print(Bat1[0] * 0.001);
  Serial.print(",");
  Serial.print(Bat1[1] * 0.001);
  Serial.print(",");
  Serial.print(Bat1[2] * 0.001);
  Serial.print(",");
  Serial.print(Bat1[3] * 0.001);
  Serial.print(",");

  delay(1000);
}

 

Oprócz prędkości monitora portu, co łatwo sprawdzić zaczynając funkcje od zwykłego napisu:

Serial.println("Poczatek generowania losowych");

to:

"If it is important for a sequence of values generated by random() to differ, on subsequent executions of a sketch, use randomSeed() to initialize the random number generator with a fairly random input, such as analogRead() on an unconnected pin."

Tablice są zadeklarowane jako typ word, który później mnożysz przez float. Co konkretnie chciałeś otrzymać w wyniku? Liczby całkowite?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...