YL-69 mit Arduino Uno auslesen.

Salü zusammen,

Ich wollte mal nachfragen ob jemand mein Sketch anschauen könnte und mir sagen kann was ich falsch mache. Irgendwie finde ich den Fehler nicht. Ich hab bereits andere Sketch geladen (vorgefertigte von andere Usern) die Funktionieren einwandfrei.

Aber ich möchte gerne wissen was ich falsch gemacht habe. Damit ich das für die Zukunft weis :D.

Zur Funktion:

Sensor Vcc = Pin 6
Sensor Analo Pin = A5

Der Sensor sollt kurz vor dem auslesen eingeschaltet werden, danach ausgelesen und wieder abgestellt werden. Das ganze soll dann einfach im Monitor angezeigt werden.

mit meinem Sketch steht die ganze Zeit 0.

Sorry wen ich hier ein Post mache wegen einer kleinigkeit. Aber für mich ist es keine Lösung ein anderen Sketch zu kopieren, sonnst lerne ich es nie.

int SensorPin = A5;
int SensorVcc = 6;


void setup() {
Serial.begin(9600);
pinMode (SensorVcc,OUTPUT);
pinMode (SensorPin,INPUT);
digitalWrite (SensorVcc,LOW);
}

int Sensor_Wert_Auslesen() {
  digitalWrite (SensorVcc,HIGH);
  delay(500);
  int SensorWert = analogRead(SensorPin);
  digitalWrite (SensorVcc,LOW);
}
void loop() {

Serial.print (" Sensorwert: ");
Serial.println (Sensor_Wert_Auslesen());
delay(10000);
}

Du musst die Variable "SensorWert" vor dem Setup definieren und diese auch zur Anzeige im Monitor mit "println" bringen.

hm okay,

Ich hab hier noch den Sketch von jemand anderen.

Er definiert das gleich wie ich. Aber wen ich seinen Sketch austeste funktioniert alles Tadellos.

an was liegt das?

an dem while funktion oder weil er byte statt int benützt?

// YL-39 + YL-69 humidity sensor
byte humidity_sensor_pin = A1;
byte humidity_sensor_vcc = 6;

void setup() {
  // Init the humidity sensor board
  pinMode(humidity_sensor_vcc, OUTPUT);
  digitalWrite(humidity_sensor_vcc, LOW);

  // Setup Serial
  while (!Serial);
  delay(1000);
  Serial.begin(9600);
}

int read_humidity_sensor() {
  digitalWrite(humidity_sensor_vcc, HIGH);
  delay(500);
  int value = analogRead(humidity_sensor_pin);
  digitalWrite(humidity_sensor_vcc, LOW);
  return 1023 - value;
}

void loop() {
  Serial.print("Humidity Level (0-1023): ");
  Serial.println(read_humidity_sensor()); 
  delay(1000000);
}

Der gibt den Wert auch mit "return" zurück.
Und wenn der funktioniert, warum nimmst du den nicht ?

Er definiert das gleich wie ich. Aber wen ich seinen Sketch austeste funktioniert alles Tadellos.
an was liegt das?

Der wesentliche Unterschied ist, dass bei dir eine Zeile

 return Sensorwert;

fehlt. Sollte dir der Compiler eigentlich anmeckern.

sketch_nov19a.ino: In function 'int Sensor_Wert_Auslesen()':
sketch_nov19a.ino:15: warning: unused variable 'SensorWert'
sketch_nov19a.ino:17: warning: no return statement in function returning non-void
sketch_nov19a.ino:17: warning: control reaches end of non-void function

ist etwas schwach und wird (nur Warnung) ignoriert