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.
Led ohne Vorwiderstand ? Feuchte messen in Blumenerde eigentlich nur mit Wechsesp. Oder Kapazitiv ! Such hier mal nach “gies o mat“ da geht's genau um diese Thema.
@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.
Petr tiom schrieb: > int analogValue = analogRead(Sensor); > digitalWrite(Voltage, HIGH); sind die Zeilen nicht vertauscht? Du versuchst bei ausgeschaltetem Sensor zu messen.
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.
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.
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.
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.
@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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.