• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Reaktives Licht mit Atmel AVR

stonewood

Geowizard
thomas_st schrieb:
kann bei 25°C Umgebungstemperatur laut Datenblatt bis zu 11A :schockiert: Dauerstrom schalten.
Öh, und dabei glühen die Beinchen und vor allem das interne Bonding nicht weg? Schließlich haben 8A-Sicherungen auch meist nicht mehr Draht zu bieten ...
 

thomas_st

Geowizard
stonewood schrieb:
thomas_st schrieb:
kann bei 25°C Umgebungstemperatur laut Datenblatt bis zu 11A :schockiert: Dauerstrom schalten.
Öh, und dabei glühen die Beinchen und vor allem das interne Bonding nicht weg? Schließlich haben 8A-Sicherungen auch meist nicht mehr Draht zu bieten ...
Ausprobiert habe ich es nicht - schon aus Mangel eines entsprechenden Netzteils ;), ich gebe nur an, was das Datenblatt hier zulässt. Allerdings bis 1,5A macht er ohne Probleme und auch ohne das leichtes Zucken mit.

Einen Punkt hätte ich vielleicht noch erwähnen sollen, bei diesem Transistor sind mehrere Pins parallel geschaltet: 4 bilden zusammen den Drain und 3 zusammen die Source - da teilt sich der Strom schon etwas auf. Bzgl. bondig: vielleicht sind ein paar dickere Bonddrähte genutzt worden.

Als Pulsstrom (wobei bzgl. Pulslänge das Datenblatt recht vage ist: die maximale junction Temperatur darf halt nicht überschritten werden) gibt das Datenblatt sogar 88A :schockiert: an - da scheinen ja die Bonddrähte und Pins auch noch nicht wegzuglühen

Viele Grüße,
Thomas(_st)
 

schnasemann

Geocacher
@stonewood: Das ist eine tolle Idee, mit dem AD-Wandler! Vor allem, weil Dein eingesetzter Tiny eine tolle Referenz hat.
Ich habe heute rein interessehalber mal geschaut. Ich bekomme bei einer superhellen 3mm LED bis zu 1V zusammen, wenn Tageslicht drauffällt. Mit LED-Schlüsselanhänger-Lampe lässt sich immer noch sauber triggern und bei meiner Arbeitstischlampe (Leuchtstoff) kann ich am Oszi sogar noch die 100Hz zusätzlich messen.

Wenn nun Dein Programm noch für den Nachtmodus bessere Stromaufnahmen zusammenbringt, wäre das Ding ein Bringer.
Was ich nicht verstehe ist, Deine Reihenfolge.
1.Bevor Du den A/D Wandler einschaltest, reicht es doch, den Portpin auf Masse zu ziehen. Das muss nicht bei eingeschaltetem Wandler passieren.
2. Auch der A/D-Wandler kann den schlafenden tiny aufwecken - also schlafen legen.
3. Wenn Du einen weiteren Portpin zum Schalten der Anode verwendest, kann da ein Vorwiderstand dran. Bei den Messungen dann einfach diesen Schaltpin auf tristate setzen.

Wie versorgst Du Dein Reaktivlicht? Die Platine sollte so winzig klein werden können, dass man die auch professionell machen lassen kann, da bekommt man auf einen dm² genug drauf.
Grüße, schnasemann
 

Teddy-Teufel

Geoguru
schnasemann schrieb:
Wie versorgst Du Dein Reaktivlicht? Die Platine sollte so winzig klein werden können, dass man die auch professionell machen lassen kann, da bekommt man auf einen dm² genug drauf.
:???: So klein ist ja nun 1 dm² auch wieder nicht, meine sind jetzt schon kleiner 225mm² und die ganz ersten waren auch bloß 400mm².
 

schnasemann

Geocacher
deshalb schrieb ich, da bekommt man auf einen dm² genug drauf. Eben Trillionen an Reaktivlichtern, sodass sich das auch rechnet, weil man dann pro RL dann nicht Unsummen bezahlt.

:D

ich liege bei 1dm² ca bei 25-30 EUR. Wenn da nun knapp 40 drauf passen, geht das.
 

stonewood

Geowizard
schnasemann schrieb:
@stonewood: Das ist eine tolle Idee, mit dem AD-Wandler! Vor allem, weil Dein eingesetzter Tiny eine tolle Referenz hat.
Waswiewo? Meine Idee? Nö, da war schon wer anders dran. ;)
Wie versorgst Du Dein Reaktivlicht? Die Platine sollte so winzig klein werden können, dass man die auch professionell machen lassen kann, da bekommt man auf einen dm² genug drauf
Dazu kann ich nun wieder was sagen. :D Meine Lochraster-RL mit LDR haben die Abmessung 5x8 Rasterpunkte (also 4x4 Rasterpunkte für den Tiny, 3x4 Rasterpunkte für den Sensor und die LED, und noch einen Rasterpunkt für den Rand). Wären also konkret ca. 12x19,5 mm Platine.
Nur mit LED würde eine 4er-Reihe für die LED allein reichen, oder man baut die gleich unterhalb des Tiny ein. Ob man dann wirklich noch ne Platine dafür machen will ist dann schon die große Frage.

Versorgen kann man die mit 2 AA-Batterien im Petling, wenn eine blaue LED mit im Spiel ist hat sich bei mir 3xAAAA bewährt. 9V-Blockbatterie demontieren, die 6 AAAA-Batterien geeignet auftrennen. 3 davon passen ohne weiteres in einen kleinen PETling. Alternativ gibts dann noch Lithium-Batterien als Knopfzelle &co., damit hab ich selbst aber noch nicht experimentiert. Die Batterien halten sowieso ewig wenn der Tiny konsequent runtergefahren wird, und wenn ein paar Mal im Monat die LED ausgelöst wird heißt das mit 1Ah ein Leben von >3 Jahren. Lange genug also daß man bequem mal die Batterien tauschen kann.
 

thomas_st

Geowizard
stonewood schrieb:
[...] 3xAAAA bewährt. 9V-Blockbatterie demontieren, die 6 AAAA-Batterien geeignet auftrennen. 3 davon passen ohne weiteres in einen kleinen PETling.
Nur zur Ergänzung: leider sind nicht alle 9V-Blöcke aus AAAA-Zellen aufgebaut. Meine Erfahrung, wie auch die wiki sagen: wenn die Bezeichnung des 9V-Blocks 6LR61 lautet, sind AAAA-Zellen drin, wenn sie 6F22 lautet, sind 6 Flachzellen drin. Ich will aber nicht meine Hand ins Feuer legen, dass das immer so ist.

Die 9V-Blöcke von Energizer, wie auch die von Aldi (Süd) sind aus AAAA-Blöcken aufgebaut.

HTH,
Thomas(_st)
 

gomerffm

Geocacher
schnasemann schrieb:
@stonewood: Das ist eine tolle Idee, mit dem AD-Wandler! Vor allem, weil Dein eingesetzter Tiny eine tolle Referenz hat.
Ich habe heute rein interessehalber mal geschaut. Ich bekomme bei einer superhellen 3mm LED bis zu 1V zusammen, wenn Tageslicht drauffällt. Mit LED-Schlüsselanhänger-Lampe lässt sich immer noch sauber triggern und bei meiner Arbeitstischlampe (Leuchtstoff) kann ich am Oszi sogar noch die 100Hz zusätzlich messen.

Wenn nun Dein Programm noch für den Nachtmodus bessere Stromaufnahmen zusammenbringt, wäre das Ding ein Bringer.

Hier mal ein deutlich stromsparenderes Listing:

$regfile = "ATtiny13.DAT"
$crystal = 128000 'Reale Frequenz des internen 128kHz-Oszillators

$hwstack = 10 ' default use 32 for the hardware stack
$swstack = 10 'default use 10 for the SW stack
$framesize = 10 'default use 40 for the frame

Stop Ac

Config Portb = &B11101111 'Portb.4 auf 'Eingang' schalten
Portb = &B00000000 'keine Pullups zuschalten


Wdtcr = &B11010100 'Watchdog auf 250ms einstellen
Enable Interrupts


Config Adc = Single , Prescaler = Auto , Reference = Internal 'referenzspannung Des Adc Auf "Internal" = 1,1 V

Dim Wert1 As Word
Dim Wert2 As Word
Dim Schwelle As Word

Dim Anzahl As Byte
Dim Impuls As Byte


Wert1 = 1023 'Wert 1 vor der ersten Messung definieren

Do

Wdtcr = &B11010100 'Watchdog auf 250ms einstellen
Reset Watchdog
Powerdown

Start Adc

Config Portb.4 = Output 'LED "entladen"
Portb.4 = 0

Waitms 1

Config Portb.4 = Input
Portb.4 = 0

Waitms 10
'Spannung der LED messen
Wert2 = Getadc(2)
Stop Adc

Schwelle = Wert1 + 10 'Schwelle (10 heller als Signal)festlegen, je kleiner so empfindlicher

If Wert1 < 30 And Wert2 > Schwelle Then 'Dunkelschwelle (30) festlegen, je kleiner umso dunkler
Gosub Blitz
End If

If Wert1 > 30 And Wert2 > 30 Then 'bei Tag oder Dauerlicht Watchdog x n aktivieren


Wdtcr = &B11110001 'Watchdog auf 8s einstellen
Reset Watchdog
Powerdown

End If

Wert1 = Wert2 'Wert2 nach Wert1 verschieben

Loop

Blitz: 'LED getaktet blinken lassen

Config Portb.4 = Output
Portb.4 = 0

For Anzahl = 1 To 5

For Impuls = 1 To 20
Portb.4 = 1
Waitms 2
Portb.4 = 0
Waitms 8
Next Impuls

Waitms 200

Next Anzahl
Return
End

Damit sinds dann mit 3V Versorgungsspannung bei Tag ca. 5µA und bei Nacht so ungefähr etwas über 30µA.
Das Lichtchen lässt sich mit meinem Mag 3D-Equivalent sicher über 50m auslösen.
Größere Reichweiten lassen sich sicher durch Verlängerung der 10ms dem Umschalten von PB4 auf Eingang und der Messung der LED-Spannung allerdings auf Kosten einer erhöhten Stromaufnahme erreichen. Lässt sich bestimmt auch noch was über den Schwellenwert (Wert1 + ??) machen, hab ich aber bislang nicht ausgetestet. Die 10ms durch eine Watchdog gesteuerte Zeit zu ersetzen und dann den ADC zu starten hat bei mir leider auch nicht funktioniert :???:

schnasemann schrieb:
Was ich nicht verstehe ist, Deine Reihenfolge.
1.Bevor Du den A/D Wandler einschaltest, reicht es doch, den Portpin auf Masse zu ziehen. Das muss nicht bei eingeschaltetem Wandler passieren.
2. Auch der A/D-Wandler kann den schlafenden tiny aufwecken - also schlafen legen.
3. Wenn Du einen weiteren Portpin zum Schalten der Anode verwendest, kann da ein Vorwiderstand dran. Bei den Messungen dann einfach diesen Schaltpin auf tristate setzen.

Verfüge leider nur über Bascom Programmierkenntnisse... :blush6:
@1. Hab das auch versucht. Funktioniert aber unter Bascom irgendwie nicht. :headbash:
@2. Würde mich sehr freuen, wenn du zu dem Vorschlag mal ein Bascom-Programmbeispiel hier einstellst :applaus:
@3 Klar kann man das so machen.. aber der Gag ist ja LED-only :joint:

schnasemann schrieb:
Wie versorgst Du Dein Reaktivlicht? Die Platine sollte so winzig klein werden können, dass man die auch professionell machen lassen kann, da bekommt man auf einen dm² genug drauf.
Grüße, schnasemann

Bislang wird die Testvariante nur mit 2 AA-Zellen versorgt. Weiß nicht ob sichs wirklich lohnt dafür professionell Platinen machen zu lassen. Evtl, nen SMD-Tiny und passende LED direkt auf ne Knopfzelle löten.. :D :kopfwand:
 

tomcat3

Geonewbie
thomas_st schrieb:
stonewood schrieb:
[...] 3xAAAA bewährt. 9V-Blockbatterie demontieren, die 6 AAAA-Batterien geeignet auftrennen. 3 davon passen ohne weiteres in einen kleinen PETling.
Nur zur Ergänzung: leider sind nicht alle 9V-Blöcke aus AAAA-Zellen aufgebaut. Meine Erfahrung, wie auch die wiki sagen: wenn die Bezeichnung des 9V-Blocks 6LR61 lautet, sind AAAA-Zellen drin, wenn sie 6F22 lautet, sind 6 Flachzellen drin. Ich will aber nicht meine Hand ins Feuer legen, dass das immer so ist.

Die 9V-Blöcke von Energizer, wie auch die von Aldi (Süd) sind aus AAAA-Blöcken aufgebaut.

HTH,
Thomas(_st)

Hallo zusammen, nur zur Info:
Habe gerade ein 9V-Block mit der Bezeichnung 6LR61 von Aldi (Nord) zerlegt. Hier waren nur Flachzellen drin. :kopfwand:
Zum Glück gibt es die LR61 auch so beim kleinen R.
Gruß tomcat3
 

schnasemann

Geocacher
@gomerffm
Verfüge leider nur über asm oder C-Programmierkenntnisse, bin in den AVRs aber gerade nicht so doll drin.
1. ich weiß nicht, was Bascom macht, wenn Du Start oder Stop ADC schreibst. Mir geht es beim Stromsparen um den ADEN (ADC Enable).
2. wie man in Bascom schreibt, dass der ADC den Tiny aufwecken soll, weiß ich nicht, spart aber sicherlich auch nochmal was.

3. Was das "Entladen" der LED anbelangt. Zieht der AD-Wandler wirklich so wenig Strom, dass man die LED entladen muss? Ansonsten würde das nur dazu führen, dass man einen "natürlichen" Filter hat, weil die Spannung so langsamer abnimmt. Tut also im Tagesmodus nicht weh, interessiert nur, wenn man das Geblinke einer Tala in der Nacht erkennen möchte.
Grüße,
schnasemann
 

gomerffm

Geocacher
schnasemann schrieb:
@gomerffm
Verfüge leider nur über asm oder C-Programmierkenntnisse, bin in den AVRs aber gerade nicht so doll drin.
1. ich weiß nicht, was Bascom macht, wenn Du Start oder Stop ADC schreibst. Mir geht es beim Stromsparen um den ADEN (ADC Enable).
Bascom wird natürlich sicher auch nur die entsprechenden Register beschreiben. Das kann man zwar auch direkt in Bascom eingeben weiß aber nicht ob das großen Effekt hat.
schnasemann schrieb:
2. wie man in Bascom schreibt, dass der ADC den Tiny aufwecken soll, weiß ich nicht, spart aber sicherlich auch nochmal was.
Der Tiny kann entweder durch einen Interrrupt getriggert eine ADC-Konversion starten, oder nach erfolgter Konversion einen Interrupt auslösen. Einen Interrupt etwa nach dem Motto: Tiny schläft, ADC ist aus, am Eingang des ADC passiert "irgendwas", Tiny wacht auf und führt eine Konversion durch, wäre schön, gibts aber wohl nicht. :???:
Das, was bei der ganzen Sache Strom zieht, ist der meßbereite ADC.
schnasemann schrieb:
3. Was das "Entladen" der LED anbelangt. Zieht der AD-Wandler wirklich so wenig Strom, dass man die LED entladen muss?
Ja, sonst geht das Teil nach einmaliger Auslösung ganz lange in den Tagmodus. Kann allenfalls einen 10MOhm Widerstand nach Masse schalten.
Aber soll ja LED-only sein. :joint:
Grüße
 

stonewood

Geowizard
gomerffm schrieb:
Der Tiny kann entweder durch einen Interrrupt getriggert eine ADC-Konversion starten, oder nach erfolgter Konversion einen Interrupt auslösen.
Für die ADC-Abfrage wär's aber vielleicht auch sinnvoll den Rest des Tiny schlafenzulegen. Schließlich macht getadc folgendes:
- startet den ADC
- wartet bis der fertig wird (und verbrät währenddessen munter Strom), das sind 13 bzw. 25 ADC-clock cycles (vermutlich auf 128 Khz?)
- weist erst dann den Wert der Variablen zu
Aber wie man das unter Bascom hinkriegt :???: Wahrscheinlich muß man dann den ADC von Hand bedienen, und kann nicht getadc() benutzen.
 

thomas_st

Geowizard
gomerffm schrieb:
Damit sinds dann mit 3V Versorgungsspannung bei Tag ca. 5µA und bei Nacht so ungefähr etwas über 30µA.
Schon deutlich besser - aber in der Nacht immer noch etwas hoch. Tag ist sehr gut.

gomerffm schrieb:
Die 10ms durch eine Watchdog gesteuerte Zeit zu ersetzen und dann den ADC zu starten hat bei mir leider auch nicht funktioniert :???:
Schade, das wäre jetzt mein Vorschlag gewesen. Was funktioniert da nicht?

schnasemann schrieb:
Verfüge leider nur über asm oder C-Programmierkenntnisse, bin in den AVRs aber gerade nicht so doll drin.
Was heißt hier "leider" - ich freue mich über jeden C-Mitstreiter :D

schnasemann schrieb:
1. ich weiß nicht, was Bascom macht, wenn Du Start oder Stop ADC schreibst. Mir geht es beim Stromsparen um den ADEN (ADC Enable).
Das weiß ich auch nicht - aber ich hätte mal darauf getippt das "Stop ADC" == "ADCSRA &= ~ADEN;" ist.

schnasemann schrieb:
2. wie man in Bascom schreibt, dass der ADC den Tiny aufwecken soll, weiß ich nicht, spart aber sicherlich auch nochmal was.
Das Problem ist IMO grundsätzlicher: hat eigentlich jemand schonmal eine ISR in Bascom realisiert? Ich kann mich jetzt an keine erinnern.

schnasemann schrieb:
3. Was das "Entladen" der LED anbelangt. Zieht der AD-Wandler wirklich so wenig Strom, dass man die LED entladen muss?
Laut Datenblatt ist der Eingangswiderstand des ADCs bei 100MOhm. Was haben die LEDs denn ungefähr für eine Kapazität?

gomerffm schrieb:
Das, was bei der ganzen Sache Strom zieht, ist der meßbereite ADC.
Und das nicht zu knapp, wie wir im Nachbarthread zum CLKPR-Register und der Stromaufnahme festgestellt haben.

stonewood schrieb:
- wartet bis der fertig wird (und verbrät währenddessen munter Strom), das sind 13 bzw. 25 ADC-clock cycles (vermutlich auf 128 Khz?)
ADC-Clock ist mindestens Main-Clock / 2 (einen 1:1 Vorteiler gibt es nicht). Bei höherem Prozessortakt wird das Verhältnis noch größere sein, da der ADC-Takt im Bereich von 50 bis 200kHz gehalten werden soll.

Viele Grüße,
Thomas(_st)
 

thomas_st

Geowizard
tomcat3 schrieb:
Habe gerade ein 9V-Block mit der Bezeichnung 6LR61 von Aldi (Nord) zerlegt. Hier waren nur Flachzellen drin. :kopfwand:
Na geil. Kann man sich darauf auch nicht verlassen. Wenn Aldi (Süd) keinen neuen Lieferanten hat, sollte es dort noch AAAA-Zellen im 9V-Block geben (vor ein paar Monaten war es noch so).

Viele Grüße,
Thomas(_st)
 

schnasemann

Geocacher
was auch noch weiterhilft: Brown Out Erkennung aus (hab nicht nachgeschaut), ADC und Referenz beim Schlafen aus.
Wenns wirklich LED-only sein soll, klappt mein Vorschlag mit zweitem Pin samt Vorwiderstand zum Stromsparen nicht. Aber auch so kommt man auf Laufzeiten von ~1Jahr (worst case), wenn man einen sezierten 9V-Block (AAAA) nimmt. Das reicht wohl aus. Werde mal meine ersten Versuche starten, wenn ich bei Tante R bestelle.
 

Dr.Schmock

Geocacher
Die ADC-Frequenz bei 50-200kHz zu halten macht eigentlich keinen Sinn für das RL.
Wenn man auf 500kHz erhöht, lässt sich einiges an Strom sparen und es "kostet" lediglich ein halbes Bit an Genauigkeit (DB: Electrical Characteristics).
 

thomas_st

Geowizard
Dr.Schmock schrieb:
Die ADC-Frequenz bei 50-200kHz zu halten macht eigentlich keinen Sinn für das RL.
Wenn man auf 500kHz erhöht, lässt sich einiges an Strom sparen und es "kostet" lediglich ein halbes Bit an Genauigkeit (DB: Electrical Characteristics).
Wobei wir dann aber schon wieder bei Frequenzen des Haupttaktes von 1MHz und höher wären. ... und das spart auch nicht unerheblich, sofern man den Tiny zwischen zeitig schlafen legt.

Wo Du den zusätzlichen Fehler von einem halben Bit bei Takten > 200kHz gefunden hast, weiß ich jetzt aber nicht - ich finde nur: "If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be higher than 200 kHz to get a higher sample rate." und bei Electrical Characteristics/ADC Characteristics: Clock Frequency 50 ... 1000 kHz.

Viele Grüße,
Thomas(_st)
 

schnasemann

Geocacher
Wenn ich Dr. Schmock und thomas_st richtig verstehe, kann man noch das letzte Quentchen rauskitzeln, wenn folgende Sachen umgesetzt werden:
1. AD Wandler so schnell wie möglich machen, weil die Conversion Zeit auch direkt in den Stromverbrauch der Referenz eingeht.
2. Watchdog verwenden, um die Zeit des Samplens nicht stur Daumen drehen zu müssen.
3. auch beim Blinken zwischendrin den Watchdog als Zeitgeber verwenden, zumindest in der Pause zwischen den "Anzahlen".
4. beim Watchdog-Reset erwarten auf jeden Fall Referenz aus und ADC aus.

Warum hat ein einfaches Einfügen der Watchdog-Routine zwischen Entladen und Spannungsmessung nicht zum Erfolg geführt?
schnasemann
 

thomas_st

Geowizard
schnasemann schrieb:
1. AD Wandler so schnell wie möglich machen, weil die Conversion Zeit auch direkt in den Stromverbrauch der Referenz eingeht.
Nicht so schnell wie möglich - bei 1MHz ist Schluss. Leidlich musste ich das mal bei einem mit 2MHz laufenden ADC erleben, der eher Zufalls- als Messwerte lieferte.

Ich weiß aber nicht, inwiefern man bei Bascom einen Einfluss auf den ADC-Takt hat, oder ob das nicht getadc intern alles einstellt.

Den Rest sehe ich auch so. Der WD hat eben den Vorteil, dass er einen komplett schlafenden Tiny wecken kann. Das können andere Timer nicht.

schnasemann schrieb:
Warum hat ein einfaches Einfügen der Watchdog-Routine zwischen Entladen und Spannungsmessung nicht zum Erfolg geführt?
Würde mich auch interessieren - bzw. "was hat nicht funktioniert".

Viele Grüße,
Thomas(_st)
 
Oben