ATTiny45 Spannung am Pin 2 zur Feuchtigkeitsmessung nutzen

#3792921
Lesenswert?

Hallo liebe Community,

ich habe hier ein Problem mit meinem ATTiny45.
Ich hoffe man kann im Schaltplan alles erkennen, wenn nicht bitte fragen 
:)
Ich habe vor mit meinem ATTiny45 die Feuchtigkeit über einen Sensor zu 
messen,
In der Praxis sieht es so aus das der Feuchtigkeitssensor einen 
Widerstand hat (den der Erde im Blumentopf), dieser ist mit dem Pin 2 an 
Pin 3 verbunden, der Analog Eingang ist Pin 3, von dort geht ein 10kOhm 
Widerstand auf Masse.
Ich habe den ATTiny45 über einem Arduino Uno programmiert, andere 
Programme ohne Sensor laufen.
Im Programm läuft es so ab das am Pin 2 die Spannung ist ( pinMode(2, 
OUTPUT) )
Wenn jetzt der Widerstand vom Feuchtigkeitssensor steigt (Erde Trocken) 
soll die LED anfangen zu blinken.
Das Blinken funktioniert unabhängig vom Sensor, aber sobald ich das 
blinken vom Sensor abhäng mache geht es nicht mehr.

int led = 0;
int Voltage = 3; // 5V für Spannungsteiler Sensor
int Sensor = 4; // Analog Sensor Eingang
int threshold = 400; // MUSS ANGEPASST WERDEN!!!!!!!!!!!!!!!!!!

void setup() {
  pinMode(led, OUTPUT);
  pinMode(Voltage, OUTPUT);
}

void loop() {
  int analogValue = analogRead(Sensor);
  digitalWrite(Voltage, HIGH);
  delay(200);

  if (analogValue < threshold) {
  digitalWrite(led, HIGH);
  delay(100);
  digitalWrite(led, LOW);
  delay(100);
  digitalWrite(led, HIGH);
  delay(100);
  digitalWrite(led, LOW);
  delay(100);
  digitalWrite(led, HIGH);
  delay(100);
  digitalWrite(led, LOW);
  delay(10);

  }
  else {
   digitalWrite(Voltage, LOW);
   digitalWrite(led, LOW);
   }
  digitalWrite(Voltage, LOW);
  delay(200);


  }

Das ist der gesamte Code, ich hoffe das ihr mir helfen könnt.
Danke im voraus.
Angehängte Dateien:
#3792952
Lesenswert?

@Pastor Braune

Die LED hat einen Widerstand in meiner aufgebauten Schaltung, habe Ihn 
hier nur nicht eingezeichnet.
Die beiden Widerstände (Sensor und 10kOhm) sollen einen Spannungsteiler 
darstellen und je nachdem wie sich der Widerstand an dem Sensor ändert, 
misst man am Analog Eingang etwas anderes.
Danke für die Info.
Gast #3793137
Lesenswert?

Die (trockene/ wenig feuchte) Erde hat einen relativ hohen Widerstand,
was zusammen mit den 10k Ohm- Teiler nicht funktionieren wird.
Der Eingangswiderstand des TINNY ist ebenfalls relativ niederohmig (s. 
Datenblatt). Du wirst einen Emitterfolger am Eingang benötigen, damit
das funktioniert.
#3793154
Lesenswert?

Je nach den Elektrode könnte der 10 K Widerstand etwas klein sein. 
Besser wäre auch eine Messung mit Wechselstrom, denn Gleichstrom kann 
über Elektrolyse die Elektroden angreifen, bzw. die Pflanzen stören. Die 
Gepulste Messung ist schon nicht so schlecht - da würde dann schon ein 
Kondensator (z.B. 100 nF) in Reihe zur Sonde (etwa am Pin 3) ausreichen 
um kleinen Gleichstrom mehr zu haben.
Der ADC Eingang ist schon recht hochohmig - je nachdem wie oft gewandelt 
wird im Bereich 1-100 MOhm, das ist nicht das Problem.

Das Hauptproblem wird die falsche Reihenfolge sein: Richtig ist es erst 
Pin3 auf High, dann ggf. kurz (Bereich 1-100 µs) warten, dann die 
AD-Wandlung und dann kann Pin 3 auch schon wieder auf Low. Mit 
Kondensator sollte die Pause bis zur nächsten Messung eher so ab 1 ms 
aufwärts sein.

Eventuell sollte man die Messung auch mehrmals machen und mitteln um 
nicht etwa durch 50 Hz Störungen falsche Werte zu bekommen.Als Anfang 
etwa 4 Werte im Abstand von je 5 ms.
#3793651
Lesenswert?

Hallo,
danke das ihr so Zahlreich geantwortet habt.
@Jojo S.
Ich habe die beiden Zeilen ausgetauscht, hat aber zu keiner Änderung 
geführt.

@Andy
Ich habe diese Seite gefunden wo es mit einem 10kOhm Widerstand gemacht 
wurde.
http://arduinodiy.wordpress.com/2012/02/24/attiny-for-your-garden/

@Ulrich H.
Das ganze wird mit einem kleinen Akku betrieben und Platzmäßig ist da 
auch nicht sonderlich viel. Ich habe, um die Pflanze vor der Elektrolyse 
zu schützen, im Programm das so festgelegt das der Pin 2 immer auf Low 
ist und keine Spannung hat, erst beim prüfen soll die Spannung 
zugeschaltet werden und über Pin 3 gemessen werden.
Wie du es aufgeschrieben hast hört sich dein Ansatz interessant an, 
könntest du ihn hier zeigen wie du es vom aufbau (Bildlich) mach 
würdest?
Danke.
#3793702
Lesenswert?

Ob der 10 K Widerstand passt, hängt vom Abstand und der Größe der 
Elektroden ab. Es könnte ggf. etwas mehr sein. Bis etwa 100 K sollte das 
auch für den ADC noch kein Problem sein.

Wenn man nur relativ selten und kurz misst (etwa jede Stunde 1 Messung 
mit vielleicht 4 Pulsen zu je 100 µs), sollte sich das mit der 
Elekrolyse auch noch in Grenzen halten. Wenn man will könnte man halt 
noch einen Kondensator (100 nF gibt es auch als SMD Bauform 0402, wenn 
es sein muss - da braucht man schon fast eine Lupe) in Reihe zu den 
Elektroden haben, wenn man gepulst misst - es sollte aber auch ohne 
gehen.

Ob man den Pin 2 in der nicht aktiven Zeit auf GND oder weiter als 
Eingang lässt hat da wenig Einfluss. Das ist eher eine Frage wie 
empfindlich die Schaltung auf Störungen und ESD (elektrostatische 
Entladungen, wenn etwa jemand dem Blumentopf anfasst) reagiert. Da wäre 
ein schalten auf GND vermutlich sicherer, wenn auch noch nicht perfekt.

Die wichtigste Änderung wäre aber das Programm, damit der zeitliche 
Ablauf passt.
So wird es relativ schwierig die richtige Schwelle zu finden. Für die 
ersten Tests sollte man die Messwerte irgendwie Ausgeben - etwa per UART 
an den PC, notfalls auch ins EEPROM Schreiben, und dann per ISP 
auslesen. Zum Stromsparen sollte man die entsprechenden Modes des µC 
nutzen, denn die meiste Zeit wird der nichts zu tun haben.
#3793723
Lesenswert?

@Ulrich H.
Danke für deine Hinweise.
Ich hatte das ganze mit meinem Arduino Uno bereits am laufen gehabt.
Da hat es funktioniert.
Hier ein Foto von dem Feuchtigkeitssensor, genau den gleichen habe ich
http://i.bosity.com/office_cache/261/14008331/220000011383903644_14008331_4_image.jpg
Wegen ESD mache ich mir keine Gedanken, es hat nichts kritisches an der 
Stelle wo der Sensor benutzt wird.
Der Akku hat 180mAh und wird tagsüber mit Solar geladen.
Ich möchte nicht sonderlich mit Impulsen arbeiten, sondern ca. 5 
Sekunden Spannung an den Sensor anliegen lassen, dann die Spannung am 
Analog Eingang messen und die Spannung abschalten.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren