Ich bin gerade dabei, mir einen elektrischen Schneckenzaun zu bauen. Im Moment erstmal mit 9V Akkus, später wahrscheinlich mit 12V.
Ich hätte gerne irgendeine Art von optischem Feedback, um schon von ein paar Metern Abstand zu sehen, wenn der Stromkreis geschlossen ist, damit mir nicht evtl ein blöd liegendes Blatt oder so die Batterie leer saugt.
Das Ganze hätte ich gerne so einfach und stromsparend wie möglich.
Mein aktueller Ansatz wäre ein ATTiny, der die meiste Zeit schläft und regelmäßig aufwacht, prüft ob Strom fließt, und wenn ja, eine LED kurz blinken lässt.
Aber wahrscheinlich denk ich da schon wieder zu kompliziert.
Einfach eine LED in Reihe schlaten. Wenn die leuchtet, ist irgendwo was faul (leitend verbunden). In wie fern man da einen Vorwiderstand braucht, müsstest du probieren. Bei einem satten Schluss ist die LED natürlich hin.
Schleif doch einfach eine superhelle LED mit einer hohen mcd-Zahl und einen 330 Ohm Vorwiderstand in den Stromkreis mit rein. Selbst bei einem Kurzschluss durch einen Kronkorken würde die LED dann trotzdem noch nicht kaputt gehen.
Ich möchte es jetzt aber doch etwas "komplizierter" machen, damit ich möglichst viel lernen kann.
Grundsätzlich möchte ich einen ATTINY85 verwenden, der standardmäßig schläft, aber jede Sekunde aufwacht, um einerseits zu überprüfen, ob das System grundsätzlich noch läuft, bzw Strom hat und andererseits, um zu prüfen, ob der Stromkreis geschlossen ist und ich ggf mal nachschauen sollte. Das ganze angezeigt mit kurz blinkenden LEDs.
Am liebsten wäre mir, wenn ich damit auch prüfen könnte, wie weit der Akku noch geladen ist. Aber mir ist nicht ganz klar, wie ich das angehen könnte.
Der ATTINY verträgt ja maximal 5,5V. Spannungswandler auf 3 bzw 5V hätte ich da, aber wie ich damit prüfen kann, wie voll der 9V bzw 12V Akku noch ist, ist mir schleierhaft.
Wenn da jemand einen Tipp oder Schubs in die richtige Richtung hätte, wäre das super :)
Schleif doch einfach eine superhelle LED mit einer hohen mcd-Zahl und
einen 330 Ohm Vorwiderstand in den Stromkreis mit rein.
Und da gibt es auch welche, die mit fast nix an Strom gut hell leuchten.
Mit einem Komparator kannst du auch die Spannung überwachen, sodass die leere Batterie angezeigt wird, wenn sie noch lange genug Leistung für die Led hat.
Was ich mich grad noch frage:
Woher weiß ich, bei welcher Spannung ein Akku voll/leer ist?
Kann ich mich da grundsätzlich immer auf fixe Werte für einen bestimmten Typen verlassen?
Also hat ein 9V NiMH (oder 12V LiFePO4) Akku immer die gleichen Werte, egal welcher Hersteller?
Natürlich nicht. Du musst schon gucken wo die Abschaltspannung für die verwendeten Typen liegt. Wenn du die gleiche Batterietechnik verwendest, da liegen die Hersteller dicht beieinander.
Ok, das war voll missverständlich ausgedrückt...
Also wenn ich einmal die Werte von 9V NiMH Akkus habe, kann ich die grundsätzlich für alle 9V NiMH Akkus verwenden.
Und 12V LiFePO4 Akkus haben natürlich ihre eigenen Werte, da aber dann auch grundsätzlich gleich für alle 12V LiFePO4 Akkus. Korrekt?
Ja. Auch wenn die Hersteller geringe Unterschiede haben mögen.
Wichtig: Abschaltspannung ist nicht gleich Entladeschlussspannung.
Letztere solltest du bei Akkus nicht wählen, wenn die Anwendung nicht eine maximale Laufzeit benötigt. Dann halten deine Akkus länger.
Und 12V LiFePO4 Akkus haben natürlich ihre eigenen Werte, da aber dann
auch grundsätzlich gleich für alle 12V LiFePO4 Akkus. Korrekt?
Bei gleicher Größe ja.
Allerdings wird im LiIo Bereich viel Schund mit zu wenig Kapazität verkauft (und zugleich mit besonders viel Kapazität beworben - ein deutlich Warnsignal).
Ja. Auch wenn die Hersteller geringe Unterschiede haben mögen.
Wichtig: Abschaltspannung ist nicht gleich Entladeschlussspannung.
Letztere solltest du bei Akkus nicht wählen, wenn die Anwendung nicht
eine maximale Laufzeit benötigt. Dann halten deine Akkus länger.
Zu "Abschaltspannung" habe ich jetzt nicht wirklich was gefunden. Da lande ich dann immer wieder bei der Entladeschlussspannung.
Gibt es evtl eine grobe Faustformel, an der man sich orientieren kann? Sowas wie "immer 10% über der Entladeschlussspannung" oder so?
Zitat:
"Die Abschaltspannung eines 9V NiMH Akkus liegt typischerweise im Bereich von 6,0 bis 7,0 Volt. Ein 9V NiMH Akku besteht aus mehreren Zellen, die in Reihe geschaltet sind. Die einzelnen Zellen haben eine Nennspannung von 1,2 Volt, was bei 7 Zellen 8,4 Volt ergibt. Bei einer vollständigen Entladung sollte die Spannung nicht unter 1,0 Volt pro Zelle fallen, um eine Beschädigung des Akkus zu vermeiden."
Die Entladeschlussspannung liegt noch darunter.
Oft wird das gleich benutzt und sogar in Fachartikeln falsch benutzt.
Der Unterschied ist vielleicht 0,1-0,2 Volt pro Zelle, je nach Batterietyp.
Die Abschaltspannung ist die Spannug, wo dir noch die Funktion deines Gerätes garantiert ist und die Batterie zuverlässig funktioniert, während die Entladeschlussspannung den Schutz der Batterie im Sinne hat.
Man liest es immer wieder. Hast du das ausprobiert?
Wenn er sich als Schnecke identifiziert, dann hat Klaus es ausprobiert und hat über die 9V nur gelacht. Das Gemüse ist weg und bereits durch seinen Magen gelaufen und was da gerade wächst, wird auch bald dieses Schicksal ereilen.
Zu "Abschaltspannung" habe ich jetzt nicht wirklich was gefunden.
Das Problem ist, dass es immer eine Zelle gibt, die die untere Zellspannung erreicht, aber weil die anderen Zellen noch mehr Saft haben, wird die Gesamtabschaltschwellenspannung noch nicht erreicht. In dem Falle wird eine Zelle zu Tief entladen. Gerade LiFePo haben eine flache Kennlinie, was erschwerend hinzukommt.
R1=100KΩ, R2=10KΩ
Ich arbeite mit einem ATTiny85, und einer Referenzspannung von 1,1V.
Mein Code sieht so aus:
1
#define PIN_TEST A1
2
3
#define REF_VOLTAGE 1.1
4
#define PIN_STEPS 1023.0
5
6
constfloatR1=99000.0;// exact resistance of R1 (= 100 kOhm)
7
constfloatR2=9800.0;// exact resistance of R2 (= 10 kOhm)
8
9
floatvout=0.0,vin=0.0;
10
intrawValue=0;
11
12
voidsetup(){
13
analogReference(INTERNAL1V1);
14
Serial.begin(9600);
15
pinMode(PIN_TEST,INPUT);
16
}
17
18
voidloop(){
19
rawValue=analogRead(PIN_TEST);
20
vout=(rawValue/PIN_STEPS)*REF_VOLTAGE;
21
22
vin=vout/(R2/(R1+R2));
23
24
if(vin<0.09){
25
vin=0.0;// suppress noise
26
}
27
28
Serial.println("U = "+String(vin)+" V");
29
delay(1000);
30
}
Grundsätzlich funktioniert es auch, aber was mit ein bisschen irritiert, sind die Schwankungen in der gemessenen/berechneten Spannung. Hier mal ein Auszug:
U = 9.61 V
U = 9.71 V
U = 9.71 V
U = 9.71 V
U = 9.97 V
U = 9.54 V
U = 10.05 V
U = 9.84 V
U = 10.04 V
U = 10.00 V
U = 9.67 V
U = 9.53 V
U = 9.80 V
U = 10.12 V
U = 10.00 V
U = 9.75 V
U = 9.48 V
U = 9.53 V
U = 9.53 V
U = 9.97 V
Wenn ich die Spannung der Batterie mit dem MM messe, bin ich bei 9,48V.
Hab ich da etwas falsch gemacht? Woher kann das kommen?
Einfach eine LED in Reihe schlaten. Wenn die leuchtet, ist irgendwo was
faul (leitend verbunden). In wie fern man da einen Vorwiderstand
braucht, müsstest du probieren. Bei einem satten Schluss ist die LED
natürlich hin.
Mit einer 9V-Batterie eher nicht, die liefern nicht genug Strom. Mit Li-Akku klar, da kommt tödlicher Strom.
Schleif doch einfach eine superhelle LED mit einer hohen mcd-Zahl und
einen 330 Ohm Vorwiderstand in den Stromkreis mit rein. Selbst bei einem
Kurzschluss durch einen Kronkorken würde die LED dann trotzdem noch
nicht kaputt gehen.
Schön und schützt auch die Schnecke vor dem Strom?
Ich würde an deiner Stelle nicht zu laut lachen. Hast du schon mal eine 9 Volt Blockbatterie an deine eigene Zunge drangehalten? Das was du dann fühlst, fühlt auch die Schnecke, nur 1000 mal stärker, weil sie 1000 mal kleiner und 1000 mal schwächer ist als du. Der Schleim auf deiner Zunge ist mit dem einer Schnecke vergleichbar.
Warum können die Bastler eigentlich keine Energiebillanz rechnen?
110 kOhm ergibt 80µA Querstrom, da ist der 9V-Block (Akku) nach 3
Monaten leer, der µC will ja auch noch versorgt sein.
Sinnlose Spielerei, die obendrein die Aufgabe nicht erfüllt:
Also ich konnte mit meinem aktuellen Prototypen nachweislich schon mehrere Nacktschnecken davon abhalten, sich an meinen Chillies zu vergehen. Daher ist die Sinnhaftigkeit aktuell auf jeden Fall gegeben. Und wenn ich dann hoffentlich bald auf 12V umstellen kann, umso mehr.
Und selbst wenn nicht, ist es ein tolles Projekt für mich, um zu lernen.
Vielleicht hättest Du ja auch noch einen Hinweis für mich, warum die gemessen Spannungen so schwanken.
Also wenn das Ganze ein gewisses Niveau, auch zum Lernen, haben soll, würde ich an ein E-Paper-Display (gibt es sehr klein) denken, dass z.B. alle 60s aufgefrischt wird. Man kann dann auch Zahlen, Text und(oder Symbole/Icons zum Status oder dem Batterie-Füllstand darstellen ...
Vielleicht hättest Du ja auch noch einen Hinweis für mich, warum die
gemessen Spannungen so schwanken.
Weil der interne ADC sich recht viele Störungen einfängt. Abhilfe gibts durch:
Abblocken von AREF mit externem Kondensator. Geht nur, wenn du den Pin nicht anderweitig benötigst.
Mehrfaches lesen des ADC und Mitteln des Wertes. Es kommt ja nicht auf schnelles Lesen an. Die Zeit, um z.B. 10 oder 20 Werte zu lesen und zu mitteln, hast du immer.
Niedrige Abtastrate des ADC. Nicht mit 200ksps, sondern z.B. nur mit einem Viertel der möglichen Geschwindigkeit.
Wählen einer höheren AREF. Wenn du statt 1,1V die 2,56V wählst, zappelts weniger.
Vielleicht hättest Du ja auch noch einen Hinweis für mich, warum die
gemessen Spannungen so schwanken.
Weil der interne ADC sich recht viele Störungen einfängt. Abhilfe gibts
durch:
Abblocken von AREF mit externem Kondensator. Geht nur, wenn du den
Pin nicht anderweitig benötigst.
Mehrfaches lesen des ADC und Mitteln des Wertes. Es kommt ja nicht
auf schnelles Lesen an. Die Zeit, um z.B. 10 oder 20 Werte zu lesen und
zu mitteln, hast du immer.
Niedrige Abtastrate des ADC. Nicht mit 200ksps, sondern z.B. nur mit
einem Viertel der möglichen Geschwindigkeit.
Wählen einer höheren AREF. Wenn du statt 1,1V die 2,56V wählst,
zappelts weniger.
Also ich bin jetzt mal auf 2.56V AREF hochgegangen und messe 10mal mit einem Abstand von 20ms, das hat auf jeden Fall gegen die krassen Ausschläge geholfen.
Im Schnitt ist jetzt die vom ATTiny gemessene Spannung konstant knapp 2% über der vom Multimeter gemessen Spannung. Die Frage ist, ob ich das noch einigermaßen reduziert bekomme, oder ob das eine Unschärfe ist, die "normal" ist.
Das mit dem externen Kondensator verstehe ich nicht ganz. Kommt der an den AREF Pin (den ich aktuell nicht verwende) oder an den ADC Pin, an dem die zu messende Spannung anliegt? Welchen Kondensator würde ich dafür verwenden? Und wie schließe ich den an (in Reihe/parallel)?
Wer die interne Referenzspannung benutzt, hängt an AREF und GND normalerweise einen kleinen Kondensator mit 10-100 nF, um die Referenzspannung zu stabilisieren.
Wenn die Quelle der zu messenden Spannung mehr als 10 kΩ hat, dan bewirkt die Belastung durch den ADC Spannungssprünge auf eben dieser Leitung. Im Einfachsten Fall kann man das stabilisieren, indem man auch hier einen Kondensator mit 10-100 nF zwischen dem analogen Eingang und GND klemmt. Vorausgesetzt, die Quelle verträgt die zusätzliche kapazitive Belastung, und der dadurch entstehende Tiefpass beeinträchtigt die zu messende Frequenz nicht.
Wenn die Quelle z.B. ein Mikrofon wäre, würde ich keinen Kondensator verwenden, sondern einen Impedanzwandler. Der Kondensator würde den Klang des Mikrofons stark verändern.
Die Frequenz ist in deinem Fall wohl irrelevant, schätze ich.
Elektromagentische Störungen, die Dein Kabelsalat einfängt.
Wie lange ist denn Dein Schneckenzaun?
Wird dieser bei Regen nass?
Wie lange sind die Leitungen vom Zaun zu Deiner Anzeige?
Aktuell habe ich zwei Zäune mit jeweils 180cm Länge und die Länge der Leitungen zum Akku bzw zur Anzeige sind 50cm.
Der Zaun ist auf Holz geschraubt, mit Duct-Tape zwischen Holz und Zaun. Wenn es regnet wird der Zaun nass.
Aber wenn das jetzt gut funktioniert, werde ich nächstes Jahr 5 Zäune mit jeweils 450cm haben, wo die Leitungen zum "Steuergerät" bzw zur Anzeige durchaus 5m betragen können.
Gespeist wird das dann aber von einem 12V Akku, der bis zu 20m weit entfernt sein kann (falls das relevant ist).
Und natürlich würde ich es jetzt schon gerne so bauen, dass es auch nächstes Jahr funktioniert.
Ich brauche für meinen Schneckenzaun keine Batterie 🪫 und keine Anzeige!
Nimmst du zwei dünne Flachbänder, eins aus Alu oder etwas verzinktes, eins aus Kupfer. Stelle sie so auf dass beide in kurzem Abstand isoliert voneinander sind und verbinde sie an einer Stelle. Die Schnecke muss, um zu weiterkriechen beide berühren. Kriecht die Schnecke drüber, wirkt sie wie ein Elektrolyt in einer kurzgeschlossenen Batterie und das gefällt ihr nicht! Sie dreht bei.
+-----------------------------+
| (Cu) 😵💫 | <-- Kupferstreifen
+-----------------sch---------+
sch
+-----------------sch---------+
| (Zn) sch | <-- Zinkstreifen
+-----------------sch---------+
sch = Schnecke 🐌
Also ich bin jetzt mal auf 2.56V AREF hochgegangen und messe 10mal mit
einem Abstand von 20ms, das hat auf jeden Fall gegen die krassen
Ausschläge geholfen.
Im Schnitt ist jetzt die vom ATTiny gemessene Spannung konstant knapp 2%
über der vom Multimeter gemessen Spannung. Die Frage ist, ob ich das
noch einigermaßen reduziert bekomme, oder ob das eine Unschärfe ist, die
"normal" ist.
Die AREF Spannung ist nur nominal 2,56V. In Wirklichkeit leicht daneben aber dafür Stabil. Messe mit dem Multimeter am AREF-Pin nach und passe den Wert in deiner Software an.
Ursprünglich wollte der TO nur eine optische, möglichst helle Anzeige.
Das dann naheliegend mit einer Batterieüberwachung zu verknüpfen (ich schlug einen Komparator vor, man kann auch einen Schmitt-Trigger nehmen), ist sicher noch hilfreich. Aber jetzt noch ein Display dran? Das muss auch noch alles für drausen passen.
Mit einem Schmitt-Trigger brauchst du nur noch eine Led und ein bisschen Hühnerfutter, etwas Heißkleber und die ganze Sache ist dicht und für draußen geeignet.
Warum also alles unnötig kompliziert machen?
Also ich bin jetzt mal auf 2.56V AREF hochgegangen und messe 10mal mit
einem Abstand von 20ms, das hat auf jeden Fall gegen die krassen
Ausschläge geholfen.
Im Schnitt ist jetzt die vom ATTiny gemessene Spannung konstant knapp 2%
über der vom Multimeter gemessen Spannung. Die Frage ist, ob ich das
noch einigermaßen reduziert bekomme, oder ob das eine Unschärfe ist, die
"normal" ist.
Die AREF Spannung ist nur nominal 2,56V. In Wirklichkeit leicht daneben
aber dafür Stabil. Messe mit dem Multimeter am AREF-Pin nach und passe
den Wert in deiner Software an.
Also wenn ich den Pin mit dem Multimeter messe, erhalte ich Werte zwischen 2,77V und 3,08V, sobald der ATTiny seine Messung durchführt. Während des sleeps ist sie bei 3,11V (mC hängt aktuell am USB und wird dort mit 3V versorgt).
Das hat meine Verwirrung jetzt nicht besser gemacht :D
Also wenn ich den Pin mit dem Multimeter messe, erhalte ich Werte
zwischen 2,77V und 3,08V, sobald der ATTiny seine Messung durchführt.
Während des sleeps ist sie bei 3,11V (mC hängt aktuell am USB und wird
dort mit 3V versorgt).
Das hat meine Verwirrung jetzt nicht besser gemacht :D
Offenbar schwankt deine Spannungsversorgung von µC stark.
Ist das son Steckbrettgedöns ohne Abblockkondensatoren?
Für ne VREF von 2,56V ist eh eine Versorgung von 5V angebrachter.
Wenn Du einen passend gewählten Widerstand mit drei Dioden in Reihenschaltung überbrückst und parallel dazu den ewigen Blinker von Kainka hängst, dann hast Du einen Anzeige, wenn zuviel Strom fließen sollte, die selbst aber sehr sparsam im Verbrauch ist.
Also ich habe die Versorgung jetzt mal auf 5V geändert.
Dadurch wird die Messung tatsächlich sehr viel stabiler, aber mein Ergebnis ist jetzt bei 10,18V-10,20V. Der Akku hat aktuell 9,44V.
Das ist mein aktueller Code:
1
#define PIN_TEST A1
2
3
//#define REF_VOLTAGE 1.1
4
#define REF_VOLTAGE 2.56
5
#define INTERNAL2V56_NO_CAP (6)
6
#define PIN_STEPS 1023.0
7
8
constfloatR1=99000.0;// exact resistance of R1 (= 100 kOhm)
9
constfloatR2=9800.0;// exact resistance of R2 (= 10 kOhm)
10
11
floatvout=0.0,vin=0.0;
12
floatvinAvg=0;
13
intrawValue=0;
14
15
voidsetup(){
16
analogReference(INTERNAL2V56_NO_CAP);
17
Serial.begin(9600);
18
pinMode(PIN_TEST,INPUT);
19
}
20
21
voidloop(){
22
23
vin=0;
24
25
for(inti=0;i<10;i++){
26
rawValue=analogRead(PIN_TEST);
27
//Serial.println(String(rawValue));
28
vout=(rawValue/PIN_STEPS)*REF_VOLTAGE;
29
30
floatvinTmp=vout/(R2/(R1+R2));
31
32
if(vinTmp<0.09){
33
vinTmp=0.0;// suppress noise
34
}
35
vin+=vinTmp;
36
delay(20);
37
}
38
39
vin=vin/10;
40
41
if(vinAvg==0){
42
vinAvg=vin;
43
}else{
44
vinAvg=(vinAvg+vin)/2;
45
}
46
47
Serial.println("U = "+String(vin)+" V - "+String(vinAvg));
Sinnlose Spielerei, die obendrein die Aufgabe nicht erfüllt:
Also ich konnte mit meinem aktuellen Prototypen nachweislich schon
mehrere Nacktschnecken davon abhalten, sich an meinen Chillies zu
vergehen. Daher ist die Sinnhaftigkeit aktuell auf jeden Fall gegeben.
Missverständnis: Ich sehe den Mikrocontroller als sinnlose Spielerei, nicht den Schneckenschutz an sich.
Und die Aufgabe erfüllt µC der auch nicht, nämlich zu signalisieren, wenn Strom fließt.
Vielleicht hättest Du ja auch noch einen Hinweis für mich, warum die
gemessen Spannungen so schwanken.
Mehrere Messungen machen, den größten und kleinsten Wert weg und den Mittelwert aus dem Rest bilden - so mache ich das.
Also ich bin jetzt mal auf 2.56V AREF hochgegangen und messe 10mal mit
einem Abstand von 20ms, das hat auf jeden Fall gegen die krassen
Ausschläge geholfen.
Jou, aber steht auch wieder dem Wunsch nach geringem Verbrauch im Wege. Das geht auch schneller, mit z.B. 7ms Pause.
Im Schnitt ist jetzt die vom ATTiny gemessene Spannung konstant knapp 2%
über der vom Multimeter gemessen Spannung. Die Frage ist, ob ich das
noch einigermaßen reduziert bekomme, oder ob das eine Unschärfe ist, die
"normal" ist.
Es ist Aufgabe DEINER Software, die gemessene Zahl in die Spannung umzurechnen.
Das mit dem externen Kondensator verstehe ich nicht ganz.
Der kommt am Teiler parallel zum 10 kOhm bzw. vom Analog-Eingang nach GND.
Während des sleeps ist sie bei 3,11V (mC hängt aktuell am USB und wird
dort mit 3V versorgt).
Solange der µC schläft, wird er die Referenz nicht garantieren wollen. Wie Versorgung per USB und 3V zusammenpassen, erschließt sich mir nicht. Versorge das Ding anständig per Längsregler aus der Batterie.
Tobi, deine anfänglichen Ansprüche haben sich in eine ganz andere Richtung entwickelt.
Es ist schwer zu folgen, wenn du diese nicht zwischendurch neu definierst.
Keiner hat Deinen Aufbau gesehen. Daher muss man immer mit dem üblichen worst-case rechnen.
Messe mal nacheinander eine 1,5V Zelle, an eine 5V Powerbank und an einer 9V Batterie. Zuerst und zuletzt die 0V, wenn nix dran hängt oder der Eingang auf Masse gelegt wurde.
Dann wäre der Schaltplan zu posten sehr sinnvoll. Den ganzen Schaltplan hast Du sicherlich noch nicht, aber es reicht nur den Teil zu zeichnen bis zum ADC-Pin am µC, der die Spannung misst.
Tobi, deine anfänglichen Ansprüche haben sich in eine ganz andere
Richtung entwickelt.
Es ist schwer zu folgen, wenn du diese nicht zwischendurch neu
definierst.
Verstehe ich total, daher nochmal kurz zusammengefasst:
Initial ging es mir nur darum, zu sehen, ob der Stromkreis des Schneckenzauns geschlossen ist oder nicht, um ggf was dagegen zu unternehmen, bevor mir die Batterie leer gesaugt wird.
Durch die Diskussion hier hat sich das jetzt aber ein bisschen erweitert und ich würde gerne folgendes umsetzen:
Anzeige des Akku-Füllstandes (entweder mit 1 LED, die je nach Füllstand unterschiedlich blinkt oder mit 3 LEDS (Rot, Gelb, Grün))
Anzeige, ob der Schneckenzaun grad offen/geschlossen ist mit einer extra LED
Um Strom zu sparen, möchte ich die LEDs immer nur alle x Sekunden kurz blinken lassen.
Stromversorgung erfolgt komplett über den 9V/12V Akku. Über einen Festspannungsregler wird der ATTiny mit 5V versorgt.
Mein Ansatz ist jetzt, das mit einem ATTiny85 zu machen.
Dieser ist per default im SLEEP_MODE_PWR_DOWN und wacht dann alle x Sekunden auf, prüft die Ladung des Akkus und ob was im Zaun festhängt, blinkt dann kurz mit den LEDs und legt sich wieder schlafen.
Grundsätzlich sehe ich da keine Probleme mit der Umsetzung, das einzige, woran ich grad scheitere, ist das Auslesen der Akku-Spannung.
Mein aktuelles Schaltbild ist im Anhang.
Initial ging es mir nur darum, zu sehen, ob der Stromkreis des
Schneckenzauns geschlossen ist oder nicht, um ggf was dagegen zu
unternehmen, bevor mir die Batterie leer gesaugt wird.
Dann hatte ich es da schon nicht so verstanden, wie du es gemeint hast.
Bei "geschlossen" dachte ich tatsächlich eher an eine Unterbrechung, bzw. eher, ob die Batterie leer ist.
Initial ging es mir nur darum, zu sehen, ob der Stromkreis des
Schneckenzauns geschlossen ist oder nicht, um ggf was dagegen zu
unternehmen, bevor mir die Batterie leer gesaugt wird.
Dann hatte ich es da schon nicht so verstanden, wie du es gemeint hast.
Bei "geschlossen" dachte ich tatsächlich eher an eine Unterbrechung,
bzw. eher, ob die Batterie leer ist.
Wie wäre denn hier eine "korrekte", bzw verständlichere, Bezeichnung gewesen? Möchte ja in Zukunft sichergehen, dass ich richtig verstanden werde.
Natürlich noch die Internetanbindung nicht vergessen. +Kopfschüttel+
Wieso muss alles ein Display haben?
Die Dinge werden immer mehr zum Selbstzweck.
Wieso "Selbstzweck"?
Der TO wollte doch eine Anzeige und ein Display zeigt etwas an (sofern es korrekt "gefüttert" wird. Ausserdem sind wir hier ein Mikrocontroller-Forum, was ein gewisses Niveau impliziert.
Du kannst ja der Meinung sein, dass du den Aufwand zu hoch findest, generell falsch oder unsinnig ist es deshalb aber noch lange nicht.
Wenn man den Akkustand bei Tageslicht mit einer LED über größere Entfernung anzeigen möchte, braucht die mindestens 10..20 mA, was dem Akku-Füllstand wohl nicht gut tut. Da macht doch eine Anzeige wie im Bild deutlich mehr her. E-Paper brauchen nur dann Strom, wenn sich etwas im Bild ändert.
Also ich habe jetzt mal einen 33uF Kondensator eingebaut. Siehe Schaltplan.
Damit bekomme ich folgende Ergebnisse:
U = 10.07 V
U = 10.05 V
U = 10.05 V
U = 10.06 V
U = 10.06 V
U = 10.05 V
U = 10.04 V
U = 10.05 V
U = 10.05 V
U = 10.04 V
U = 10.03 V
U = 10.05 V
U = 10.05 V
U = 10.06 V
U = 10.04 V
U = 10.05 V
Ohne den Kondensator sieht es so aus:
U = 10.10 V
U = 10.10 V
U = 10.10 V
U = 10.11 V
U = 10.09 V
U = 10.11 V
U = 10.11 V
U = 10.11 V
U = 10.12 V
U = 10.10 V
U = 10.11 V
U = 10.10 V
U = 10.10 V
U = 10.10 V
U = 10.11 V
Die Batterie ist bei 9,4V
Ich bin zum Test nochmal auf 3V VCC runtergegangen und da sind meine Ergebnisse sehr viel näher an der tatsächlichen Spannung (zwischen 9,5 und 9,65). Der Kondensator hat da aber keinen nennenswerten Effekt.
Du erwartest zu viel. Die interne Referenz kann einige Prozent vom Soll abweichen.
Wenn du eine Lösung ohne manuellem Abgleich willst musst du eine externe Referenz verwenden. Es gibt passende IC's, die vom Hersteller während der Produktion justiert werden. So etwas benutze ich, um meine Multimeter zu kontrollieren.
Aber habt Ihr eine Erklärung dafür, dass die Werte so unterschiedlich sind, je nachdem, ob ich mit 3V oder 5V arbeite?
Bezüglich der Toleranzen werde ich mal schauen, dass ich jetzt die Umrechnung mal so anpasse, dass das Ergebnis für die 9V Batterie sauber ist und dann mal mit anderen Spannungsquellen probieren.
Dann mach jetzt mal einen Kondensator 100nF zwischen AREF-Pin (PB0) und GND.
und dann mess die Spannung an AREF, diesen Wert dann in der Software verwenden.
Ich bin zum Test nochmal auf 3V VCC runtergegangen und da sind meine
Ergebnisse sehr viel näher an der tatsächlichen Spannung
Oh weh, da fehlt ja alles an Grundverständnis. Der Meßwert ist ein Vergleich gegen die Referenzspannung des µC und ich weiß nicht, ob dieser bei 3V-Versorgung seine 2,56V noch halten kann. Setze das DIng auf 1,1V, dann dürfen sich die Meßwerte zwischen 3 und 5V-Versorgung nicht verändern.
Dann mach jetzt mal einen Kondensator 100nF zwischen AREF-Pin (PB0) und
GND.
und dann mess die Spannung an AREF, diesen Wert dann in der Software
verwenden.
Also ich weiß nicht, was ich falsch gemacht habe, aber ich habe dort 5V bzw 4,9V gemessen...
Ich habe jetzt einfach den berechneten Wert und den gemessen Wert verglichen und
habe dort knapp 9% Unterschied. Daher rechne jetzt mit einem REF_VOLTAGE von 1,004 statt 1,1 und damit stimmen meine Ergebnisse ziemlich gut überein.
Ein bisschen unbefriedigend, aber wenigstens kann ich jetzt weitermachen...
Meine Vermutung sagt mir das er keinen Blockkondensator an VCC und GND hat und die Kiste periodisch Resettet.
Das ist mir sogar selbst mal an einen Tiny13 passiert der als Taktteiler programmiert war. Sobald die ersten 3 Bits komplett umgeschaltet haben war Reset.
Ich würde an deiner Stelle nicht zu laut lachen. Hast du schon mal eine
9 Volt Blockbatterie an deine eigene Zunge drangehalten? Das was du dann
fühlst, fühlt auch die Schnecke, nur 1000 mal stärker, weil sie 1000 mal
kleiner und 1000 mal schwächer ist als du. Der Schleim auf deiner Zunge
ist mit dem einer Schnecke vergleichbar.
Donnerwetter. So viel Oberflächliches in so wenigen Worten habe ich lange nicht mehr gelesen.
einen elektrischen Schneckenzaun zu bauen. Im Moment erstmal mit 9V
hahahaha ( sagen da die Schnecken )
Den allermeisten Schnecken ist schon viel, viel weniger so unangenehm, dass sie umdrehen. Bei meiner völlig wartungsfreien und damit maximal sparsamen (um das Threadthema aufzugreifen) Lösung im Beitrag "Re: Stromspannung - wie viele Meter?" bringen sie den Elektrolyten sogar selber mit.
Ich hab doch nochmal eine Frage:
Im Anhang findet Ihr ein grobes Schaltbild meine geplanten Zauns (Stromversorgung des mC ist hier aktuell nur angedeutet).
Wo ich grad ein bisschen unsicher bin ist der 500Ohm Widerstand in der Mitte.
Der soll als Schutz bei einem Kurzschluss des Zauns (durch Regen, etc) fungieren, aber ich bin mir nicht sicher, wie groß ich den am besten dimensionieren.
Im Worst-Case (Kurzschluss bei 12V Spannung) setzt der knapp unter 300mW Leistung um. Da wird der wahrscheinlich schon ziemlich warm, oder? Ist das zu viel?
Aber wenn ich den Widerstand größer mache, geht das halt auf Kosten der potentiellen Wirksamkeit, weil ich ja so viel Spannung wie möglich für die Schnecken haben möchte. Vor allem, solange ich noch mit 9V unterwegs bin.