• 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

derhexer

Geocacher
Das beruhigt mich dann, denn genau da hatte ich meine Bedenken...

Die Extra-Uhr und das "Parametrieren über den Monitor" mache ich, da ich Specialcaches machen möchte, die nur ganz selten im Jahr aktiv werden. D.h. normalerweise melden die nur Koords und Hint für ihren Standard NightCache und eben zu bestimmten Tagen Koords für einen ganz besonderen.
Im "besonderen" FinalCache leg ich dann ab und an, einen aufgebauten GeoMorser rein. Den kann der Finder einheimsen und dann selber über seinen Windows-Rechner parametrieren, ohne das er eben sonst eine "besondere" Ahnung hat...
 

KrasserMann

Geocacher
Sooo, ich habe nun mal das Reaktivlich mit LDR nachgebaut und
versuche am Wochenende das mal im Wald zu verbauen.

Im Keller funktioniert es schonmal bestens.

Der größte Vorteil des LDR ist das er nicht so einen engen öffnungswinkel hat. Und somit auch nicht so genau getroffen werden muss.

:)

Ich werd berichten.

Martin
 

derhexer

Geocacher
Der Fotowiderstand arbeitet wirklich prima, deshalb werde ich meine 3. Version mit einem Fototransistor, für die Parametrierung über Monitorflashes, und einem Fotowiderstand, als Nachtempfänger, ausrüsten.

Der Fototransistor arbeitet zwar auch nachts super und kann saubere Low-Level Interrupts auslösen, aber sein Sichtfeld ist sehr eng und die Entfernung ab der er dann sehr gut arbeitet liegt unter 3 Meter. Das könnte man zwar mit einer Darlington-Schaltung wesentlich verbessern, aber da ist der Fotowiderstand für 43 Cent dann doch billiger und einfachst zu handhaben.
 

Windi

Geoguru
Hab gestern eine Lieferung von über 40 LDRs verschiedenster Bauart bekommen. Da sind Riesenoschis mit 18 mm Durchmesser dabei.
Muss mal ein paar Versuche machen was ich damit für eine Reichweite hinbekomme.
 

derhexer

Geocacher
Du Windi du!
40 verschiedene LDR's ! Das ist ja allerbestes Material!

Glückwunsch für soviele "Lichtmesser"

heribert
 

BlackyVieh

Geocacher
Weil wir grade beim Ramschversand sind:

unter 810 038 gibt es ein ATMEL Evaluation Board!

Ist das brauchbar?

P.S: Es gibt auch günstige Selen-Gleichrichter. Die könnte man in Caches tun!
 

Windi

Geoguru
BlackyVieh schrieb:
unter 810 038 gibt es ein ATMEL Evaluation Board!

Ist das brauchbar?
Ich würd mal sagen für den Preis ist das o.k.
Ich werd mir mal bei Pollin ein paar von diesen 10er-Packs bestellen.
Bei den 40 Stück die ich bei Ebay erstanden habe ist viel Schrott dabei.
Einige sind extrem niederohmig bei Dunkelheit, einige funktionieren gar nicht.
Hab heute fast den ganzen Tag mit Experimenten mit den LDRs verbracht und dabei festgestellt dass mein aktuelles Programm gar nicht zum Schaltplan passt da ich LDR und den Widerstand des Spannungsteilers vertauscht habe bzw. dass man im Programm auf High und nicht auf Low abfragen muss.
Ich ändere dass noch ein paar Seiten weiter vorne.
 

KrasserMann

Geocacher
@Windi

Wie kann die schaltung/software parametrisiert werden?

Ich habe das gefühl das meine Version wirklich nur bei absoluter dunkelheit geht, fürchte ein Vollmond dürfte die schon außer gefecht setzten.

EDIT:

Ich hab gerad von dem Programmfehler gelesen, interessanterweise geht das Reaktivlivht wohl auch mit dem Fehler im Programm.
Werd die berichtigte Version mal einspielen, vielleicht geht´s dann ja besser.



Und wie genau wirkt sich der wiederstandswert im Spannungsteiler aus?

Gruß Martin
 

Windi

Geoguru
"Parametrieren" kann man die Schaltung eigentlich nur indem man den Widerstand des Spannungsteilers verkleinert. Zum Experimentieren bzw. Einstellen der Lichtschwelle empfiehlt sich ein Poti damit man nicht ständig Widerstände umstecken oder gar umlöten muss.

Die Luxusvariante wäre natürlich den Spannungsabfall per AD-Wandler einzulesen und damit die Empfindlichkeit automatisch an die Umgebungshelligkeit (Vollmond) anzupassen. Damit zieht die Schaltung aber vermutlich mehr Strom. Wenn ich Zeit habe spiele ich mich mal damit.

Zum Einjustieren verwende ich ein kleines Testprogramm. Wenn hell erkannt wird leuchtet die LED. Bei Dunkel geht sie aus.
 

KrasserMann

Geocacher
Ok, das erklärt auch warum meine Schaltung etwas "blind" ist.

Den Wiederstand hab ich fest mit 4,7M genommen und über Justieren hab ich noch nichtmal nachgedacht :)

Also nochmal etwas gescheiter bauen. Werd das Poti wohl fest in der Schaltung vorsehen, soviel kosten die ja auch nicht.

Kabellänge zum LDR sollte ja recht unkritisch sein oder? Brauch so 6 meter.

Gruß Martin
 

orotl

Geocacher
KrasserMann schrieb:
Also nochmal etwas gescheiter bauen. Werd das Poti wohl fest in der Schaltung vorsehen, soviel kosten die ja auch nicht.
Genau weil sie nix kosten würd ich kein Poti bei so einer Applikation einbauen.
Mit anderen Worten: du musst damit rechnen dass die Dinger unstabil werden, und durch die Temperaturschwankungen keine konstanten Werte haben.
Daher: mit Poti einjustieren, danach Widerstandswert messen und einen fixen Widerstand mit einem Näherungswert verbauen.

orotl
 

Windi

Geoguru
Gestern bei Vollmond etwas experimentiert.
Die Schaltung ist tatsächlich so empfindlich dass sie den Vollmond als Tag erkennt. Da hilft es nur die Empfindlichkeit zu reduzieren oder die Schaltung so zu montieren dass kein direktes (Mond-)licht auf den LDR scheinen kann.
 

KrasserMann

Geocacher
Hevorragend, jetzt wo ich mal einen gescheiten Abgleich des "Spannungsteilers" gemacht habe funktioniert die schaltung auch
auf ca. 150 Meter mit meiner Mag Charger noch ziemlich gut :D

Vielen Dank, heut Abend wird sie verbaut.

Und dann kann ich wohl endlich meinen Nachtcache Public machen :D

Gruß Martin
 

Windi

Geoguru
Ich bin schon wieder am "Entwickeln".
Und zwar bastel ich gerade an einem Programm das den LDR-Wert per AD-Wandler einliest.
Damit hat man dann nicht wie vorher nur die Schaltschwelle zwischen Dunkel und Hell sondern stufenlose Werte. Das Programm merkt sich so die Umgebungshelligkeit und reagiert z.B. nur wenn sich diese (durch Anleuchten) schlagartig verändert. Somit funktioniert das ganze auch noch bei Vollmond. Auch die Reichweite sollte sich dadurch nochmals erhöhen.

Das Grundprogramm steht schon, es fehlt nur noch am nötigen Feinschliff.
Wenn das Programm fertig ist stelle ich es hier wieder ein.
 

Windi

Geoguru
Starglider schrieb:
Wie wirkt sich die Nutzung des Wanders auf den Stromverbrauch aus?
Wird mit Sicherheit höher. Hab es aber noch nicht gemessen da ich die Experimente derzeit mit meinem Mega8-Experimentierboard durchführe.
 

Windi

Geoguru
Es ist vollbracht.

Die neue Version des Reaktivlichts ist fertig. Die Erfassung der Helligkeit findet jetzt über den A/D-Wandler statt. Das Programm erfasst ständig die Umgebungshelligkeit und reagiert nur wenn es schlagartig heller wird. Es gibt jetzt nicht mehr wie früher eine bestimmte Helligkeitsschwelle bei der das Programm schaltet sondern es reagiert nur auf die Helligkeitsdifferenz zwischen 2 Meßzyklen.
Damit dürfte auch der Einsatz bei Vollmond kein Problem mehr sein (muss aber noch geteset werden).
Natürlich ist das Programm (durch Einsatz des Powerdown-Modes) wieder auf minimalen Energieverbrauch getrimmt.
Ich habe heute das Teil in freier Natur im Testeinsatz gehabt. Mit meiner Maglite 5D konnte ich die Schaltung ungelogen aus 650 Metern Entfernung problemlos antriggern.
Leider "erkauft" man sich diesen Luxus bedingt durch den Einsatz des A/D-Wandlers mit einer erhöhten Stromaufnahme von ca. 17 µA im Nachtbetrieb. Ich habe das Programm noch mit einer Tagabschaltung versehen. Während der Tagabschaltung beträgt die Stromaufnahme nur noch 5 µA. Das Programm gibt bei Tagbetrieb alle 60 Sekunden einen kurzen Impuls an die Leuchtdiode. Dies dient der Funktionskontrolle oder dass die Schaltung bei Fremdlicht noch als Blinker funktioniert. Das kann man natürlich auch weglassen.
Die Schaltung ist minimal verändert. Ich habe den Spannungsteiler jetzt direkt angeschlossen und takte ihn nicht mehr. Er ist so hochohmig dass die Umschaltvorgänge des IC-Ausgangs wahrscheinlich mehr Strom benötigen als ein dauerversorgter Spannungsteiler.

Hier der aktuelle Schaltplan:



Und hier das aktuelle Programm:

Code:
'============================================================
'
' ********************************************************
' ***                                                  ***
' ***    Tiny-Reaktivlicht mit LDR und A/D-Wandler     ***
' *** mit Watchdog-Energiesparmodus und Tagabschaltung ***
' ***                                                  ***
' ***      erstellt von Windi für www.geoclub.de       ***
' ***                   15.10.2006                     ***
' ***                                                  ***
' ********************************************************
'
' µC: ATtiny13V
' +Ub: 3,00 V
' I: 17 µA im Leerlauf (Nachtbetrieb)
' I: 5 µA bei Tagabschaltung
' Reichweite: 650 m mit Maglite 5D
'
'============================================================

$regfile = "ATtiny13.DAT"
$crystal = 16000                                            'Frequenz des internen Oszillators

$hwstack = 28                                               'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen


Config Adc = Single , Prescaler = Auto
Config Portb = &B00001000                                   'Pinb.3 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = 0                                                   'Ausgänge auf Low setzen
Stop Ac                                                     'Analog-Komparator abschalten, um Strom zu sparen

Wdtcr = &B11010011                                          'Watchdog definieren: 0.125 Sekunden, Interrupt auslösen, kein Reset
Enable Interrupts                                           'Interrupts freigeben

Const Schwelle = 50                                         'je größer der Schwellwert, desto unempfindlicher
Const Tagschwelle = 800                                     'Schwellwert für Schlafmodus
Const Zwangsimpuls = 8                                      'LED-Impuls tagsüber alle X Schlafyklen (á ca. 8 Sekunden)

Dim A As Byte                                               'Variablen definieren
Dim Tagzaehler As Byte
Dim Schlafzaehler As Byte
Dim Ldr As Integer                                          '0 = Dunkel, 1023 = Hell
Dim Alt As Integer
Dim Merker As Integer

Do
Reset Watchdog
Powerdown                                                   'prozessor bremsen da sonst lichtänderung nicht erkannt wird
Start Adc                                                   'A/D-Wandler starten
Ldr = Getadc(2)                                             'Helligkeitswert einlesen
Stop Adc                                                    'A/D-Wandler zum Stromsparen wieder stoppen
Merker = Ldr - Alt                                          'Unterschied zwischen letzter und aktueller Messung ermitteln
Alt = Ldr                                                   'letzten LDR-Wert sichern
If Merker > Schwelle Then Gosub Blinken                     'Bei großer Änderung Dunkel->Hell: Blinken
If Ldr > Tagschwelle Then                                   'prüfen ob helligkeit über tagschwelle liegt
   If Tagzaehler < 255 Then                                 'int-variable geht nur bis 255
      Tagzaehler = Tagzaehler + 1
   End If
Else
   Tagzaehler = 0                                           'wenn wieder dunkel tagzähler löschen
End If

If Tagzaehler > 200 Then Gosub Pause                        'wenn mehr als x zyklen hell dann schlafmodus

Loop


Blinken:                                                    'LED blinken lassen
For A = 0 To 10
  Portb.3 = 1
  Reset Watchdog
  Powerdown
  Portb.3 = 0
  Reset Watchdog
  Powerdown
Next A
Alt = 1023                                                  'Doppelauslösung verhindern
Return


Pause:
Wdtcr = &B11110001                                          'Watchdog auf 8 Sekunden stellen
Reset Watchdog
Powerdown
Wdtcr = &B11010011                                          'Watchdog wieder auf 0,125 Sekunden zurückstellen
Schlafzaehler = Schlafzaehler + 1                           'merken wie oft Schlafmodus durchlaufen wurde
If Schlafzaehler = Zwangsimpuls Then                        'als Funktionskontrolle tagsüber LED auslösen
   Portb.3 = 1
   Reset Watchdog
   Powerdown
   Portb.3 = 0
   Schlafzaehler = 0
End If
Return


End


Viel Spaß mit dem Long-Distance-Reaktivlicht

Windi
 

KrasserMann

Geocacher
Seeeehr cool, dann muss ich wohl nochmal mit nem Lötkolben in den Wald.

Oder reicht es den PIN5 vom Amtel Programmseitig auf dauer high zu setzen?

Dann müsste ich nur den chip tauschen.

Werd´s testen.

Gruß Martin
 
Oben