• 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

Lamima

Geocacher
Ich hab jetzt gerade mal die Variante mit WD-Abschaltung aus dem Kochbuch in den Tiny geschrieben, komischerweise blinkt die led nur 7mal...und nicht 10mal. Woran könnte das denn liegen?
 

Teddy-Teufel

Geoguru
Lamima schrieb:
Ich hab jetzt gerade mal die Variante mit WD-Abschaltung aus dem Kochbuch in den Tiny geschrieben, komischerweise blinkt die led nur 7mal...und nicht 10mal. Woran könnte das denn liegen?
Ich gehe mal davon aus, daß Du das Kochbuch mit Stand vom 20.09.2009 hast. Dort steht:
Code:
Blinken:
For A = 1 To 10
Portb.3 = 1
Reset Watchdog
Powerdown
Portb.3 = 0
Reset Watchdog
Powerdown
Next A
Return
Mit A stellst Du die Anzahl der Impulse ein, wenn dort 10 steht, müßte er auch zehnmal blinken. Die andere Seite bei den Codes ist es, daß man immer etwas individuell einstellen muß, damit es so funzt wie man es gerade wünscht. Es sind halt nur Beispiele.
 

Lamima

Geocacher
Genau die hab ich genommen, bei mir steht auch 10 im Code drin, ich habe nichts verändert...deswegen wunderte ich mich ja
 

Teddy-Teufel

Geoguru
Lamima schrieb:
Genau die hab ich genommen, bei mir steht auch 10 im Code drin, ich habe nichts verändert...deswegen wunderte ich mich ja
Wir sind uns aber auch einig darüber, daß das Programm für die alte LED-Only-Variante ist? Ich habe noch von alten Caches die alte Variante aber jetzt baue ich nur noch die Neue und da passen nicht die alten Programme aus dem Kochbuch.
 

Teddy-Teufel

Geoguru
Lamima schrieb:
Alte Led-only? neue led-only? äh...ich hab sowohl den "schaltplan" als auch den code aus dem kochbuch....
Ja Kack aber auch :eek:ps: , dann sieh mal erst nochmal hier nach. Bei der "LED-Only-Old" befindet sich die LED mit Kathode an PIN3 und über einen Widerstand an Pin2. Auch als "LED-only Version digital" bezeichnet. Auf diese Variante bezieht sich auch das Kochbuch.
"LED-Only-New" in der Wiki gleich "LED-only Version analog" ist für mich z. Zeit die Aktuelle, dort liegt die LED ohne Widerstand zwischen PIN3 und PIN4/GND. Für diese Schaltung sind dann auch neue Programme (Siehe Wiki) erforderlich.
Tut mir jetzt echt leid.
 

Lamima

Geocacher
:schockiert: oh..... jetzt weiß ich auch warum meine schaltung hier unreproduzierbar rumblinkt wie sie gerne mag... ich hab den aufbau der analogen (ohne widerstand) mit den codes aus dem kochbuch gepaart...
 

stonewood

Geowizard
Teddy-Teufel schrieb:
Lamima schrieb:
Leider passt das nicht so ganz zusammen.
Mit den Dingern hat es bei mir nie so richtig gut funktioniert und träge sind sie auch. Ich nehme bei der LDR-Variante jetzt immer 4,7M und dazu den SFH 203. Damit ist Dir wahrscheinlich nicht geholfen, weil Du Deinen Widerstand verwenden willst. Was spricht für Dich eigentlich gegen die neue LED-Only-Variante?
Hmm. Einen Versuch wär's wert, ein 905014 tut bei mir ohne Probleme, und ist gefühlt auch noch empfindlicher als ein 906014. Der ist auch niederohmiger.

Was an den Dingern nicht funktionieren soll weiß ich nun wieder nicht, selbst noname-LDRs bei Pollin tun eigentlich.
 

Lamima

Geocacher
So langsam weiß ich warum ich mich jahrelang von den mikrocontrollern fern gehalten hab :motz:
Ich hab nämlich (schon wieder) ein Problem.
Ich hab die Led-only analog mit einer duo-led aufgebaut. Wenn ich die im dunklen resette kann ich sie wunderbar oft antriggern und alles klappt. Mach ich dann aber das Licht länger an (ich simuliere Tag) und dann wieder dunkel bekomm ich keine Reaktion mehr. Auch längeres warten im dunkeln (~10min) und dann wieder antriggern bringt nichts. Dunkel bedeutet SEHR dunkel, da meine Testdunkelheit durch ein Fotolabor erzeugt wird ;)
Interessant ist noch, dass wenn die schaltung im hellen war sie dort anfängt alle paar sekunden (20-30s geschätzt) einen kurzen Impuls zu blinken, wenn das die kontrollfunktion für tagsüber ist prima. Allerdings macht ads RL das auch weiter in der besagten langen dunkelheit...
Nachfolgend den Code der im Tiny "arbeitet"
' Reaktivlicht mit 2 LED
' Version 8.3.2010
' Led1 an Port 4 (Pin3) gegen Masse
' Led2 an Port 1 (Pin6) gegen Masse



$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 Anzahl1 As Byte
Dim Anzahl2 As Byte
Dim Soft1 As Byte
Dim Soft2 As Byte
Dim Aktuell As Byte
Dim Zwisum As Byte
Dim Soft3 As Word
Dim Runde As Byte
Const Dunkelwert = 18 ' Wert, ab dem Nacht erkannt wird
Const Hub = 10
Runde = 0




Do

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

Start Adc

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

'Waitus 1500
Wdtcr = &B11010000 'Watchdog auf 16ms einstellen
Reset Watchdog
Powerdown

Config Portb.4 = Input
Portb.4 = 0

cbi adcsra,7 'ADEN = 0

Wdtcr = &B11010000 'Watchdog auf 16ms einstellen
Reset Watchdog
Powerdown

sbi adcsra,7 'ADEN = 1

Wert2 = Getadc(2) 'Spannung der LED messen

Stop Adc

Schwelle = Wert1 + Hub 'Schwelle festlegen, je kleiner desto empfindlicher

If Wert1 < Dunkelwert And Wert2 >= Schwelle Then 'Dunkelschwelle festlegen, je kleiner desto dunkler
Gosub Blitz
End If

If Wert1 >= Dunkelwert And Wert2 >= Dunkelwert Then 'bei Tag oder Dauerlicht Watchdog aktivieren
Runde = Runde + 1
Wdtcr = &B11110001 'Watchdog auf 8s einstellen
Reset Watchdog
Powerdown
If Runde >= 1 Then
Portb.4 = 1
Wdtcr = &B11010000 'Watchdog auf 16ms einstellen
Reset Watchdog
Powerdown
Portb.4 = 0
Runde = 0
End If
End If


Wert1 = Wert2 'Wert2 nach Wert1 verschieben

Loop

Blitz: 'LED1 blinken
Config Portb.4 = Output
Portb.4 = 0
For Anzahl1 = 1 To 10
Portb.4 = 1
Waitms 50
Portb.4 = 0
Waitms 500
Next Anzahl1

For Anzahl2 = 1 To 10 'LED2 blinken
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 500
Next Anzahl2
Return


End
 

stonewood

Geowizard
Lamima schrieb:
So langsam weiß ich warum ich mich jahrelang von den mikrocontrollern fern gehalten hab :motz:
Ich hab nämlich (schon wieder) ein Problem.
Ich hab die Led-only analog mit einer duo-led aufgebaut.
duo-LED? Sowas wie z.B. rot/grün in einem Gehäuse. mit gemeinsamer Kathode?

Die LED-Only varianten sind alle sehr von der verwendeten LED abhängig. Und bei duo-LEDs könnte es sogar sein daß der eine Pin den anderen beeinflußt. Wird der also immer fein säuberlich auch als 'Eingang' definiert, oder wird der irgendwann mal als Ausgang umdefiniert und stört damit die Lichtmessung auf dem anderen Pin?
 

Lamima

Geocacher
Ja, Rot/Grün in einem Gehäuse mit jeweils einzelner Anode und gemeinsamer Kathode.

Mittlerweile hab ich dsa RL auch zum laufen bekommen. Anscheinend war mein Dunkelwert von 18 so gewählt, dass es für das RL nie Nacht wurde...ich hab ihn dann gestern abend noch geändert (hab gerade den Wert vergessen) und danach lief es. Somit kann ich sagen, dass die Duo-led wunderbar funktioniert...
 

thomas_st

Geowizard
PMT schrieb:
Code:
// Morsecode für "N 50 12 345"

const BYTE bSequenz1[] PROGMEM = {    0xe8, 0x0a, 0xa8, 0xee, 

                           0xee, 0xe0, 0x2e, 0xee, 

                           0xe2, 0xbb, 0xb8, 0x0a, 

                           0xbb, 0x8a, 0xae, 0x2a, 

                           0xa0, 0x00, 0x00, 0x00 };

kann mir jemand sagen wie ich aus diesen angaben den text lesen bzw ändern kann und eventuell die leerzeit zwischen den einzelnen blinksignalen ändern kann?
Mahlzeit - ist zwar schon sehr alt das Posting, aber vielleicht hilft es doch noch jemanden. Das Ganze läuft folgendermaßen:
Code:
"N 50" im Morsecode sind 
xxx x   x x x x x   xxx xxx xxx xxx xxx ...

das wird jetzt in Achtergruppen binär codiert "x" = 1 = LED an / " " = 0 = LED aus
Byte 0  |Byte 1  |Byte 2  |Byte 3  |Byte 4  |...
xxx x   |x x x x |x   xxx |xxx xxx |xxx xxx |...
  0xe8  |  0xaa  |  0x8e  |  0xee  |  0xee  |...

Achso, nur zur Sicherheit: die vorgestellte 0x symbolisiert in C eine hexadezimale Zahl
Ich weiß, es ist nicht so komfortabel, aber bisher bin ich damit ganz gut gefahren.

HTH,
Thomas(_st) - back again ;)
 

thomas_st

Geowizard
huzzel schrieb:
ich hab mal wieder eine Versuchsreihe mit Reaktivlichten gemacht.
Schöne Messungen - ich hatte zwar noch nicht die Zeit sie im Detail durchzusehen, aber sieht interessant aus. Sehe ich das richtig (im Zusammenhang mit Deiner späteren Korrektur der Beschriftungsreihenfolge), dass die LDR-Variante für LED-Lampen weiterhin besser geeignet ist?

huzzel schrieb:
- Die Leitungen zu der gelben und grünen LED verlaufen über einen Schalter und wirken so wohl auch recht als Antenne
Die Leitungen zu den Sensor-LEDs würde ich so kurz wie nur möglich machen - vielleicht hilft es.

Viele Grüße,
Thomas(_st)
 

thomas_st

Geowizard
Lamima schrieb:
Leider passt das nicht so ganz zusammen. Der von Reichelt ist um den Faktor 3 hochohmiger in allen Fällen
??? Nach meinen Erfahrungen handelt es sich bei dem LDR A 9060 von Conrad um den gleichen der bei Reichelt unter A 906014 läuft - ich hatte zunächst bei Conrad gekauft und später dann bei Reichelt. Ich konnte keine Unterschiede feststellen.

Viele Grüße,
Thomas(_st)
 

scout-D

Geocacher
Hi,

vor ca. einem Jahr hatte ich ein PET- RL in einem Cache eingesetzt, der mittlerweile archiviert ist. Damals hatte ich die Hardware laut Kochbuch zusammengelötet und ein Bekannter programmierte mir den ATtiny mit einem leicht veränderten Blink- Programm.

Mittlerweile hab' ich den Programmieradapter ausgegraben, einen alten PC mit Bascom präpariert und auch erfolgreich die Programme aus dem Kochbuch testweise auf den Chip gebracht.

Da meine Programmier- Kenntnisse allerdings nur rudimentär sind, komme ich an einer Stelle nicht weiter:

Beim Programm
"6.1.5 Verbesserter nachtaktiver Blinker mit TeachIn-Modus mit Lauflängenspeicherung"
ist mir nicht klar, wann oder wie sich das Ende des "Teach- In- Modus" aktiviert.
Im Kochbuch steht:
"3. LED blinkt dreimal kurz. Dies kennzeichnet das Ende der TeachIn-Phase."
Dies tut sie bei mir nicht.

Muss eine gewisse Zeit nach dem "Einblinken" Dunkelheit herrschen?

Weiter unten steht:
"Auf diese Weise ist eine Gesamtspeicherdauer von bis zu 20 Minuten möglich."
Ich muss doch nicht 20 Minuten warten, oder :)?

Es ist doch so, dass beim Trennen der Versorgungsspannung der Lernmodus nach Anlegen der Spannung wieder neu startet, oder bleibt die alte Sequenz auch erhalten?


Vielleicht könnt Ihr mir kurz helfen?
Jens
 

Teddy-Teufel

Geoguru
Hi, ich würde Dir empfehlen, Du liest mal hier und baust dann ein RL LED-Only-analog. Das hat den Vorteil, daß das Ganze nicht so empfindlich gegenüber Feuchtigkeit an der LED ist und Du sozusagen gleich auf dem neuestenStand bist. Das Einlernen von Sequenzen funktioniert mittels "Schnasemann-Variante" problemlos. Du mußt allerdings beachten, daß die Programme im Kochbuch nicht für die neue Variante ausgerichtet sind. Ich habe auch noch alte LED-Only-RL's liegen aber werde diese wohl so nach und nach umbauen. Das Kochbuch selbst enthält noch nicht diese Variante.
 

scout-D

Geocacher
Hi, ich würde Dir empfehlen, Du liest mal hier und baust dann ein RL LED-Only-analog.

Teilweise hatte ich mir das Wiki schon durchgelesen und auch verstanden, dass das alte RL nicht mit den neuen Progs kompatibel ist.
Hatte mir nur gedacht, dass ich die alten Dinger ohne Umlöten mit der alten Software noch gebrauchen könnte.
Aber ist halt so wie überall: Wenn man zu lange wartet wird der alte Kram nicht mehr "supportet" ;-)

Mal sehen, was ich da auf den Platinchen so ändern muss ...

Danke schon mal.

Jens
 

Teddy-Teufel

Geoguru
scout-D schrieb:
Aber ist halt so wie überall: Wenn man zu lange wartet wird der alte Kram nicht mehr "supportet" ;-)
Mal sehen, was ich da auf den Platinchen so ändern muss ...
Danke schon mal.
Jens
Hi Jens!
Du brauchst nur den Widerstand rausnehmen und die LED andersherum, als bei der alten Variante zwischen Pin3 und Pin 4 einlöten.
Bei den Progarmmen aus dem Kochbuch brauchst Du nichts ändern, wenn Du die alte Variante verwenden willst, vorausgesetzt Du hast die letzte Ausgabe des Buches.
Du hast aber Recht, ich kann mich auch nur schwer von meinen alten RL's trennen. Das ist eigentlich Unsinn aber sie funktionieren ja noch. :^^:

Viel Erfolg
 

scout-D

Geocacher
Hallo Leute,

vielleicht kann mir doch jemand das Programm (mit Lauflängenspeicherung s.o.) aus dem alten Kochbuch erläutern.
Habe gerade den Programmieradapter vom Wohnzimmertisch genommen und bemerkt, dass die LED bei Lichteinfall anfängt zu leuchten.
Vor ein paar Stunden hatte ich die Batterien eingelegt, worauf das 10- malige Blinken als Einleitung des Lernmodus begann und hatte den RL- Programmieradapter bei eingeschalteter Wohnzimmerbeleuchtung liegen lassen.
Wie es laut Programm sein sollte, hat er die Dauer- Beleuchtung abgespeichert.

Wie und wann beendet sich der Teach-In- Modus?

Jens
 

Teddy-Teufel

Geoguru
scout-D schrieb:
... Wie und wann beendet sich der Teach-In- Modus?
Jens
Guckst Du hier
Code:
For A = 1 To 3
Portb.3 = 1
Waitms 50                                                   '3 x kurz blinken (Teach-In-Ende)
Portb.3 = 0

Wenn man bei dieser Variante eine Sequenz eingeben will, muß man das im Dunkeln machen, sonst werden Die Blinksignale nicht richtig erkannt.
 
Oben