Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Reaktivlicht mit 7-Segmentanzeige

Basteleien analog und digital mit Strom und Spannung.

Moderator: radioscout

kirby27b
Geocacher
Beiträge: 251
Registriert: So 12. Aug 2007, 17:45
Wohnort: GM

Reaktivlicht mit 7-Segmentanzeige

Beitrag von kirby27b » So 16. Nov 2008, 21:09

Hi,
da man bei dem Sauwetter ja nicht so wirklich cachen kann habe ich die Zeit mal genutzt um ein neues Reaktivlicht zu basteln. Basierend auf Windi´s Tiny13 Modell habe ich eines mit einem Tiny24/10 gebaut. Anstelle der Morsesymbole werden hier über eine 7-Segmentanzeige die Zahlen im Klartext ausgegeben.
BildBild
Überlege noch ob ich mir ne Platine machen lasse oder das ganze " Lochrastere " Mit der Fertigplatine sollte das ganze sogar mit einer Lithiumzelle in einen kleinen Pettling passen. Der Probeaufbau auf dem Steckbrett braucht im Standby 140µA und wenns Blinkt maximal 15mA.

Grüße Olaf
Zuletzt geändert von kirby27b am So 16. Nov 2008, 21:21, insgesamt 1-mal geändert.
Geschichte ist nicht das was wirklich geschehen ist, sondern das was jemand darüber niedergeschrieben hat.

Werbung:
kirby27b
Geocacher
Beiträge: 251
Registriert: So 12. Aug 2007, 17:45
Wohnort: GM

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von kirby27b » So 16. Nov 2008, 21:19

Hier noch das Programm dazu:

$hwstack = 20 'hardwarestack herabsetzen damit genügend variablen zur verfügung stehen
$regfile = "ATtiny24.DAT"
$crystal = 128000 'Frequenz des internen Oszillators




Config Adc = Single , Prescaler = Auto
Config Portb = &B00000111 'Pinb.0-3 auf 'Ausgang', Rest auf 'Eingang' schalten
Config Porta = &B10001011 'Pinq.1+3+5+7 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
Dim Zeichen As String * 1

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 Morsen '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


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
Porta.1 = 1
Reset Watchdog
Powerdown
Porta.1 = 0
Schlafzaehler = 0
End If
Return

Morsen:
Restore Daten 'Am Beginn der Daten anfangen
Alt = 1023 'Doppelauslösung verhindern
Do
Read Zeichen
Wdtcr = &B11010111 'Watchdog auf 2s stellen
If Zeichen = "0" Then Gosub P0
If Zeichen = "1" Then Gosub P1
If Zeichen = "2" Then Gosub P2
If Zeichen = "3" Then Gosub P3
If Zeichen = "4" Then Gosub P4
If Zeichen = "5" Then Gosub P5
If Zeichen = "6" Then Gosub P6
If Zeichen = "7" Then Gosub P7
If Zeichen = "8" Then Gosub P8
If Zeichen = "9" Then Gosub P9
If Zeichen = "n" Then Gosub Pn
If Zeichen = "e" Then Gosub Pe
Wdtcr = &B11010011 'Watchdog wieder auf 125ms stellen
If Zeichen = "X" Then Return
Loop


P0:
Portb = &B00000111
Porta = &B10000011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P1:
Portb = &B00000110
Reset Watchdog
Powerdown
Portb = 0
Return

P2:
Portb = &B00000011
Porta = &B10001010
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P3:
Portb = &B00000111
Porta = &B00001010
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P4:
Portb = &B00000110
Porta = &B00001001
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P5:
Portb = &B00000101
Porta = &B00001011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P6:
Portb = &B00000100
Porta = &B10001011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P7:
Portb = &B00000111
Reset Watchdog
Powerdown
Portb = 0
Return

P8:
Portb = &B00000111
Porta = &B10001011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

P9:
Portb = &B00000111
Porta = &B00001001
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

Pn:
Portb = &B00000100
Porta = &B10001000
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return

Pe:
Portb = &B00000001
Porta = &B10001011
Reset Watchdog
Powerdown
Portb = 0
Porta = 0
Return


Leer:
Reset Watchdog
Powerdown
Reset Watchdog
Powerdown
Return

End

Daten:
Data "n" , "1" , "2" , "3" , "4" , "5"
Data "e" , "6" , "7" , "8" , "9" , "0"
Data "X"
Geschichte ist nicht das was wirklich geschehen ist, sondern das was jemand darüber niedergeschrieben hat.

thomas_st
Geowizard
Beiträge: 1643
Registriert: Fr 18. Nov 2005, 16:30
Wohnort: ~ N 51°21' E 12°00'

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von thomas_st » Mo 17. Nov 2008, 10:25

kirby27b hat geschrieben:da man bei dem Sauwetter ja nicht so wirklich cachen kann habe ich die Zeit mal genutzt um ein neues Reaktivlicht zu basteln.
So schlecht war das Wetter doch gar nicht ;)
kirby27b hat geschrieben:Der Probeaufbau auf dem Steckbrett braucht im Standby 140µA [...]
Das ist recht viel! Ok ich habe jetzt das Datenblatt des Tiny 24 nicht hier - aber 140µA sind ja schon deutlich mehr, als die ca. 6µA, die der Tiny 13 (allerdings V) braucht. Mit welcher Spannung betreibst Du das Ganze?

Ansonsten: schön noch jemanden gefunden zu haben, der hier Target nutzt ;)

Viele Grüße,
Thomas(_st) - der momentan daran verzweifelt, die RFM12 Module per IRQ-Modus mit einem Tiny 44 zu verheiraten ;)

kirby27b
Geocacher
Beiträge: 251
Registriert: So 12. Aug 2007, 17:45
Wohnort: GM

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von kirby27b » Mo 24. Nov 2008, 23:33

Hi,

so das erste ist fertig. Als ich es dann Programieren wollte ist mir aufgefallen das ich beim Schaltplan/Platine erstellen durch das wechseln und neu belegen der ISP-Steckleiste deren Belegung verwurstelt habe. Also mußte ich mir noch einen Adapter basteln. Doch es geht so prima. So schauts aus:
BildBild
Ist allerdings doch ein großer Pettling geworde, da die Anzeige höher war als ich dachte, aber so ist genug Platz für die Batterie ( 3,6V Lithium )
- aber 140µA sind ja schon deutlich mehr, als die ca. 6µA, die der Tiny 13 (allerdings V) braucht.
Komischerweise braucht die SMD Schaltung nur noch ca.14µA Ruhestrom. Habe es mehrfach getestet, der DIL Tiny auf dem Steckbrett braucht 140µA und die Platine mit den SMD Bauteilen 6µA im Tagmodus und ca.13µA im Nachtmodus ( wohl wegen der häufigeren Abfrage des LDR ) Beides von der selben 3,6V Zelle gespeist. Naja aber besser so als anders herum.

Grüße Olaf
Geschichte ist nicht das was wirklich geschehen ist, sondern das was jemand darüber niedergeschrieben hat.

thomas_st
Geowizard
Beiträge: 1643
Registriert: Fr 18. Nov 2005, 16:30
Wohnort: ~ N 51°21' E 12°00'

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von thomas_st » Mi 26. Nov 2008, 16:10

kirby27b hat geschrieben:
- aber 140µA sind ja schon deutlich mehr, als die ca. 6µA, die der Tiny 13 (allerdings V) braucht.
Komischerweise braucht die SMD Schaltung nur noch ca.14µA Ruhestrom. Habe es mehrfach getestet, der DIL Tiny auf dem Steckbrett braucht 140µA und die Platine mit den SMD Bauteilen 6µA im Tagmodus und ca.13µA im Nachtmodus ( wohl wegen der häufigeren Abfrage des LDR )
Komisch. Wie hast Du gemessen? Das einzige was mir noch einfallen würde, wäre, dass das Messgerät eventuell einen Spitzenstrom angezeigt hat. Ansonsten 6µA und 13µA sind sehr ok. :) Was mir gerade noch einfällt: eventuell einen anderen Widerstand für R1 genommen?

Viele Grüße,
Thomas(_st) - sieht gut aus :)

Benutzeravatar
upigors
Geowizard
Beiträge: 2345
Registriert: Mo 24. Sep 2007, 15:52
Wohnort: 39326 Hohenwarsleben
Kontaktdaten:

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von upigors » Di 2. Dez 2008, 12:32

kirby27b hat geschrieben:Hi,
da man bei dem Sauwetter ja nicht so wirklich cachen kann habe ich die Zeit mal genutzt um ein neues Reaktivlicht zu basteln. .....
Ich hab grad etwas Zeit und versuche mal Dein Programm zu verstehen.
du leuchtest den LDR an und dieser gibt Zahlen aus. Mehrere hintereinander?
und wo definierst du die eingaben zu den ausgaben p0 - pe?
ich find das in dem programm nicht?
sorry, bin nur laihe was das angeht und versuche zu verstehen ;-
gruß uwe
Bild..Bild

#ammensleben
Geocacher
Beiträge: 266
Registriert: Sa 23. Feb 2008, 21:18

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von #ammensleben » Di 2. Dez 2008, 13:26

die einzelnen Zahlen werden in den unter den Subs von p0 bis pe definiert weil der tiny ja sons tnicht wuesste wann welche der leds zu leuchten hat. die Daten der eigentlichen Ausgabe sind in der Sub Daten definiert wie ganz unten zu sehen ist.
Bild Bild

Runterzieher! Für mehr Klettercaches!

Benutzeravatar
upigors
Geowizard
Beiträge: 2345
Registriert: Mo 24. Sep 2007, 15:52
Wohnort: 39326 Hohenwarsleben
Kontaktdaten:

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von upigors » Di 2. Dez 2008, 14:11

ja, hab nur bis "END" gelesen und dabei das
Daten:
Data "n" , "1" , "2" , "3" , "4" , "5"
Data "e" , "6" , "7" , "8" , "9" , "0"
Data "X"
übersehen
trotzdem danke
Bild..Bild

ksbender
Geocacher
Beiträge: 76
Registriert: Do 15. Nov 2007, 23:26
Wohnort: Parsau - Niedersachsen

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von ksbender » Mi 3. Dez 2008, 21:00

Eine kleine Frage an kirby27b:
Wie hast du deinen Programmieradapter umgestrickt?
Einfach analog Kochbuch und auch wieder PB0, PB1 und PB2 neben GND und Reset?
Wenn nein, dann schreib doch bitte deine Anschlüsse für die Laien im Forum (also auch mich) einmal auf.
Ansonsten kann ich nur sagen: Toll realisierte TOLLE IDEE.
Heute sind bei mir ein paar Attiny 24er eingetroffen und ich freue mich schon auf´s Wochenende.
Gruß
Stephan
Cache gefunden, Füße stinken, höchste Zeit, ein Bier zu trinken.

kirby27b
Geocacher
Beiträge: 251
Registriert: So 12. Aug 2007, 17:45
Wohnort: GM

Re: Reaktivlicht mit 7-Segmentanzeige

Beitrag von kirby27b » Mi 3. Dez 2008, 21:57

Hi,

also ich habe nicht den Programieradapter aus dem Kochbuch, da mein LPT-Port nicht mit delbigem funktioniert. Ich benutze den 6 Poligen ISP-Anschluß des STK500. Die Anschlüsse für den Programieranschluß des Tiny24 sind ( für DIP und SOIC Gehäuse):

Reset= Pin 4 ( Pb3)
Mosi = Pin 7 ( Pa6)
Miso = Pin 8 ( Pa5)
SCK = Pin 9 ( Pa4)
VCC = Pin 1
GND = Pin 14

Und bitte darauf achten das ich durch Unachtsamkeit die Pins des Programieranschluß im Schaltplan nicht passend zu der Originalbelegung des Atmel ISP-Anschluß belegt habe. Aber wer sich eine Platine machen lassen will kann selbiges ja in seinem Layout verbessern.

Grüße Olaf
Geschichte ist nicht das was wirklich geschehen ist, sondern das was jemand darüber niedergeschrieben hat.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder