Guten Abend,
ich sende mit einem ATtiny45 Daten über ein 433Mhz-Modul. Zum einen
Sende ich Daten beim Einschalten des Mikrocontroller und zum anderen
möchte ich beim Ausschalten Daten Senden. Hier komme ich allerdings
nicht weiter. Habe von der Spannung eine Verbindung zum INT0 und bei
einer Fallenden Flanke rufe ich die ISR auf um die Daten zu senden.
Allerdings funktioniert das ganze nicht. Ist auch klar, da wenn die
Spannung wegfällt und die ISR aufgerufen wird, hat der Mikrocontroller
und das Sendemodul natürlich auch keine Spannung mehr.
Gibt es eine Möglichkeit, eine Art Speicher zu erstellen, der so lange
hält, bis die Daten gesendet worden sind?`Das Senden dauert ca. 0,5
Sekunden. Habe schon gedacht (und auch probiert) einen Elko (100uF)
zwischen Vcc und Gnd zu stecken, aber dadurch würde die ISR einfach auch
nur später aufgerufen werden und es funktioniert immer noch nicht.
Frnak
Frank schrieb:> Gibt es eine Möglichkeit, eine Art Speicher zu erstellen,> der so lange hält, bis die Daten gesendet worden sind?
Klar.
> Das Senden dauert ca. 0,5 Sekunden. Habe schon gedacht> (und auch probiert) einen Elko (100uF) zwischen Vcc und> Gnd zu stecken,
Guter Ansatz.
> aber dadurch würde die ISR einfach auch nur später> aufgerufen werden und es funktioniert immer noch nicht.
Du musst natuerlich das Triggersignal fuer die ISR extra
erzeugen. Dazu fuehrst Du die Betriebsspannung zuerst
an den Interrupteingang und von dort aus ueber eine
Schottky-Diode an Vcc und den Elko. Ggf. ist am
Interrupteingang ein Pull-down-Widerstand sinnvoll.
Possetitjel schrieb:> Ggf. ist am Interrupteingang ein Pull-down-Widerstand sinnvoll
Das ist auf jeden Fall sinnvoll, denn eine Schottky hat einen nicht
unerheblichen Leckstrom.
Erst einmal danke für eure Antworten.
Ist die Schaltung so richtig aufgebaut?
Beim Ausschalten funktioniert es nämlich noch nicht. Evtl müsste ich
einen größeren Kondensator nehmen? Wie viel Kapazität müsste dieser
ungefähr haben?
Frank
> Wie viel Kapazität müsste dieser ungefähr haben?
Bei 1 Farad und 1 Ampere sinkt die Spannung um 1 Volt pro Sekunde.
Du musst zunächst heraussuchen, wie weit die Spannung absinken darf.
Dann musst du herausfinden, wie viel Strom deine Teile brauchen.
Wahrscheinlich ergibt die Berechnung irrsinnig grosse Kondensatoren und
du musst dir was anderes ausdenken. Z.B. ein 12V Netzteil und die
Kondensatoren vor dem 5V Spannungsregler. Oder ein Step-Up/Down
Spannungsregler, der auch noch 5V liefert, wenn die Kondensatoren auf 1V
entladen sind.
Noch einer schrieb:> Du musst zunächst heraussuchen, wie weit die Spannung absinken darf.> Dann musst du herausfinden, wie viel Strom deine Teile brauchen.
Wieviel Strom die Teile brauchen, ist ziemlich egal. Entscheidend ist
die Ladung, die benötigt wird, um die Ausschaltmeldung noch abzusetzen.
Meinst Du Ausschalten oder Stromausfall ?
Im ersten Fall genügt ein Taster, der die Senderoutine aufruft sendet
und danach die Stromversorgung abschaltet.
Der zweite Fall ist ein anderer Strumpf.
Frank schrieb:> Evtl müsste ich> einen größeren Kondensator nehmen? Wie viel Kapazität müsste dieser> ungefähr haben?
Vermutlich einen viel grösseren. Schau doch mal nach, was der controller
und v.a. was das HF-Modul braucht, dann kann man dir weiterhelfen. Die
brauchen relativ viel Strom, und 0,5 s ist auch eine lange Zeit. Die
üblichen Sachen wie wegspeichern von Daten brauchen nur ms.
Georg
Frank schrieb:> ich sende mit einem ATtiny45 Daten über ein 433Mhz-Modul. Zum einen> Sende ich Daten beim Einschalten des Mikrocontroller und zum anderen> möchte ich beim Ausschalten Daten Senden.
Selbst wenn es dir gelingt, die Daten noch zu senden, gibt dir das keine
Sicherheit.
Bei Funk und gerade im 433MHz SRD-Bereich weisst du nicht, ob der
Empfänger eine blind gesendete Ausschaltmeldung überhaupt zur Kenntnis
nimmt. Bei einem Funkthermometer ist es egal, ob der Messwert mal nicht
aktualisiert wird und bei der Funkfernbedienung drückt man eben noch
mal. Aber für eine einmalig Ausschaltmeldung sieht das anders aus.
Frank schrieb:> Ist die Schaltung so richtig aufgebaut?
Unabhängig von der schon angesprochenen Dimensionierung des
Kondensators:
Du solltest noch einen Widerstand vor den I/O einbauen. Andernfalls kann
der Strom über die Schutzdiode des I/O diesen Eingang zerstören.
Achim S. hatte diesen Widerstand aber auch schon erwähnt.
Wolfgang schrieb:> Wieviel Strom die Teile brauchen, ist ziemlich egal. Entscheidend ist> die Ladung, die benötigt wird, um die Ausschaltmeldung noch abzusetzen.
Naja, und die Ladung muss so groß sein, dass bei gegebenenm Strom und
Zeit (0,5s) die Spannung nicht zu weit einbricht. Und die Formeln
hierfür ergeben halt die 1000µF pro mA I bei 2V Delta U.
Achim S. schrieb:> Naja, und die Ladung muss so groß sein, dass bei gegebenenm Strom und> Zeit (0,5s) die Spannung nicht zu weit einbricht. Und die Formeln> hierfür ergeben halt die 1000µF pro mA I bei 2V Delta U.
Ich komme auf 250µF:
C = Q / U = (I * t) / U = (0,001A * 0,5s) / 2V = 250µF
Probiere es doch einfach aus mit verschiedenen C wielange die Schaltung
läuft. Muss man doch jetzt keine Wissenschaft draus machen.
So ein Funkmodul braucht wenige 10ma, sagen wir mal mit Prozessor 30mA.
Sagen wir es überträgt noch 50 Bytes mit 1.200 Baud, das sind 0,05
Sekunden. Nehmen wir an die Schaltung läuft mit 5V und geht auch noch
mit 4V.
Nach der genannten Formel 1mF pro mA pro Sekunde und V brauchen wir
30x0,05 = 1500uF.
Evtl kann man auch den Spannungsabfall schon früher feststellen und
schon während des abfallens senden, dann kann der C auch noch etwas
kleiner sein.
Da müsste man einen Komparator oder Opamp und eine
Spannungsreferenz/Spannungsteiler nutzen, den Abfall bei 4,5V bereits
feststellen.
Damit nutzt man die C des Netzteil dann mit.
Aber vermutlich ist es billiger und einfacher einen oder mehrere Cs
einzubauen, 2x 1000uF oder 4x 470 oder so.
Achim S. schrieb:> Naja, und die Ladung muss so groß sein, dass bei gegebenenm Strom und> Zeit (0,5s) die Spannung nicht zu weit einbricht. Und die Formeln> hierfür ergeben halt die 1000µF pro mA I bei 2V Delta U.
Eben, dafür musst du die mittlere Stromaufnahme erstmal wissen, d.h. das
komplette Stromprofil für die Nachlaufzeit bestimmem.
Und wie bestimmt diesen Strommittelwert?
Man integriert über die Zeit und teil durch eben die Integrationszeit.
Genau die Integration kann ein Kondensator bestens übernehmen. Man lädt
einen großzügig dimensionierten Kondensator auf und guckt an, wie weit
er sich entladen hat, bis die Daten raus sind. Ohne sich dann überhaupt
um die Zeit zu kümmern und irgend welche Mittelwertschätzereien über das
Stromprofil zu veranstalten, ergibt sich die Ladung aus Kapazität und
Spannungsabnahme. Wenn man nun die Ladung weiss, kann man den
endgültigen Kondensator so dimensionieren, dass am Ende der Aussendung
noch ausreichen Betriebsspannung vorhanden ist.
Bei Verwendung eines Senders, dessen Leistung von der Betriebsspannung
abhängt, ist es, wie schon vorgeschlagen, eventuell sogar günstig, den
Kondensator vor einem Spannungsregler zu plazieren, damit die
Sendeleistung über die Dauer des Datentelegramms nicht absackt.
> Ihr macht da alle eine Riesenwissenschaft draus.> Der soll mal 2000uF dranhängen und fertig.
L.O.L.
JA!
Ich haette aber eher zu 10 mF tendiert.
Die gibt es ja fuer 6.3V auch in sehr handlich.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag
#4985141:
> L.O.L.> JA!>> Ich haette aber eher zu 10 mF tendiert.> Die gibt es ja fuer 6.3V auch in sehr handlich.
Im postfaktischen Zeitalter wird gemacht und nicht gedacht
> Im postfaktischen Zeitalter wird gemacht und nicht gedacht
Umgekehrt.
Isaak Newton sagte - das Experiment hat immer recht. Wenn du was anderes
denkst, sind deine Überlegungen falsch.
Damit begann das Zeitalter der Fakten.
Noch einer schrieb:> Isaak Newton sagte - das Experiment hat immer recht.
Und wer bestreitet das? Nur jemand der jegliche Fakten ignoriert.
Auch mit einem beliebig überdimensionierten Kondensator wird es
natürlich immer funktionieren.
Die Frage an das Experiment ist hier aber eine andere.
Ein Punkt war die Frage nach der Mindestgröße eines Kondensators,
damit die Aussendung noch funktioniert und ob man mit den genannten
100µF hoffnungslos daneben liegt.
Noch einer schrieb:> Isaak Newton sagte - das Experiment hat immer recht. Wenn du was anderes> denkst, sind deine Überlegungen falsch.
Das Experiment kann auch falsch sein, also nicht zu den Überlegungen
passen. Und schon haben wir das Grundproblem der Wissenschaft, zu wenige
Gleichungen mit zu vielen Unbekannten.
Joe F. schrieb:> Wo hängt denn das 433 MHz Modul dran? Das braucht ja auch noch Saft...
Den hatte ich ebenfalls am Kondensator drangehängt.
THOR schrieb:> "Mikrocontroller bei abgesteckter Spannung zu ende arbeiten lassen">> Das Wort dafür lautet übrigens "Nachlauf".
Super, Danke.
Ich habe jetzt 1000uF dran gehangen und es funktioniert ganz gut. Sogar
eine LED während des Sendens kann ich noch aufleuchten lassen.
Ich danke euch für eure hilfe.
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag
#4985202:
> Davon kann Mann wohl ausgehen.
Mann hat das Problem aber gar nicht, der diskutiert hier nicht mit.
Und natürlich kommt es auch auf die Übertragungsgeschwindigkeit, das
Übertragungsprotokoll, die Datenmenge und die Latenz des Programms drauf
an. Die Parameter kennt hier aber keiner. Also müssen die Tips
naturgemäß allgemeiner Natur bleiben.
Das Grundkonzept lässt sich relativ einfach umreißen:
Zwei Versorgungszweige
a) Nur die CPU und der Sender
b) Alles andere. Dabei unterstelle ich mal, dass Deine Schaltung
irgend etwas macht;) Messsensoren; Die beliebten LEDs; usw.
- Die zwei Zweige müssen getrennt sein. Am Besten durch eine Diode mit
geringem Durchlasswiderstand (Schottky oder so).
- Die Größe des Stützkondensators oder besser HiCap hängt natürlich vom
Verbrauch des Senders und der CPU ab. Weshalb Dir hier auch keiner in
diesem Punkt helfen kann.
- Eine "Erkennung" wann die Spannung ausgefallen ist. Ist nicht ganz
einfach, da man ja nicht erst den "halben" Stützkondensator
leersaugen will, bevor man auf die sichere Seite wechselt. Allerdings
soll natürlich auch Sichergestellt sein, dass die Peripherie oder die
CPU schon Amok laufen.
Darüber hinaus sollte bei unruhigen Verhältnissen nicht zweimal
Schluss gemacht werden.
Schön wäre es auch, wenn beim Einschalten nicht schon in den Notmodus
gegangen würde. Der Stützkondensator (bzw. die Spannung in diesem
Zweig) führt zu diesem Zeit ein interessantes Eigenleben.
Warum nicht ein anderes Konzept?
Warum muss das Gerät eigentlich etwas Senden, wenn es ausfällt? Hätte
man das nicht schon früher machen können? Etwas bei Änderungen, oder
zyklisch alle n Sekunden.
Dann weiss die Gegenstelle nach n+1 Sekunden: das Gerät ist aus, hat
aber trotzdem vorher schon alle Daten übertragen.
So ein Konzept ist vielleicht einfacher als die ganze
Kondensator-Geschichte.
Frank schrieb:>>> Ich habe jetzt 1000uF dran gehangen und es funktioniert ganz gut. Sogar> eine LED während des Sendens kann ich noch aufleuchten lassen.> Ich danke euch für eure hilfe.
So ist es recht.
"Viel hilft viel" stimmt dann doch ab und zu mal... ;-)
Als Alternative wollte ich noch vorschlagen einfach im Betrieb
regelmäßig (z.B. alle 5-10 Sek) zu senden. Wenn das Signal dann länger
als sagen wir mal 2 Perioden ausbleibt, kann der Empfänger davon
ausgehen, dass der Sender ausgeschaltet wurde.
Kommt halt auf die Anwendung an, ob das praktikabel ist.
Ich halte den Ansatz mit dem Pufferelko für äußerst fragwürdig. In
diversen Threads wurde schon mehrfach der AVR-Transistortester erwähnt,
der sich seine Versorgung selbst abschaltet, wenn er fertig ist.
Anstatt eines Schalters gibt es dann eben zwei Taster für Ein und Aus,
der µC sendet seine Daten und klemmt sich dann selbst ab.