Serieller Monitor zeigt nur Sonderzeichen

Hallo,
ich möchte eine Bewässerungsanlage bauen und es funktioniert nicht. Ein Freund meinte ich solle mal mit dem Seriellen Monitor probieren was das Problem ist. DIeser gibt allerdings nur Sonderzeichen und Fragezeichen aus. Aus einem anderem Forumpost habe ich schon raus, dass die Baudrate übereinstimmen muss. Jedoch ist die Baudrate auf 9600 eingestellt und im Monitor auch. Ich habe dann alle Baudraten einmal durchgetestet, aber es kommen immer nur Sonderzeichen.

int counter;
const int moistPin = 2;
const int relayPin = 6;
const int waterLevelPin = 5;
const int indicatorLEDPin = 13;
const int waterLevelLimit = 100;// Sensor delivers an integer between 0 and 1023
const int moistLimit = 200; // Sensor delivers an integer between 0 and 800

void setup() {
  Serial.begin(9600); //Starts the communication
  pinMode(moistPin,INPUT);
  pinMode(waterLevelPin, INPUT);
  counter = 0;
}

void loop() {
  delay(1000);
  Serial.println("Moist: " + analogRead(moistPin));
  if(counter >= 300 && analogRead(moistPin) < moistLimit){
    digitalWrite(relayPin,HIGH);
    delay(2000);
    digitalWrite(relayPin,LOW);
    counter = 0;
  }
  Serial.println("Water level: " + analogRead(waterLevelPin));
  if(analogRead(waterLevelPin) < waterLevelLimit){
    digitalWrite(indicatorLEDPin,HIGH);
  }else{
    digitalWrite(indicatorLEDPin,LOW);
  }
  if(counter<300){
    counter++;
  }
}

Auf jeden Fall muss im SerialMonitor auf dem PC die gleiche Geschwindigkeit (9600) eingestellt sein.

Was für einen Arduino verwendest du?
Lade mal den Standard-Blinksketch und prüfe, ob die LED in der vorgesehenen Frequenz blinkt.

Den Arduino Uno benutze ich.
Ich hab den Blinksketch jetzt drauf,
5 mal an/aus 8,85 s
10 mal an/aus -> 18,88 s
Also ein bisschen kürzer als 10 und 20 sekunden, was doch eigentlich der Fall sein sollte oder?

Dann zeige doch mal ein Foto von dem Uno.
Oder einen Link vom Händler.

Hallo kunaguero4

Probier mal diese Änderung für Serial.println() aus.

int counter;
const int moistPin = 2;
const int relayPin = 6;
const int waterLevelPin = 5;
const int indicatorLEDPin = 13;
const int waterLevelLimit = 100;// Sensor delivers an integer between 0 and 1023
const int moistLimit = 200; // Sensor delivers an integer between 0 and 800

void setup() {
  Serial.begin(9600); //Starts the communication
  pinMode(moistPin, INPUT);
  pinMode(waterLevelPin, INPUT);
  counter = 0;
}

void loop() {
  delay(1000);
  Serial.print("Moist: "), Serial.println(analogRead(moistPin));
  if (counter >= 300 && analogRead(moistPin) < moistLimit) {
    digitalWrite(relayPin, HIGH);
    delay(2000);
    digitalWrite(relayPin, LOW);
    counter = 0;
  }
  Serial.print("Water level: "), Serial.println(analogRead(waterLevelPin));
  if (analogRead(waterLevelPin) < waterLevelLimit) {
    digitalWrite(indicatorLEDPin, HIGH);
  } else {
    digitalWrite(indicatorLEDPin, LOW);
  }
  if (counter < 300) {
    counter++;
  }
}

Ich wünsche einen geschmeidigen Tag und viel Spass beim Programmieren in C++.

1 Like

Nur als Info.
Das ist zwar ein Uno, aber kein Arduino.
Sollte aber bei richtiger Baudeinstellung im Sketch und Monitor alles richtig anzeigen.

Ach vielen Dank, jetzt zeigt der Monitor wenigstens etwas an!

Tja, die Strings. :heart: Herzchen für @paulpaulson.
"Hallo" + 1 => "allo"
"Hallo" + 6 (oder mehr) => undefiniert

Grazie

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