• 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

Dani_B

Geocacher
Hoppla, da muss ich wohl mal meinen Beitrag editieren :shock:

Wobei... wer das Zeug mal wieder abmachen will, weiß wie **** das ist :roll:
 

fulbrich

Geocacher

Ich habe die Bauteile für eine Blinkschaltung und Programmierinterface für http://www.csd-electronics.de/ zusammengeschrieben. Stimmt es soweit ?
 

Windi

Geoguru
fulbrich schrieb:
Ich habe die Bauteile für eine Blinkschaltung und Programmierinterface für http://www.csd-electronics.de/ zusammengeschrieben. Stimmt es soweit ?
Bis auf den Vorwiderstand der LED ist das alles o.k. Hier solltest Du einen Widerstand mit 56 Ohm (bei 3 Volt) Versorgungsspannung verwenden. 220 kOhm sind etwas zu gross.
Dann brauchst Du nur noch ein paar Meter Kabel vom Stecker zum Interface.
Bei den LEDs kann es sein dass es nicht mit jedem Modell klappt. Hier würde ich an Deiner Stelle auch ein paar verschiedene zum Experimentieren kaufen.
 

El-man

Geocacher
Im Online Shop von Elektro-Nix gibt es den Atmel ATtiny13 für 1,34 Euro
und ab einer Abnahme von 20 Stück für 1,14 Euro

Gruß El-Man
 

Windi

Geoguru
El-man schrieb:
Im Online Shop von Elektro-Nix gibt es den Atmel ATtiny13 für 1,34 Euro
Ich empfehle jedoch die V-Variante weil sie bereits ab 1,8 Volt funktioniert.
Der normale 13er braucht mindestens 2,7 Volt.

Den ATtiny 13V gibts aber leider dort nicht.
 

Dani_B

Geocacher
Hallo Windi,
ich hab auch nur den ATtiny13-20PU von Reichelt hier. Der arbeitet auch runter bis 1,8V, das hab ich am Labor-Netzteil getestet. Allerdings ist dann schon fast die Flusspannung der LED erreicht und sie ist sehr dunkel.


Hat sonst jemand die in der Liste angegebene 5mm LED von CSD in Verwendung?
(5mm / 1,9V / 990mcd / 20mA / 30°)

Ich hab zur Zeit die LED 8-4500 RT von Reichelt. (8mm / 1,85V / 4500mcd / 30mA / 40°)
Die lässt sich sehr gut triggern und ist auch auf weite Entfernung gut zu sehen.

Gruß,
Daniel
 

KaJu

Geocacher
Dani_B schrieb:
Hat sonst jemand die in der Liste angegebene 5mm LED von CSD in Verwendung?
(5mm / 1,9V / 990mcd / 20mA / 30°)

Ich habe vor 2 Tagen dort u.a. auch diese LED bestellt und werde wohl nächste Woche mal zum basteln kommen. Kann ich ja zum Stammtisch mitbringen zum Vergleich mit Deiner LED.

Gruß, Kai
 

KaJu

Geocacher
KaJu schrieb:
Dani_B schrieb:
Hat sonst jemand die in der Liste angegebene 5mm LED von CSD in Verwendung?
(5mm / 1,9V / 990mcd / 20mA / 30°)

Ich habe vor 2 Tagen dort u.a. auch diese LED bestellt und werde wohl nächste Woche mal zum basteln kommen. Kann ich ja zum Stammtisch mitbringen zum Vergleich mit Deiner LED.

Hmpf. Heute ist das Päckchen gekommen - und was darf ich erst jetzt erfahren? Die LED ist ausverkauft und kein Ersatz lieferbar. :evil:

Muß ich also erst mal anderweitig gucken, habe zwar noch ein paar einzelne LEDs zum Testen da, aber weiß der Himmel, was das für welche sind.

Gruß, Kai
 

fulbrich

Geocacher
KaJu schrieb:
Hmpf. Heute ist das Päckchen gekommen - und was darf ich erst jetzt erfahren? Die LED ist ausverkauft und kein Ersatz lieferbar. :evil:
Gruß, Kai
Jo, bei mir waren die von mir bestellten LEDs auch ausverkauft. Leider wurde meine Bastelaktion durch eine schwere Magen/Darm Grippe verzögert. Mal sehen, ob ich morgen wieder einen Lötkolben halten kann.
 

Windi

Geoguru
Ich hab mich die letzten Tage mal mit dem Programm gespielt und habe dabei versucht das ganze noch energiesparender zu programmieren.
Ich wollte statt des Wait-Befehls den Prozessor in den "Schlaf versetzen" und ihn dann über den Watchdog wieder aufwecken.
War gar keine so einfache Angelegenheit da der WD verschiedene Betriebszustände hat (Aus, Reset, Interrupt, Reset und Interrupt) die von Bascom aber irgendwie nicht unterstützt werden.
Mit den normalen Basic-Befehlen konnte ich immer nur den Reset-Modus aktivieren.
Nach ein bischen Recherche und Nachfragen im Forum von http://www.roboternetz.de hab ich es endlich hingebracht.
Ich habe einfach die Watchdog-Register händisch gesetzt und schon hat es geklappt.
Das Ergebnis kann sich glaube ich sehen (bzw. messen) lassen.

Stromaufnahme mit WAIT-Befehl: 50 Mikroampere
Stromaufnehme mit IDLE-Befehl: 15 Mikroampere
Stromaufnehme mit POWERDOWN-Befehl: 5 Mikroampere

Gemessen jeweils bei einer Versorgungsspannung von 3 Volt

Hier ein Programm zum Experimentieren. Die LED blinkt 100 mal, danach geht der Prozessor für 8 Sekunden schlafen.


' Prozessor in den Schlaf schicken und per Watchdog aufwecken
' µC: ATtiny13
'
' ==================================================

$regfile = "ATtiny13.DAT"
$crystal = 128000
Config Portb = &B00011000
Portb = &B11100111
Stop Adc
Stop Ac

'Watchdog definieren: 8 Sekunden, Interrupt auslösen, kein Reset
Wdtcr = &B11110001

'Interrupts freigeben
Enable Interrupts


Dim A As Byte

Do
Gosub Blinken
Loop



Blinken:
For A = 1 To 100
Portb.3 = 1
Waitms 20
Portb.3 = 0
Waitms 20
Next A

'Watchdog-Timer zurücksetzen
Reset Watchdog

'Prozessor schlafen schicken
Powerdown
'Das Programm läuft nach Ablauf der WD-Zeit hier weiter

Return

End
 

KaJu

Geocacher
Mal eine Frage an die Kundigen: Ist es normal, daß der Tiny13V bei anlegen von 3 V recht schnell relativ heiß wird? Er ist bei mir in die Schaltung eingebaut (mehrfach überprüft), allerdings noch nicht programmiert - da habe ich bisher immer abgebrochen, wegen der Wärmeentwicklung.

Danke schonmal für die Antwort,

Kai
 

orotl

Geocacher
KaJu schrieb:
Mal eine Frage an die Kundigen: Ist es normal, daß der Tiny13V bei anlegen von 3 V recht schnell relativ heiß wird? Er ist bei mir in die Schaltung eingebaut (mehrfach überprüft), allerdings noch nicht programmiert - da habe ich bisher immer abgebrochen, wegen der Wärmeentwicklung.
Nein, das ist definitiv nicht normal!
Das ist ein Mikroprozessor und keine Intel-CPU mit Herdplattentechnologie :wink:
Die Chancen dass sie bereits in die ewigen Jagdgründe eingegangen ist sind leider recht gross.
Ich hoffe du hast sie gesockelt...

orotl
 

KaJu

Geocacher
orotl schrieb:
Nein, das ist definitiv nicht normal!
Das ist ein Mikroprozessor und keine Intel-CPU mit Herdplattentechnologie :wink:
Die Chancen dass sie bereits in die ewigen Jagdgründe eingegangen ist sind leider recht gross.
Ich hoffe du hast sie gesockelt...

Nein, habe ich nicht. Ich habe die Schaltung auf einem Steckbrett aufgebaut. :)

Hm, irgend eine Idee, woran das liegen kann? Habe die Schaltung exakt nach Plan (Seite 5 in diesem Thread) aufgebaut. Keine Kurzschlüsse - definitiv.

Gruß, Kai
 

orotl

Geocacher
KaJu schrieb:
Nein, habe ich nicht. Ich habe die Schaltung auf einem Steckbrett aufgebaut. :)

Hm, irgend eine Idee, woran das liegen kann? Habe die Schaltung exakt nach Plan (Seite 5 in diesem Thread) aufgebaut. Keine Kurzschlüsse - definitiv.
Steckbrett ist gut, steck mal alles bis auf die Stromversorgung ab, wird sie immer noch heiss -> defekt.
Wenn sie kalt bleibt 'taste' dich langsam wieder an die volle Schaltung heran.
Über die Gründe kann ich nicht viel sagen, aber spontan fällt mir da mal die elektrostatische Entladung ein.
Auch wenn die Dinger mittlerweile relativ unempfindlich dagegen sind, ein kleiner Funken aus deinem Finger kann für einen 'latch up' schon ausreichen.

orotl
 

Windi

Geoguru
KaJu schrieb:
Mal eine Frage an die Kundigen: Ist es normal, daß der Tiny13V bei anlegen von 3 V recht schnell relativ heiß wird? Er ist bei mir in die Schaltung eingebaut (mehrfach überprüft), allerdings noch nicht programmiert - da habe ich bisher immer abgebrochen, wegen der Wärmeentwicklung.
Hast Du den Prozessor richtig herum eingesteckt?
Pin1 ist derjenige mit Kerbe im Gehäuse. Danach wird gegen den Uhrzeigersinn gezählt.

Ich befürchte allerdings auch, dass er in die ewigen Jagdgründe eingegangen sein dürfte.
 

fulbrich

Geocacher
Hallo Kollegen,
ich brauche Eure Hilfe, meine Schaltung funktioniert nicht.

Ich habe die Schaltung auf einem Steckbrett zusammengesteckt und mit einem stabilisierten 5 Volt Netzteil verbunden.
Als Vorwiderstand (R1) zur LED ist bei mir ein 56Ohm Widerstand eingebaut.
Als LED betreibe ich eine eine LED 5mm ROT trans. 4800mcd 22° (25-5014800) von csd-electronics.

Das compilen des "Urprogramms" gelang, nachdem ich den HW Stack von 36 auf 6 heruntergesetzt hatte. :idea:

Nach dem Abdunkeln des Raumes und dem Anblitzen der LED reagiert die Schaltung nicht. Wenn die Schaltung Licht ausgesetzt ist, messe ich zwischen PIN2/PIN3 des IC mit dem Multimeter wechselnde Spannungen. :roll:

Was könnte mein Problem sein ???? :?: Ist der Widerstand falsch dimensioniert ? Ich habe auch schon eine einfache LED aus der Bastelkiste ausprobiert, welche auch nicht blinkt :!:


Hat jemand einen Tip für mich, was ich mal probieren könnte ?
 

Schnueffler

Geoguru
Und wenn wir gerade dieses alte Thema wieder aufwärmen, fällt mir ein, dass ein User dieses Boards mir ein paar Reaktivlichter bauen und schicken wollte. Leider ist bis jetzt nichts bei mir angekommen.

Na schauen wir mal, ob sich jemand hier angesprochen fühlt. und sich meldet. :wink:
 

Windi

Geoguru
@Schnueffler: :oops: Asche auf mein Haupt. Hab ich total vergessen. Warum erinnerst Du mich auch nicht mehr dran.
Dieses Wochenende mach ich sie Dir fertig.
Hand aufs Herz, Versprochen, Garantiert, 100%ig.

@Fulbrich: Probier doch mal dieses vereinfachte Programm zum Testen.

Wenn es dunkel ist blinkt die LED alle 3 Sekunden.
Wenn es hell ist bleibt die LED aus.
Hast Du vielleicht die LED verkehrt herum gesteckt?


Code:
'============================================================
'
' ************************************
' ***                              ***
' ***   Blinklicht 3 Sekunden      ***
' ***                              ***
' ************************************
'
' µC: ATtiny13
' +Ub: 3,00 V
'
'
'============================================================

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

Config Portb = &B00011000                                   'Pinb.3 und .4 auf 'Ausgang', Rest auf 'Eingang' schalten
Portb = &B11100111                                          'Pullups zuschalten, außer für Pinb.3 und .4
Stop Adc                                                    'A/D-Wandler abschalten, um Strom zu sparen
Stop Ac                                                     'Analog-Komparator abschalten, um Strom zu sparen

Dim Led_ladezustand As Bit

Do

Wait 3                                                     

Gosub Led_abfrage
If Led_ladezustand = 1 Then Gosub Leuchten
Loop


Led_abfrage:
    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
Return


Leuchten:
        Portb.3 = 1
        Waitms 50
        Portb.3 = 0
        Return

End
 

Dani_B

Geocacher
@KaJu
Das Ding nimmt 50µA auf. Bei 3V macht das 0,00015W. Da darf gar nichts warm werden. Zum Anschluss: Wenn die Kerbe nach oben zeigt, muss der Pin oben links und oben rechts mit + verbunden sein. Der Pin unten links mit -.
Steckt der Tiny viellicht falsch im Steckbrett? Nicht, dass du die horizontal durchkontaktierten Reihen versehentlich komplett erwischt hast.
Sonst können wir da sicher auch beim nächten Stammtisch was machen ;)

@fulbrich
Hoffentlich kommen die 5V nicht aus einem zwar stabilisierten aber ungeregeltem Netzteil. Da kommen im Leerlauf gern etwas mehr Volts raus.
Ich hab den Widerstand zur Sicherheit auf 100R gesetzt, um auf keinen Fall mehr als 20mA aus einem Portpin zu ziehen.

@all
Nicht die Fusebits vergessen! CKSEL0, CKSEL1 und BODLEVEL1 nicht aktivieren und BODLEVEL0 aktivieren. (Aktivieren meint auf 0 brennen)

Hab übrigens noch eine praktische Gehäuse-Idee auf einer anderen Website gefunden: Kleine Einwegspritzen (natürlich ohne Nadel).

Da man hier scheinbar keine Dateien anhängen kann, hier mal der Hex-Code für den Tiny13 mit copy&paste in eine .hex Datei brennbar:
Code:
:1000000009C021C020C01FC01EC01DC01CC01BC015
:100010001AC019C011241FBECFE9CDBF10E0A0E661
:10002000B0E0E4EFF0E003C0C89531960D92A03641
:10003000B107D1F710E0A0E6B0E001C01D92A036F4
:10004000B107E1F716C0DCCFC498C39A87E090E00F
:100050000197F1F7BB98C3988CEB92E00197F1F709
:10006000B39B02C080E001C081E0BB9AC39899278E
:100070000895CFE9D0E0DEBFCDBF88E187BB8FEF29
:1000800088BB88B3877E88BB11BE80E888B9DD2431
:10009000DBDF8823E1F7D39487E08D15C8F7D4DF41
:1000A0008823E9F3A0E3B2E0C0E0D0E090E6E92ED7
:1000B00094E0F92E012D112D26E039E040E050E0CA
:1000C0008DE1D82EC49A8A2F9B2F0197F1F7C498FF
:1000D0009F2D8E2D0197F1F7C49A8A2F9B2F0197A0
:1000E000F1F7C498932F822F0197F1F7DA94D7FE96
:0400F000E9CFCDCFB8
:00000001FF

Wenn die LED nur regelmäßig gaaanz kurz aufblitzt, LED einfach umdrehen.
Das Programm erwartet 8 "Dunkelzyklen" hintereinander und ist dann scharf. Bei Beleuchtung kommt kurzes Doppelblinken.

Gruß,
Daniel
 

fulbrich

Geocacher
Hallo zusammen,

@Windi:
Danke für das kurze Testprogramm.


Leider funktioniert es noch immer nicht. Programmierung scheint zu gelingen, aber nichts blinkt im Dunklen.
Am Netzteil liegen 4.98 Volt an und die Polung stimmt auch.
Die LED liegt mit dem flachen Teil des Gehäuses an PIN 3 des TINY an, müßte eigentlich passen.
Tiny, Widerstand (56R) und LED habe ich schon einmal getauscht.
:?:

Muß ich den Blinker vom Druckerport abziehen ? Habe ich auch schon probiert... Blinker blinkt nicht.

Nicht die Fusebits vergessen! CKSEL0, CKSEL1 und BODLEVEL1 nicht aktivieren und BODLEVEL0 aktivieren. (Aktivieren meint auf 0 brennen)
Welche Bits wären das denn unter BASCOM-AVR ?
Ich habe Fusebit E und Fusebit DCBA nach Anleitung Seite 5 des threads umgestellt.

Anderen Widerstand 100R wegen R = (5V-2.25V)/0.02A = 137R => 100R ausprobiert, keine Veränderung. Nichts blinkt.

Wenn die Kerbe nach oben zeigt, muss der Pin oben links und oben rechts mit + verbunden sein. Der Pin unten links mit -.
Ganz sicher oben links auch ? Das ist doch eine Resetleitung ? Beim mir ist die Leitung nur mit dem Druckerport verbunden.
 
Oben