• 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

huzzel

Geowizard
Teddy-Teufel schrieb:
Uns kann keiner erzählen, daß er in 400m Entfernung noch eine LED blitzen sieht, geschweige denn einen Blitzer rein zufällig auslösen kann.
Wenn Du mal bei mir in der Nähe bist, können wir es uns gerne anschauen: Reaktivlicht auf 850 Meter Entfernung. Löst mit meinen 08/15 Handscheinwerfer 5/10 Watt selbst mit 5 Watt zuverlässig aus. Auch bei Vollmond im Rücken und bei Schnee (Waren die Bedingungen beim Testlauf).
Mit LED-Lampen hat man dabei natürlich keine Chance, steht aber auch so im Listing drin.
Ist aber wie gesagt mit Fototransistor und Schwelle 5. Und es dürft auch die Grenze, des technisch machbaren sein.
Die rote LED erkennt man, wenn es richtig dunkel ist, relativ gut. Man muss sich nur darauf einstellen, dass das Ziel sehr weit weg ist, sonst hat man auch schlechte Karten.
Und bei meinen Strinlampentests habe ich eine 1 Watt LED-Lampe. Die ist aber bei Fototransistoren denkbar ungeeignet (Wellenlänge), bei LDR geht es einigermaßen.
 

A-Towner

Geocacher
Wo ist denn das Kochbuch geblieben? Der Link im ersten Beitrag stimmt nicht mehr. Wäre nett, wenn das mal aktualisiert wird.
:hilfe:
 

Hoshi-MZ

Geonewbie
Hi zusammen!

Bin neu im Forum und habe ein Problem bzw. eine Idee welche definitiv in diesen Thread passt.
Die SuFu habe ich bereits bemüht... erfolglos. Diesen Thread hab ich grob überflogen (sorry, 117 Seiten sind mir zu viel ;) ), das "Kochbuch" habe ich mir schon zu Gemüte geführt (erfolgreich, dickes Danke an dieser Stelle).

Habe einen Reaktiv-Blinker mit Attiny13 gebaut. Die Impuls- und Pausendauer, die Startverzögerung, ect. nach meinen Vorstellungen zu verbiegen ist auch kein Problem.

Wo für mich aber ein Problem aufgekommen ist, ist als ich versucht habe eine Duo-LED (also zwei LEDs verschiedener Farbe mit gemeinsamer Kathode in einem Gehäuse) an den Attiny zu puzzeln. Bin kein großer Programmierer, daher versteh ich auch nicht alle Befehle der Beispielprogramme im Kochbuch.

Mein Ansatz war es den Port 5 freizugeben (bin mir unsicher ob es das linke oder rechte Bit ist, also 00011000) und den Pullup auch wegzunehmen.
Dann hab ich eine weiter Variable (D) als Byte dimensioniert.
Unter der Blink-Schleife für Port 3 hab ich dann eine Blink-Schleife für Port 5 angelegt.

Leider funzt das nicht so wie ich mir das vorgestellt hab. Entweder hab ich was falsch geproggert oder die "zweite" LED an Port 5 versaut die Messung der Kapazität der ersten LED.... oder beides :???: ...zumindest kann man den Blinker so nicht mehr auslösen :kopfwand:

Wofür ich das so bauen möchte... versteht ihr, wenn ihr den in Planung befindlichen Nachtcache evtl. mal suchen werdet ;)

Danke und Grüße

Dennis

P.S: Sollte diese Thematik in diesem Thread doch schon behandelt worden sein bitte ich um Entschuldigung... auf welcher Seite wäre dann noch ganz informativ :D
 

ksbender

Geocacher
Hoshi-MZ schrieb:
P.S: Sollte diese Thematik in diesem Thread doch schon behandelt worden sein bitte ich um Entschuldigung... auf welcher Seite wäre dann noch ganz informativ :D

Schau doch mal hier.
Da gab es einen Beitrag mit Schaltplan für 3 einzelne LED´s mit Helligkeitssensor.
Sollte durch "weglassen" auch einfach auf 2 LED´s anzupassen sein.
Gruß
ksbender
 

Hoshi-MZ

Geonewbie
Hi,

danke für die Antworten. Klar könnte ich das ganze mit LDR aufbauen, aber dann könnte ich auch gleich zwei getrennt LEDs nehmen und die zweite LED "sauber" auf GND ziehen.

Es geht mir ja darum diesen geniale Aufbau mit nur einem "sichtbaren" Bauteil beizubehalten. Hatte nicht vor nen PETling blinken zu lassen, da der Cache nicht im dichtesten Wald sein wir ist die Tarnung zu optimieren. Und wenn dann nur ein konfetti-großer Punkt frei liegen muß wären das halt optimal.

Falls jemand also noch eine zündende Idee wäre super, ansonsten werde ich wohl auf getrennte LEDs oder LDR umdenken müssen.

Grüße Dennis
 

Windi

Geoguru
Hast Du schon mal probiert ob die Duo-LED als Sensor überhaupt geeignet ist?
Mit manchen LEDs geht es gut, mit manchen nicht.

Nimm doch einfach mal die "normale" Programmversion her und baue dort Deine Duo-LED ein. Den dritten Pin der nicht benötigten LED dabei einfach frei lassen.
Wenn es damit funktioniert sollte auch der Duo-Betrieb funktionieren.
 

Hucky3000

Geocacher
Tach !

Nun ist es soweit und ich habe angefangen mit den ATTiny13 rumzubasteln. Habe zwar von Elektronik ein wenig Ahnung, aber NATÜRLICH klappt es nicht so wie ich das wollte. Die ersten beiden Chips sind gar :(

Ich habe das so gemacht:

Ich benutze BASCOM-AVR IDE 1.11.9.1 in der Demoversion.
Zuerst habe ich den Parallelport auf BI-Direcctional gestellt. Ist das richtig ?! EPP+ECP kann ich nicht einstellen, nur eines von beiden.
Laut Kochbuch soll man erst ein neues File anlegen. Ok. Der Computer nennt es dann einfach "noname1". Weiß nicht wie ich das ändern kann. Erstmal egal.
Dann soll ich auf Options gehen -> Programmer -> Compiler. Dort diverse Sachen einstellen, default drücken und dann auf Programmer. Auch dort gebe ich alles ein was verlangt wird. Ich setze auch die 3 Häkchen wir auf dem Screenshot.
So. Soweit so gut. Dann soll ich auf das IC-Zeichen gehen und "Manual Program" anwählen. Der Rechner antwortet mit: FileC:\Programme\MCS Electronics\BASCOM-AVR\NONAME1.BIN not found. Das bestätige ich. Dann kommt ne Meldung mit "Selected chip and target chip do not match AT bla, bla bla...
Danach kam wenigstens ein Fenster wo ich "Lock and Fuse-Bits" anwählen kann. Die geforderten Werte habe ich geändert, allerdings stand bei Calibration 0 ein anderer Wert als 5F, den ich auch nicht überschreiben konnte. Danach habe ich Write FS gedrückt und das wars. Es kommt ne Meldung "READLB entry not found".
Chip kaputt. WAS mache ich falsch ?!

Bitte um Antwort !

Hucky
 

stonewood

Geowizard
Hucky3000 schrieb:
Dann kommt ne Meldung mit "Selected chip and target chip do not match AT bla, bla bla...
Äh, welche Meldung kommt da ganz genau? Und zeigt er Dir im Programmierfenster dann attiny13 an?

Hört sich so an als ob Dein Programmer irgend ein Problem hat, und da gar nix hinten dran erkannt wird.
 

Hucky3000

Geocacher
Hi !

Ich meine da stand ATTiny461 <> ATTiny13

Beim ersten Mal stand im Programmierfenster auch irgendein anderer Typ, habe ich zu spät gesehen.
Biem 2. Mal habe ich drauf geachtet. Trotzdem hat er mir den Chip gegrillt.
Um festzustellen WAS da GENAU stand müsst eich wiefer nen Chio nen verbraten. Das wollte ich gerne vermeiden ;)

Hucky
 

Windi

Geoguru
Wie kommst Du darauf, dass Deine Chips kaputt sind?
Wenn sie im Programmer nicht als Tiny13 angezeigt werden kannst Du sie auch nicht programmieren und somit auch nicht "töten".
Ich gehe mal davon aus dass Dein Programmer nicht funktioniert und Deine Chips noch o.k. sind.
 

Teddy-Teufel

Geoguru
Wenn der Programmer i.O. ist und Du auf T? (roter Pfeil) klickst erkennt er auch den Chip, verbraten tust Du ihn dann noch lange nicht. Es sei denn Du hast ihn falsch in den Sockel gesetzt? :???:Sreenshot19.jpg
 

Hoshi-MZ

Geonewbie
So, bin nun zum testen gekommen...

@Stonewood:
Möchte keinen LDR aus zuvor genannten Gründen. Auch eine Reichweite von ca. 20-30m ist ausreichend... Mag-2D wird als Standart angesetzt.

Windi schrieb:
Nimm doch einfach mal die "normale" Programmversion her und baue dort Deine Duo-LED ein. Den dritten Pin der nicht benötigten LED dabei einfach frei lassen.

@Windi:
Hab es mit beiden LED´s der DUO-LED versucht. Wenn es einzeln angeschlossen ist, also nur Kathode und "rote" Anode bzw. "güne" Anode, funktioniert der Blinker. Aber mit meiner Abänderung des Single-LED-Programms aus dem Kochbuch (4.4 Verbesserter nachtaktiver Blinker) funktioniert es nicht. Die zweite LED "glimmt" wärend der kompletten Blinkphase vor sich hin. Auch in der Zeit in der die erste LED Pause hat und nicht blinkt.

Hier meine Version (rot die eingefügten Änderungen), sorry, hat wohl beim kopieren und einfügen die Lücken zu den Kommentarzeilen "gekillt":

'===============================================================
'
' ************************************
' *** ***
' *** Reaktiv-Tiny v0.1 24/11/2005 ***
' *** ***
' ************************************
'
' ìC: ATtiny13
' +Ub: 3,43 V
' I: 58 ìA
'
' (Fehlerhaft) Programm mit zweitem Ausgang (Port 5) für DUO-LED
'
'===============================================================

$regfile = "ATtiny13.DAT"
$crystal = 113000 'Reale Frequenz des internen 128kHz-Oszillators
Config Portb = &B00111000 'Pinb.3 .4 und .5 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = &B11000111 'Pullups zuschalten, auser fur Pinb.3 .4 und .5

Stop Adc 'A/D-Wandler abschalten, um Strom zu sparen
Stop Ac 'Analog-Komparator abschalten, um Strom zu sparen
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim Led_ladezustand As Bit
Dim Hell As Bit
Dim Dunkel As Bit
Do
Gosub Led_abfrage
If Led_ladezustand = 0 Then Hell = 1 'Bei Licht Merker setzen
If Hell = 1 And B < 255 Then B = B + 1 'Wenn Merker gesetzt wurde, Zahler fur Lichtdauer
'erhohen (bis max. 255)
If Led_ladezustand = 1 And Hell = 1 And B < 30 Then 'Wenn es wieder dunkel ist dann
'nachsehen fur wie lange
Dunkel = 1 'Merker Setzen
For C = 0 To 5 'LED-Zustand mehrmals abfragen
Gosub Led_abfrage
If Led_ladezustand = 0 Then Dunkel = 0 'Wenn wieder Hell dann Dunkel-Merker loschen
Next C
If Dunkel = 1 Then Gosub Blinken 'Wenn Dunkel-Merker gesetzt blinken
End If
If Led_ladezustand = 1 Then 'Bei Dunkelheit Merker und Zahler fur Lichtdauer loschen
Hell = 0
B = 0
End If
Loop
Led_abfrage:
Portb.3 = 0 'Portb.3 auf Masse schalten
Portb.4 = 1 'Portb.4 auf +Ub schalten, um die LED zu 'laden'
Waitus 1 'Ladezeit 1 ƒÊs, kann ggf. noch verkleinert werden
Config Portb.4 = Input 'Portb.4 nun zwecks Abfrage der LED-Ladung auf 'Eingang' schalten
Portb.4 = 0 'Pullup abschalten, sonst geht's nicht!
Waitms 100 'Entladezeit 100 ms - je kleiner, je unempfindlicher
Led_ladezustand = Pinb.4 'Ladezustand einlesen: '1' -> dunkel, '0' -> hell
Config Portb.4 = Output 'Portb.4 wieder auf Ausgang schalten
Portb.4 = 0 'Portb.4 auf Masse schalten
Return
Blinken:
Waitms 500 'Startverzögerung des Blinkzyklus
For A = 1 To 10 'Schleife Blinkzyklus erste LED
Portb.3 = 1 '-
Waitms 100 '-
Portb.3 = 0 '-
Waitms 500 '-
Next A '-
For D = 1 To 10 'Schleife Blinkzyklus zweite LED
Portb.5 = 1 '-
Waitms 100 '-
Portb.5 = 0 '-
Waitms 500 '-
Next D '-

Return
End

Gruß Dennis
 

Windi

Geoguru
Mit dem Port B5 kann das nicht funktionieren.
Der steht Dir nur dann zur Verfügung wenn Du ihn explizit freigibst. (Fuse setzen)
Das würde ich aber sein lassen denn dann kannst Du den Chip nicht mehr programmieren (außer Du hast einen STK500-Programmer).
Versuchs mal mit PB0, PB1 oder PB2
 

Hucky3000

Geocacher
Hi !

Erstmal danke für die Antworten.
Ich habe mal von meinem Problem mit Win Corder 2 kleine Filme gemacht. Bitte schaut euch das einmal an, da kann man die einzelnen Fehlermeldungen gut sehen.
Den ersten Film habe ich mit einem neuen ATTiny13 gemacht - der liest offenbar die Fuse-Bits, oder was das auch immer ist, obwohl vorher Fehlermeldungen kommen.
Dort habe ich dann nach dem Kochbuch die Einstellungen vorgenommen mit Ausnahme in dem Feld Calibration - da kann ich nichts ändern. Danach bin ich auf "Write FS".
Das Ergebnis sieht man dann im 2. Film :(

http://home.teleos-web.de/jwittiber/avr/heile.avi
http://home.teleos-web.de/jwittiber/avr/kaputt.avi

Das ganze sind zusammen ca. 10 MB

Bitte um Antwort !

Hucky
 

Windi

Geoguru
Wenn Du auf die Fusebits zugreifst sollte sich ein Programm in Bascom befinden.
Also Sourcecode laden und compilieren.
Erst dann weiß Bascom mit welcher Geschwindigkeit es den Tiny ansprechen kann.
In dem von Dir gezeigten Programm hast Du 9,6 Mhz und den Teilungsfaktor /8 eingestellt.
Für den Crystal-Wert sollte dann 1200000 eingetragen werden.
 

Hoshi-MZ

Geonewbie
@ Windi:
Windi schrieb:
Mit dem Port B5 kann das nicht funktionieren.
Der steht Dir nur dann zur Verfügung wenn Du ihn explizit freigibst. (Fuse setzen)
:kopfwand: ...hätte ich das vorher gewußt, hätte ich hier nichtmal nerven müssen ;)
Bin nun mit der "zweiten" LED (natürlich über nen eigenen Vorwiderstand) an Port 2 und hab meine Programmversion schnell darauf umgemünzt. Siehe da, es funktioniert :^^:

dickes fettes DANKE

@ Hucky3000:
Gehe akribisch nach dem Kochbuch vor... z.B. zeigt dein erstes Video, dass die Fusebits E & DCBA nicht wie im Kochbuch beschrieben eingestellt sind.
E von 0 auf 1 und DCBA von 1010 auf 1011.

Futsch is der ATtiny deswegen noch nicht, hätte deine Programmer-Platine nen Fehler wäre schon beim ersten Anlauf keine Verbindung zu Stande gekommen.

Grüße Dennis
 
Oben