Serial.println() - Fehler

Moin,

eigentlich bin ich nicht neu, was die Programmierung von Arduino angeht, jedoch stehe ich gerade irgendwie bei einer sehr einfachen Aufgabe auf dem Schlauch.
Wenn ich einen char mit Serial.println() ausgeben möchte, was laut Arduino-Referenz möglich ist, dann werden mir im Seriellen Monitor nur diese Rechtecke angezeigt. Die Baud-Raten passen, auch das Board (Mega 2560) kann nicht defekt sein, auf einem Uno geht's auch nicht. Ich weiß nicht, ob ich einfach nur irgendwas nicht beachtet habe, oder ob ich den Fehler einfach nicht sehe...

char a;
void setup() {
  Serial.begin(9600);
}

void loop() {  
  a = "hello";
  Serial.println(a);
}

char *a;
void setup() {
  Serial.begin(9600);
}

void loop() {  
  a = "hello";
  Serial.println(a);
}

Der kann schief gehen.
Besser:

void loop() {  
  char a[] = "hello";
  Serial.println(a);
}

Problem gelöst.
Vielen Dank

char a; reserviert nur Platz für 1 char. Sie wollen einen vollständigen String, also bekommen Sie mit char * a; Platz für einen Pointer auf den statischen c-String.

noch "besser"

void setup() {
  Serial.begin(9600);
}

void loop() {  
  Serial.println(F("Hello"));
}

:wink: :wink:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.