Forum: Mikrocontroller und Digitale Elektronik Hilfe bei der Programmierung eines Adventskalenders


von Marcel A. (crazyma90)


Lesenswert?

Hallo Leute,

ich habe mich jetzt mal hier registriert, damit ich endlich mal 
weiterkomme^^

Ich möchte eine Art Adventskalender Programmieren. Die Hardware dafür 
stellt mein Vater (der auch der Initiator des Projektes ist) zur 
Verfügung. Meine Aufgabe ist es einen ATTiny2313 so zu Programmieren 
dass er quasi pro Tag nur eine von 24 LED'S zum Leuchten bringt. Die 
Frage ob sie hinterher weiter leuchten oder wieder ausgehen ist hier 
zweitrangig. Das gute Stück soll später über eine eigene Stromversorgung 
betrieben werden und deshalb sind auch Energiespar-Funktionen (noch) 
nicht nötig.

Folgendes habe ich im Selbststudium schon erarbeitet:

Am sinnvollsten wäre es, meiner Meinung na, den Watchdog-Timer von 8 
Sekunden eintzusetzen um eine Variable runterzählen zu lassen. Wenn 
diese dann null erreicht eine Aktion auszuführen und anschließend die 
Variable auf den Initialwert zu setzen zum erneuten Runterzählen.

Mir geht es vor allem um Hilfe bei der Strukturierung(?) des Programms.

Besser kann ich es leider gerade nicht beschreiben, sorry. Die Hardware 
existiert auch noch nicht, sondern wird bestellt sobald ich das Programm 
soweit fertig habe, weil es Eigenentwicklungen meines Vaters sind und 
die Kosten sonst Explodieren würden. Ein kleines Board mit dem ATTiny 
und acht LED's habe ich brereits. Als Programmer kommt ein AVRispMKII 
zum Einsatz. Keine Ahnung ob das wichtig ist. ALs IDE verwende ich 
Microchip Studio in der Version 7.0.2542.

Ich hoffe Ihr könnt mir helfen. Danke schon mal im Vorraus.

: Verschoben durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Am sinnvollsten wäre es, meiner Meinung na, den Watchdog-Timer von 8
> Sekunden eintzusetzen um eine Variable runterzählen zu lassen.

Nein, der ist viel zu ungenau. Du wirst nicht um irgendeinen genauen 
Takt herum kommen. Leider hat der ATtiny2313 keine Möglichkeit, einen 
32-kHz-Quarz anzuschließen, den man im Powersave-Modus weiter betreiben 
kann. Du musst also irgendwie den Hauptoszillator mit einem Quarz 
ausrüsten und durchlaufen lassen.

> Das gute Stück soll später über eine eigene Stromversorgung betrieben
> werden und deshalb sind auch Energiespar-Funktionen (noch) nicht nötig.

Und was passiert bei Stromausfall? Geht alles wieder am 1. Dezember los?

Wenn ich sowas machen müsste, würde ich mir:

* einen Controller nehmen, der einen 32-kHz-Oszillator im Powersave 
benutzen kann
* eine Pufferbatterie vorsehen, um ihm bei Stromausfall in genau diesem 
Modus weiterlaufen zu lassen

von Marcel A. (crazyma90)


Lesenswert?

Erstmal danke für die schnelle antwort.


Jörg W. schrieb:
> Nein, der ist viel zu ungenau.

Über wie viel ungenauigkeit sprechen wir hier? Ein Paar Sekunden oder 
Minuten pro Tag mehr oder weniger sind für meinen Vater und mich schon 
verkraftbar aber ich nehme an dass dadurch auch die weiteren 
Berechnungen auswirkt und dadurch letztendlich - als Beispiel- am 25. 
erst die letzte LED angeht.

Jörg W. schrieb:
> Du wirst nicht um irgendeinen genauen
> Takt herum kommen. Leider hat der ATtiny2313 keine Möglichkeit, einen
> 32-kHz-Quarz anzuschließen, den man im Powersave-Modus weiter betreiben
> kann. Du musst also irgendwie den Hauptoszillator mit einem Quarz
> ausrüsten und durchlaufen lassen.

Das sollte aber doch machbar sein(?) Zumindest ist es ja möglich einen 
externen Taktgeber zu nutzen. Zumindest laut Datasheet. Aber ich werde 
meinen Dad mal ansprechen ob das Platztechnisch auf der Platine die er 
gemacht hat passt.

Jörg W. schrieb:
> Und was passiert bei Stromausfall? Geht alles wieder am 1. Dezember los?

Im Moment soll noch genau das passieren. Natürlich ist das keine 
besonders gute Lösung aber für das Projekt ist es noch ausreichend wenn 
er nach einem Stromausfall wieder von vorne beginnt.

von SW_Hans (Gast)


Lesenswert?

Ich denke einen Quarz braucht er nicht. Der interne Takt reicht hier 
aus.
Es ist ja so zu verstehen das einmal am Tag eine LED abgeschaltet werden 
soll. Da ist es egal ob dieses 5 min eher oder später geschieht.


- Erste Aufgabe ist es die 24 LEDs anzusteuern. Der Tiny hat dafür ja 
nicht genügend IOs also muss hier eine Lösung her ;-)
- Zweite Aufgabe ist es eine Zählschleife und Delay Funktion zu 
programmieren an deren Ende eine LED erlischt.

Ein Tag hat 24 * 60Min = 1440 Minuten oder 86400 Sekunden.
Somit kannst du eine Wartefunktion schreiben, welche entweder eine 
Sekunde oder eine Minute wartet, danach zählst du nur noch von den o. g. 
Wert runter bei 0 wird eine LED abgeschalten und der Zähler wieder auf 
den Startwert gesetzt.

von Peter D. (peda)


Lesenswert?

SW_Hans schrieb:
> Ich denke einen Quarz braucht er nicht. Der interne Takt reicht hier
> aus.

Bestimmt nicht.
1% Fehler sind nach 24 Tagen schon 6 Stunden.

von Marcel A. (crazyma90)


Lesenswert?

SW_Hans schrieb:
> Es ist ja so zu verstehen das einmal am Tag eine LED abgeschaltet werden
> soll. Da ist es egal ob dieses 5 min eher oder später geschieht.

Genau das ist der springende Punkt. Allerdings ist es der PLan sie 
einzuschalten aber das sind ja nur Details um die ich mich selbst 
kümmenr muss.

SW_Hans schrieb:
> - Erste Aufgabe ist es die 24 LEDs anzusteuern. Der Tiny hat dafür ja
> nicht genügend IOs also muss hier eine Lösung her ;-)

Ist schon passiert^^ mein Dad hat das durch die Schaltung gelöst. Er hat 
je acht der LED's an einem LED-Treiber angeschlossen und dann halt davon 
drei stück auf der PLatine.

SW_Hans schrieb:
> - Zweite Aufgabe ist es eine Zählschleife und Delay Funktion zu
> programmieren an deren Ende eine LED erlischt.

Scheint so als hätte ich wieder mal zu kompliziert gedacht^^ Ich bin 
davon ausgegangen dass die 86400 sekunden pro tag zu viel Speicher 
brauchen um sie direkt nutzen zu können.

von MaWin (Gast)


Lesenswert?

Marcel A. schrieb:
> Mir geht es vor allem um Hilfe bei der Strukturierung(?) des Programms.

Oje.

Gar keine.

Das ist so primitiv-einfach, das entspricht dem blink Beispiel. Also dem 
Hello World der Microcontrollerei.

Leuchtet nur 1 LED zu einer Zeit und nicht am Schluss 24, dann tut es 
eine 5x5 Matrix an 10 Ausgängen ohne Multiplex.

Arduinomässig so primitiv, wer redet da von Struktur:
1
uint8_t day=0;
2
loop()
3
{ 
4
   digitalWrite(day%5,0); // alte LED aus
5
   digitalWrite(day/5+5,1);
6
   day=millis()/(24*60*60*1000L);
7
   digitalWrite(day%5,1); // neue LED an
8
   digitalWrite(day/5+5,0);
9
}
Initialisierung left as an exercise to the reader.

von Udo S. (urschmitt)


Lesenswert?

Marcel A. schrieb:
> Ich möchte eine Art Adventskalender Programmieren. Die Hardware dafür
> stellt mein Vater (der auch der Initiator des Projektes ist) zur
> Verfügung. Meine Aufgabe ist es

Möchtest du jetzt oder ist es eine Aufgabe?

Marcel A. schrieb:
> Die Hardware
> existiert auch noch nicht, sondern wird bestellt sobald ich das Programm
> soweit fertig habe, weil es Eigenentwicklungen meines Vaters sind und
> die Kosten sonst Explodieren würden.

Das macht ja wohl überheupt keinen Sinn. Wenn du nicht weisst wie lie 
Leds (über Multiplexing) an die Ports angeschlossen sind, welchen Takt 
der µC hat, was ggf noch qan Peripherie verbaut ist (Tasten, Display, 
Echtzeituhr, ...) kannst du kein Programm schreiben.

Ausserdem explodieren keine Kosten wenn man sich einen µC auf ein 
Steckbrett setzt und ein paar zusätzliche Bauteile kauft.

Ich weiss ja nicht, entweder das Ganze ist eine Hausaufgabe die 
verschleiert werden soll wegen 
Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"
oder es riecht nach Troll Posting.

von Marcel A. (crazyma90)


Lesenswert?

MaWin schrieb:
> Marcel A. schrieb:
>> Mir geht es vor allem um Hilfe bei der Strukturierung(?) des Programms.
>
> Oje.
>
> Gar keine.
>
> Das ist so primitiv-einfach, das entspricht dem blink Beispiel. Also dem
> Hello World der Microcontrollerei.
>
> Leuchtet nur 1 LED zu einer Zeit und nicht am Schluss 24, dann tut es
> eine 5x5 Matrix an 10 Ausgängen ohne Multiplex.
>
> Arduinomässig so primitiv, wer redet da von Struktur:uint8_t day=0;


Doch natürlich ich habe nämlich keinen Arduino hier. Ich habe einen 
AVRispMKII wie eingangs erwähnt.

von Wolfgang (Gast)


Lesenswert?

Jörg W. schrieb:
> Nein, der ist viel zu ungenau.

Der Adventskalender hat 24 Türchen. Für Nicht-Nachtwandler reicht es, 
wenn der Kalender irgendwann zwischen 01:00 und 05:00 umschaltet. Die 
Uhr darf also einen mittleren täglichen Gang von 10min oder 0.7% haben.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> SW_Hans schrieb:
>> Ich denke einen Quarz braucht er nicht. Der interne Takt reicht hier
>> aus.
>
> Bestimmt nicht.
> 1% Fehler sind nach 24 Tagen schon 6 Stunden.

So sehe ich das auch. Wir wissen, dass die 2 % Fehler, die RS232 
toleriert, so einigermaßen vom internen Oszillator eingehalten werden, 
solange Spannung und Temperatur konstant sind.

von Peter D. (peda)


Lesenswert?

Marcel A. schrieb:
> Er hat
> je acht der LED's an einem LED-Treiber angeschlossen und dann halt davon
> drei stück auf der PLatine.

Welche LED-Treiber oder ist das geheim?

von Marcel A. (crazyma90)


Lesenswert?

Jörg W. schrieb:
> So sehe ich das auch. Wir wissen, dass die 2 % Fehler, die RS232
> toleriert, so einigermaßen vom internen Oszillator eingehalten werden,
> solange Spannung und Temperatur konstant sind.

okay also dioch lieber ein externer Oszillator. Soweit leuchtet mir das 
ein.

Peter D. schrieb:
> Welche LED-Treiber oder ist das geheim?

Ähm... ich habe so aus dem Stehgreif keine Ahnung dafür muss ich meinen 
Dad fragen der hat isch das ja ausgedacht xD

Es ist nichts hiervon geheim. Ich kenne die genauen Details nur nicht^^ 
Mein Dad und ich teilen uns die Arbeit an dem Projekt. er kümmert sich 
um die Hardware und ich schreibe das Programm. Ich versuche ihn mal zu 
erreichen und  an die Schaltpläne zu kommen. Vielleicht hilft das ja 
weiter^^

: Bearbeitet durch User
von Sigfried (Gast)


Lesenswert?

Marcel A. schrieb:
> Jörg W. schrieb:
>> So sehe ich das auch. Wir wissen, dass die 2 % Fehler, die RS232
>> toleriert, so einigermaßen vom internen Oszillator eingehalten werden,
>> solange Spannung und Temperatur konstant sind.
>
> okay also dioch lieber ein externer Oszillator. Soweit leuchtet mir das
> ein.

Oder direkt eine Realtime Clock nehmen, z.B. diese hier:

https://eckstein-shop.de/Raspberry-Pi-RTC-Module-DS3231
https://eckstein-shop.de/DS3231-RTC-Modul-LIR2032

Die läuft weiter auch wenn der Prozessor keine Power hat bzw. schläft. 
Die zweite davon kann auch einen Interrupt auslösen sobald eine 
Alarmzeit erreicht ist. Die erste müsste regelmäßig abgefragt werden, 
und dafür kann man dann den Watchdog Timer hernehmen.

von Marcel A. (crazyma90)


Lesenswert?

Sigfried schrieb:

> Oder direkt eine Realtime Clock nehmen, z.B. diese hier:
>
> https://eckstein-shop.de/Raspberry-Pi-RTC-Module-DS3231
> https://eckstein-shop.de/DS3231-RTC-Modul-LIR2032
>
> Die läuft weiter auch wenn der Prozessor keine Power hat bzw. schläft.
> Die zweite davon kann auch einen Interrupt auslösen sobald eine
> Alarmzeit erreicht ist. Die erste müsste regelmäßig abgefragt werden,
> und dafür kann man dann den Watchdog Timer hernehmen.

Das könnte klappen. Das heisst also die Uhr als Bespiel die Zweite die 
du verlinkt hast läuft und löst einen Interrupt für den Attiny aus und 
der kann darauf dann reagieren, richtig?

von Sigfried (Gast)


Lesenswert?

Marcel A. schrieb:
> Sigfried schrieb:
>
>> Oder direkt eine Realtime Clock nehmen, z.B. diese hier:
>>
>> https://eckstein-shop.de/Raspberry-Pi-RTC-Module-DS3231
>> https://eckstein-shop.de/DS3231-RTC-Modul-LIR2032
>>
>> Die läuft weiter auch wenn der Prozessor keine Power hat bzw. schläft.
>> Die zweite davon kann auch einen Interrupt auslösen sobald eine
>> Alarmzeit erreicht ist. Die erste müsste regelmäßig abgefragt werden,
>> und dafür kann man dann den Watchdog Timer hernehmen.
>
> Das könnte klappen. Das heisst also die Uhr als Bespiel die Zweite die
> du verlinkt hast läuft und löst einen Interrupt für den Attiny aus und
> der kann darauf dann reagieren, richtig?

Ja, das sollte so funktionieren. Ich kenne nur die aus dem ersten Link, 
und da ist aber der Interruptausgang des DS3231 Chips nicht 
herausgeführt. Am besten du schaust dir das Datenblatt des DS3231 mal 
an.

von HildeK (Gast)


Lesenswert?

Marcel A. schrieb:
> Das heisst also die Uhr als Bespiel die Zweite die
> du verlinkt hast läuft und löst einen Interrupt für den Attiny aus und
> der kann darauf dann reagieren, richtig?

Ja. Man stellt eine Alarmzeit ein - täglich um Mitternacht wäre nicht 
ganz falsch. 😀

Ich dachte auch zuerst an einen der genannten RTCs. Deren Gangablage 
beträgt ca. 1 Minute pro Jahr.
Datenblatt für den DS3231 gibt es hier: 
https://datasheets.maximintegrated.com/en/ds/DS3231.pdf
Dort siehst du auch, wie du ihn ansprechen kannst (I2C).
Aber das Hauptproblem ist das Stellen der aktuellen Urzeit bzw. des 
Datums. Ich habe mir dazu eine kleine Hilfsschaltung erstellt, die ich 
mit den Datenpulsen meiner DCF-Uhr versorgen kann und die dann die RTC 
auf die aktuelle Zeit einstellt.
Du kannst natürlich einmalig die gerade aktuelle Zeit hart in einen µC 
einkomplieren und den dann zum Stellen einmal starten. Dann musst du 
aber das 'Stellen' aus der SW wieder entfernen ....

Übrigens, die RTC-Module gibt es auch preiswerter - über Ama* oder eBa* 
aus Fernost. Z.B.: https://www.amazon.de/dp/B08XWS9J5G/ - wenn du bis 
April warten kannst ...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

HildeK schrieb:
> Du kannst natürlich einmalig die gerade aktuelle Zeit hart in einen µC
> einkomplieren und den dann zum Stellen einmal starten.

Er wollte ja damit leben, dass das Teil beim Einschalten mit dem 1. 
Dezember anfängt. ;-)

Aber du hast schon recht, eine zusätzliche Möglichkeit zum Stellen wäre 
so schlecht nicht, und wenn's halt 'ne serielle Verbindung zum PC ist. 
(Bekommt man V-USB auf einem ATtiny2313 zum Laufen? Weiß gerade nicht.)

von MaWin (Gast)


Lesenswert?

Marcel A. schrieb:
> Doch natürlich ich habe nämlich keinen Arduino hier. Ich habe einen
> AVRispMKII wie eingangs erwähnt.

Und das Brennen eines Arduino HEX files auf einen AVR überfordert dich ?

von Marcel A. (crazyma90)


Lesenswert?

Jörg W. schrieb:
> Er wollte ja damit leben, dass das Teil beim Einschalten mit dem 1.
> Dezember anfängt. ;-)
>
> Aber du hast schon recht, eine zusätzliche Möglichkeit zum Stellen wäre
> so schlecht nicht, und wenn's halt 'ne serielle Verbindung zum PC ist.
> (Bekommt man V-USB auf einem ATtiny2313 zum Laufen? Weiß gerade nicht.)

Das mt der RTC werde ich mal mit meinem Dad besprechen und fragen ob er 
sie unter bekommt. Ich denke aber schon. Ich glaube dass ich das auch 
programmiert bekomme. Danke auf jeden Fall für die Hilfe. Ich werde mich 
dann nochmal melden, falls es weitere Fragen gibt^^

MaWin schrieb:
> Marcel A. schrieb:
>> Doch natürlich ich habe nämlich keinen Arduino hier. Ich habe einen
>> AVRispMKII wie eingangs erwähnt.
>
> Und das Brennen eines Arduino HEX files auf einen AVR überfordert dich

Wusste nicht dass das eht aber naja gut ich mache es einfach weiter ganz 
in C. Dabei lerne ich dann auch noch mehr

von Stefan F. (Gast)


Lesenswert?

Der normale R/C Oszillator hat bei Raumtemperatur typischerweise bis zu 
2 Prozent Abweichung. Damit würde ich nicht glücklich werden.

Der Watchdog Oszillator ist noch sehr viel ungenauer. Ich meine mich an 
10% zu erinnern. Dafür nimmer er weniger Strom auf. Aber im Vergleich 
zur Stromaufnahme der LEDs scheint es mir unangebracht, hier auf 
einzelne Mikroampere zu schauen.

von Peter D. (peda)


Lesenswert?

Sigfried schrieb:
> Die läuft weiter auch wenn der Prozessor keine Power hat bzw. schläft.

Man könnte aber auch einen DCF-77 Modul dranpappen. Dann braucht man 
auch kein Display und Tasten zum Stellen.

von HildeK (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Der Watchdog Oszillator ist noch sehr viel ungenauer. Ich meine mich an
> 10% zu erinnern.

Ja, irgendwas in der Größenordnung.
Man könnte ja für den einen Baustein den 128kHz-Takt ausmessen und das 
in der WD-IRQ entsprechend korrigieren. Bei einigermaßen konstanter 
Temperatur könnte das vielleicht in die Toleranzgrenze des TO fallen, 
vielleicht auch nicht.

Marcel A. schrieb:
> Das mt der RTC werde ich mal mit meinem Dad besprechen und fragen ob er
> sie unter bekommt.
Fast am größten ist ja der Steckverbinder. Denn kann man auch ausbauen 
und mit Drähten direkt verbinden. Und den nicht angeschlossenen IRQ kann 
man leicht mit einem Fädeldraht auf den Steckverbinder legen, der 
scheint ja NC zu sein.

von W.A. (Gast)


Lesenswert?

HildeK schrieb:
> Übrigens, die RTC-Module gibt es auch preiswerter - über Ama* oder eBa*
> aus Fernost. Z.B.: https://www.amazon.de/dp/B08XWS9J5G/ - wenn du bis
> April warten kannst ...

Aus Fernost kommen die von Herrn Eckstein auch und bis Weihnachten ist 
doch noch ein bisschen Zeit. Bis die Software für die LED-Steuerung 
läuft, ist die RTC auch da. April ist eher großzügig gerechnet, falls 
sich über die Neujahrsfeierlichkeiten bei den Chinesen sich nicht zu 
viel aufgestaut hat.
;-)

von Martin V. (oldmax)


Angehängte Dateien:

Lesenswert?

Hi
Auch wenn du mit deinem Vater ein Gemeinschaftsprojekt machst, mußt du 
ein Schaltbild haben, um danach dein Programm aufzubauen. Ich hab mir 
mal die Mühe gemacht, mit wenig Aufwand eine brauchbare Schaltung zu 
skizzieren, um die Problematik auch gleich deutlich werden zu lassen. 
Der ATtiny hat genug Pins für dein Vorhaben. Aber, du kommst um eine 
geschickte Multiplexung nicht herum, da ja sicherlich auch noch Taster 
zur Eingabe für Datum und Zeit erforderlich werden. Du mußt hierbei 
darauf achten, das du das Datum nicht in den Port B schreibst, sondern 
in die Bits von Port D. Dann hast du 8 Gruppen mit jeweis 3 Tagen. Da du 
für die Taster bei zugeschaltetem PU-Widerstand eine gleichmäßige 
Abtastung nach GND brauchst, eignet sich der ULN2803 ganz gut, So 
bleiben dir die Anschlüsse für eine serielle Schnittstelle und sogar 
einen externen Quarz erhalten und du bekommst eine ziemlich genaue Uhr. 
Ich denke, wie Multiplexen funktioniert, ist dir geläufig, sonst schau 
mal ins Tutorial. Ich würd mir ein Zeitflag setzen, das in der 
Programmschleife abgefragt wird. Für den Multiplexer ist eine 
Fortschaltung der Anzeige mit 1ms ohne Flackern. Da dann auch die Taster 
mit der Zeit abgefragt werden, merkst du gar nicht, das du eine 
Tastermatrix benutzt. Da ich nicht in C programmiere, kann ich dir nur 
allgemein vorschlagen, wie es geht. Zuerst Eingänge lesen. Ok, du hast 
nur einen, also mußt du nachsehen, welche LED-Gruppe gerade angesteuert 
wird und dann den Eingang zuordnen. Dann bearbeitest du die 
Tasterereignisse, nachdem du sie entprellt hast. Sinn macht es, wenn du 
mit Zählern arbeitest, dir Flanken zu bilden. Also ein 
Tastendruckereignis zu erfassen, nicht den Taster. Ich setz mir dafür 
immer Eventbits, die ich dann bei der Bearbeitung wieder lösche. So wird 
auf jeden Tastendruck auch nur eine Aktion durchgeführt.
Für den Multiplexer baust du dir einen Wertepuffer, in dem du die Bits 
für die LEDs setzt. Ich nehme immer für jeden Kanal ein Byte, welches 
dann mit dem "Stellenzähler" adressiert und auf den Port geschrieben 
wird. Das ist nicht viel Programm und wird locker in einem Bruchteil 
einer ms erledigt. Aber bis zum Dezember hast du ja noch genug Zeit, 
dieses Projekt umzusetzen.
gruß oldmx

von Der müde Joe (Gast)


Lesenswert?

"Meine Aufgabe ist es einen ATTiny2313 so zu Programmieren dass er quasi 
pro Tag nur eine von 24 LED'S zum Leuchten bringt."

Da würde sich Charlieplexing gut anbieten, denke ich. Spart das 
ULN-Transistor-Array.

von Der müde Joe (Gast)


Lesenswert?

Viel rechnen muss das Teil ja nicht. Da böte es sich an, ganz einfach 
einen 32kHz-Uhrenquarz an die Kontakte XTAL1 und XTAL2 anzuschliessen.

von Percy N. (vox_bovi)


Lesenswert?

Der müde Joe schrieb:
> Viel rechnen muss das Teil ja nicht. Da böte es sich an, ganz einfach
> einen 32kHz-Uhrenquarz an die Kontakte XTAL1 und XTAL2 anzuschliessen.

Jörg W. schrieb:
> Leider hat der ATtiny2313 keine Möglichkeit, einen 32-kHz-Quarz
> anzuschließen, den man im Powersave-Modus weiter betreiben kann.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Der müde Joe schrieb:
> Da böte es sich an, ganz einfach einen 32kHz-Uhrenquarz an die Kontakte
> XTAL1 und XTAL2 anzuschliessen.

Der eingebaute Quarzoszillator ist aber nur für 0,4 MHz und höher 
spezifiziert.

Wenn, dann müsste man einen (externen) 32-kHz-Oszillator nehmen. Da kann 
man dann aber auch gleich einen schnelleren Quarz(oszillator) nehmen – 
Multiplexing würde ich mit so einem langsamen Takt nicht machen wollen. 
Das flimmert ja dann wie Sau.

: Bearbeitet durch Moderator
von Sebastian S. (amateur)


Lesenswert?

Wenn zwei Bedingungen erfüllt sind, kannst Du das Problem mit dem Quarz 
vergessen:
1. Das Teil soll nicht schon morgen gestartet werden.
   Bei der Laufzeit könnte der interne Zappler Probleme bereiten.
2. Um Mitternacht steht keiner vor dem Teil und will seine Uhr danach
   (Umschaltmoment) stellen.

von Percy N. (vox_bovi)


Lesenswert?

Jörg W. schrieb:
> – Multiplexing würde ich mit so einem langsamen Takt nicht machen
> wollen. Das flimmert ja dann wie Sau.

Man könnte die LEDs auch latchen.

von Wolfgang (Gast)


Lesenswert?

Percy N. schrieb:
> Man könnte die LEDs auch latchen.

Man könnte auch eine LED-Stripe mit WS2812 nehmen ...

von Joachim (Gast)


Lesenswert?

Da pro Tag nur eine LED leuchtet, ist, wie bereits mehrfach 
vorgeschlagen, die Verschaltung nach dem Charlieplexing eine gute 
Lösung.

Bleibt noch der Oszillator: Wie stabil ist er über die Zeit und der 
Temperatur. Ist er stabil genug, dann kann man das Feintunig der Zeit 
über den 16-Bit Timer machen. Da es bis zum Advent noch ein paar Tage 
sind, sollte der TO es einfach ausprobieren.

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> Man könnte auch eine LED-Stripe mit WS2812 nehmen ...

Wohl kaum, mit einem 32 KḱHz Takt kann man die unmöglich ansteuern.

von MaWin (Gast)


Lesenswert?

Wolfgang schrieb:
> Man könnte auch eine LED-Stripe mit WS2812 nehmen .

Man könnte auch ein TFT nehmen, dann leuchtet nicht nur ein Punkt, 
sondern die Tageszahl in fancy Schreibschrift.
Oder was einem sonst noch an overengineering einfällt ..

Marcel kann nichtmal eine LED leuchten lassen, da können wir froh sein, 
dass es noch 9 Monate hin sind.

Beitrag #6606723 wurde von einem Moderator gelöscht.
von Percy N. (vox_bovi)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wohl kaum, mit einem 32 KḱHz Takt kann man die unmöglich ansteuern.

24 LEDs, ein 24-bit Schieberregister, der 2313 darf mit einer Periode 
von 24 h takten ...

von Schlaumaier (Gast)


Lesenswert?

Kauf dir in China ein Uhr-Modul mit Batterie (Kosten ca. 4 Euro inkl. 
2032).
Dazu noch ein Arduino-Nano, eine Hand voll Widerstände und LED's. Und 
eine Stromversorgung. Das wars.

Stelle das Uhren-Teil 1 x von Hand und das war's.

Bei einen Neustart des Gerätes und alle X-Zeit fragst du Datum und 
Uhrzeit ab, und schaltest in einer einfachen Matrix-Schaltung (Spart 
Pins) die passenden LED's ein.

Fertig.

Kein großes Hexenwert.

Die Uhrzeit wird durch das Modul gestützt. Selbst wenn du den MC vom 
Strom trennst, läuft die Uhr intern weiter.

Ist eine kleine Loop-Schleife und das war's.

Je nach Schaltungstechnik 20-40 Zeilen Code.

von HildeK (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wolfgang schrieb:
>> Man könnte auch eine LED-Stripe mit WS2812 nehmen ...
>
> Wohl kaum, mit einem 32 ḱHz Takt kann man die unmöglich ansteuern.

WS2812 ist keine schlechte Idee. Da kann man sich auch in den Farben 
austoben.
Und 32kHz Takt ist auch nicht notwendig. Irgend eine 
Quarzoszillatorfrequenz (falls ohne RTC), die gut auf 1s teilbar ist, 
tut es auch. Sogar fast jede, denn höchste zeitliche Genauigkeit war 
nicht gefordert, ebenso wenig wie Strom sparen. Dann geht auch ein 
Tinyx5.

Für die 2812 gibt es SW-Beispiele 
(Beitrag "Lightweight WS2811/WS2812 Library"), bei der RTC bräuchte 
man I2C, auch da gibt es funktionierenden Code, z.B. von Fleury 
(http://www.peterfleury.epizy.com/avr-software.html?i=1).

von Schlaumaier (Gast)


Lesenswert?

Dumme Frage.

Wieso seit ihr so versessen auf den Takt. Wenn ich so ein Uhr-Modul (Typ 
DS-1302 bei ebay) nehme brauche ich doch nicht wirklich ein Takt.

Die Idee mit den WS2812 finde ich klasse. Dann braucht er nicht einmal 
eine Matrix und sollte es mit einen Atiny-85 hinbekommen.

von Schlaumaier (Gast)


Lesenswert?

Nachtrag :

Eine Zeit DATUM Programmierung bekommt man mit 1 besser 2 Tasten OHNE 
Display hin. Ist aber nicht einfach einen Dau zu erklären, wie sie 
funktioniert .)

von Sebastian S. (amateur)


Lesenswert?

Vergiss bei all Deiner Bastelei nicht, dass das Teil auch irgendwie 
gestartet werden muss.
Ist natürlich kein Problem, wenn Du das Teil genau am 1. Dezember um 
0:00 Uhr starten kannst. Zu allen anderen Zeiten geht das aber in die 
Hose.
Außer als Demo: "Genauso nicht" - ist das Teil dann bis zum nächsten 
Jahr unbrauchbar, natürlich wieder um 0:00 Uhr am 1. Dezember.

von Schlaumaier (Gast)


Lesenswert?

Sebastian S. schrieb:
> Ist natürlich kein Problem, wenn Du das Teil genau am 1. Dezember um
> 0:00 Uhr starten kannst. Zu allen anderen Zeiten geht das aber in die
> Hose.

Solange die Batterie hält ist das eh kein Problem , ansonsten wie 
geschrieben 1-2 Tasten und er kann sie neu stellen. Wenn er gut 
programmieren kann geht es mit 1 Taste und OHNE Display. ;)

von Sigfried (Gast)


Lesenswert?

Sebastian S. schrieb:
> Ist natürlich kein Problem, wenn Du das Teil genau am 1. Dezember um
> 0:00 Uhr starten kannst. Zu allen anderen Zeiten geht das aber in die
> Hose.
> Außer als Demo: "Genauso nicht" - ist das Teil dann bis zum nächsten
> Jahr unbrauchbar, natürlich wieder um 0:00 Uhr am 1. Dezember.

Es ist doch vollkommen egal welche Zeit die RTC intern gerade hat, da 
bei der aktuellen Aufgabe doch nur alle 24 Stunden eine weitere LED 
leuchten muss.

Sicher kann man die RTC auf die richtige Zeit einstellen, aber das ist 
nicht unbedingt notwendig. Wenn das Programm am 1. Dezember um 6 Uhr 
gestartet wird, geht die erste LED an, und wenn die zu diesem Zeitpunkt 
die interne Uhrzeit auf z.B. 7-Juni-1991 12:30 Uhr steht, dann muss das 
Program nur dafür sorgen, daß am 8-Juni-1991 12:30 Uhr die nächste LED 
angeht. Und wenn er keine Lust hat so früh aufzustehen, die LED aber 
doch um 6 Uhr angehen soll, dann muss man hat noch einen Zeitoffset 
vorsehen.

von Falk B. (falk)


Lesenswert?

Marcel A. schrieb:
> Meine Aufgabe ist es einen ATTiny2313 so zu Programmieren
> dass er quasi pro Tag nur eine von 24 LED'S zum Leuchten bringt.

https://www.mikrocontroller.net/articles/LED-Matrix#Charlieplexing

Beitrag #6606824 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

Bohrständer schrieb im Beitrag #6606824:
> Seit wann ist der 1. Advent eigentlich am 1.12.?

Du bist der erste, der das hier schreibt.

Der erste April ist aber erst in einem Monat. Der Joke passt noch nicht.

Beitrag #6606881 wurde von einem Moderator gelöscht.
Beitrag #6606883 wurde von einem Moderator gelöscht.
von Stefan F. (Gast)


Lesenswert?

Bohrständer schrieb im Beitrag #6606881:
> 1. Advent 2021: 28. November
> 2. Advent 2021: 5. Dezember
> 3. Advent 2021: 12. Dezember
> 4. Advent 2021: 19. Dezember

Das ändert alles nichts daran, dass der Adventskalender an, 1.12. 
beginnt und 24 Türchen hat.

Beitrag #6606931 wurde von einem Moderator gelöscht.
Beitrag #6606974 wurde von einem Moderator gelöscht.
von Percy N. (vox_bovi)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das ändert alles nichts daran, dass der Adventskalender an, 1.12.
> beginnt und 24 Türchen hat.

Nö, nur "bürgerliche".
https://de.wikipedia.org/wiki/Adventskalender

von Stefan F. (Gast)


Lesenswert?

Percy N. schrieb:
> Nö, nur "bürgerliche".

Welche 1903 eingeführt wurden. Sorry, an die zeit davor kann ich mich 
nicht mehr so gut erinnern.

Beitrag #6607308 wurde von einem Moderator gelöscht.
von m.n. (Gast)


Lesenswert?

Vielfach kann man hier den Eindruck bekommen, Schaltungsentwicklung ist 
ein reines Zusammenwürfeln von irgendwelchen CN-Bestellnummern. Eine 
einfache RTC muß dann auch gleich mit einem TCXO betrieben werden und 
Ansteuerung von LEDs geht nur im Multiplex mit passenden ICs.

Marcel A. schrieb:
> Das gute Stück soll später über eine eigene Stromversorgung
> betrieben werden

Falls hier an eine Netzversorgung gedacht ist, könnte man die 50 Hz als 
hinreichend genauen Takt benutzen.

Für Batteriebetrieb bietet sich ein 32,768 kHz Quarz mit CD4060 
Oszillator+Teiler an. Braucht kaum Strom, läuft zuverlässig und ist 
günstig.
Nächste Möglichkeit wäre ein PCF8583 (RTC) der ohne Initialisierung an 
einem Ausgang schon ein 1 Hz Taktsignal liefert. (Das Teil ist unnötig 
teuer, kann aber gerne gespendet werden ;-)
Oder auch ein PCF8563 mit 32,768 kHz. Falls es im Laufe der Entwicklung 
gewünscht wird, kann man auch deren Uhrenfunktion per IIC aktivieren und 
verwenden.

Für die Ansteuerung von 24 LEDs reichen 3 x 8-Bit Schieberegister CD4094 
oder 74HC4094, bei denen das Bitmuster nur einem in 24 h geändert werden 
muß. Die statische Ansteuerung ist einfach und erzeugt keine Störungen.

Zum Einlesen von Tastern/Schaltern reichen die freien Portpins des 
Tiny2313 aus.

Soweit mein Vorschlag, der vielleicht noch etwas Raum zum eigenen Lernen 
zuläßt.

von Percy N. (vox_bovi)


Lesenswert?

Stefan ⛄ F. schrieb:
> Welche 1903 eingeführt wurden. Sorry, an die zeit davor kann ich mich
> nicht mehr so gut erinnern.

Das heißt ja nicht, dass die traditionellen abgeschafft wurden. Es ist 
lediglich so, dass die konsumistische Internationale dazu übergegangen 
ist, industriell vorgefertigte Adventskalender im Handel zu erwerben, 
statt nach alter Sitte selbst welche herzustellen. In anderen Familien 
wurde diesem Trend nicht gefolgt.

Vielleicht liegt es daran, dass ich mich noch an angepasste 
Adventskalender erinnern kann, die regelmäßig ausgesprochen individuell 
bestückt waren.

von Marcel A. (crazyma90)


Lesenswert?

Hey Leute.

Ich habe gestern lange mit meinem Dad gesprochen. Wir haben uns dazu 
entschlossen einen 12Mhz Oszillator mit einzubauen. Der hat dann die 
benötigte Präzision.

Jetzt möchte ich nur zur Klärung noch Fragen:
Der ATtiny läauft ja (mit richtig gesetzten FUSES) mit dem Takt des 
Oszillators. Dann müsste ich doch eigentlich nur noch Timer1 (weil 16bit 
breit) richtig konfigurieren und kann den dann nutzen um alle 24h einmal 
einen Pin umzuschalten. Bin ich da auf dem richtigen weg?

von HildeK (Gast)


Lesenswert?

12MHz erscheint mir unnötig hoch. Es wird schon damit gehen, vermutlich 
auch mit dem 8-Bit-Timer.
Ich sinniere mal.
12 MHz, Prescaler 1024 gibt 11,72 kHz. Mit TOP max. 0xFFFF läuft der 
alle 5.6s über. Du brauchst einen Zähler, der die Überläufe zählt und 
bei ca. 15428 Überläufen ist dann ein Tag um.
Im Prinzip ist das auch mit dem Timer0 möglich, man muss nur weiter 
zählen.
Mit 1MHz Takt geht das aber auch.

Zum Pin umschalten: Du musst den auch wieder zurückschalten. D.h., nach 
einem halben Tag, also nach 7714 Überläufen ...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Man kann natürlich den Timer auch im CTC-Modus mit Zählwert 12000 
nutzen, dann hat man einen Umlauf pro Millisekunde. Den nutzt man zum 
Einen, um die Uhrzeit hochzuzählen¹), andererseits kann man das 
Multiplexen der LEDs mit diesem Takt schalten.

¹) Eine 32-Bit-Zahl läuft, wenn sie Millisekunden zählt, nach 49 Tagen 
über. Das war die Zeit, wo ein Windows95 nicht mehr bedienbar wurde, 
weil es keine Mausbewegung mehr erkannt hat. ;-) Für einen 
Adventskalender sollte das jedoch ausreichend sein.

von Marcel A. (crazyma90)


Lesenswert?

HildeK schrieb:
> 12MHz erscheint mir unnötig hoch.

Den hat mein Dad aber schon öfter genutzt und noch daheim.

HildeK schrieb:
> 12 MHz, Prescaler 1024 gibt 11,72 kHz. Mit TOP max. 0xFFFF läuft der
> alle 5.6s über. Du brauchst einen Zähler, der die Überläufe zählt und
> bei ca. 15428 Überläufen ist dann ein Tag um.
> Im Prinzip ist das auch mit dem Timer0 möglich, man muss nur weiter
> zählen.

Joa gut das ist schon klar^^ So ganz grundlegend bin ich aber auf dem 
richtigen weg. Es braucht ja keine RTC wenn ich das doch per Software 
machen kann^^

HildeK schrieb:
> Zum Pin umschalten: Du musst den auch wieder zurückschalten. D.h., nach
> einem halben Tag, also nach 7714 Überläufen .

Das würde ja dann innnerhalb der gleichen Funktion nach einem Delay 
passieren. So ist zumindest die Momentane Planung.

Danke für die Antworten schon mal. Das heisst aber wie schon gefragt:
Den Oszi integrieren, Fuses setzen und dann kann ich den Rest im Prgramm 
machen.

von HildeK (Gast)


Lesenswert?

Marcel A. schrieb:
> Danke für die Antworten schon mal. Das heisst aber wie schon gefragt:
> Den Oszi integrieren, Fuses setzen und dann kann ich den Rest im Prgramm
> machen.

Ja.
Und überlegen, wie du die Uhr stellst 😀.

Marcel A. schrieb:
> Den hat mein Dad aber schon öfter genutzt und noch daheim.

Ok. Man kann auch die Oszillatorfrequenz überhaupt mal um 256 teilen. 
Dann werden die Zählerstände kleiner; es führen viele Wege nach Rom ...

von Marcel A. (crazyma90)


Lesenswert?

HildeK schrieb:
> Ja.
> Und überlegen, wie du die Uhr stellst 😀.

die Uhr wird gestellt in dem man das ganze anschliesst. Zumindes im 
Moment noch. Ab dem Moment soll das Zählen beginnen. Und dann einfach 
einen Pin auf HIGH setzen eine halbe Sekunde warten und danach wieder 
ausschalten. Mehr ist es aktuell noch nicht.

von Peter D. (peda)


Lesenswert?

Kannst Du schon was genaueres über die schon fertige LED-Ansteuereung 
sagen (Schaltplan)?

Für 24 LEDs hätte sich auch gut ein MM5450 geeignet.

von Marcel A. (crazyma90)


Lesenswert?

Peter D. schrieb:
> Kannst Du schon was genaueres über die schon fertige LED-Ansteuereung
> sagen (Schaltplan)?

Den Schaltplan selbst darf ich leider nicht posten. Jedoch erfolgt die 
Ansteuerung der LED's wird komplett in der Schaltung realisiert. Ich 
brauche nur ein Ein- und Ausschalten eines Pins alle 24h.

von Peter D. (peda)


Lesenswert?

Marcel A. schrieb:
> Ich
> brauche nur ein Ein- und Ausschalten eines Pins alle 24h.

Klingt nach Schieberegister (3 * 74HC164). Deren Einschaltzustand ist 
allerdings unbestimmt. Man sollte daher auch noch den Resetpin oder 
Datenpin mit rausführen.

von MaWin (Gast)


Lesenswert?

Marcel A. schrieb:
> Den Schaltplan selbst darf ich leider nicht posten

Geil.

Bist du sicher, dass du nicht der totale Troll bist ?

So doof kann sich eigentlich niemand anstellen, bei der primitivsten 
Schaltung gleich nach Blink, das muss Absicht sein.

Übrigens wurde Schaltung und Programm schon gepostet, alle 100 weiteren 
Beiträge dienten nur der künstlichen Verkomplizierung des Problems.

Du musst Betriebswirtschaft studieren. Bei den heutigen Schlipsträgern 
und Anzugständern ist eine einfache und schnelle Problemlösug nicht 
erwünscht, kostet es doch Monate satten Gehalts, wenn ein Problem 
vorzeitig und womöglich zur Zufriedenheit des Auftraggebers gelöst wird. 
Unser Land lebt mittlerweile davon, Probleme zu züchten und zu 
verwalten, anstatt sie erfolgreich zu lösen.

von Marcel A. (crazyma90)


Lesenswert?

Peter D. schrieb:
> Klingt nach Schieberegister (3 * 74HC164). Deren Einschaltzustand ist
> allerdings unbestimmt. Man sollte daher auch noch den Resetpin oder
> Datenpin mit rausführen.

Sind aber nur noch zwei^^ Zum Einschaltzustand muss ich mal bei meinem 
Dad nachfragen.

MaWin schrieb:
> Geil.
>
> Bist du sicher, dass du nicht der totale Troll bist ?
>
> So doof kann sich eigentlich niemand anstellen, bei der primitivsten
> Schaltung gleich nach Blink, das muss Absicht sein.

Ganz sicher nicht. ich bin nur völliger Anfänger und mache das ganze zum 
Spaß. Solche Kommentare kannst du dir echt schenken.

von Internet of Shit (Gast)


Lesenswert?

Marcel A. schrieb:
> Den Schaltplan selbst darf ich leider nicht posten.

Das riecht schon sehr nach Hausaufgabe oder ähnlichem, damit der Lehrer 
dann nicht per Bilder Rückwärtssuche auf den Thread stößt...

Hinter der Schaltung kann nun wirklich kein großes zu schützendes Wissen 
stecken...

von Marcel A. (crazyma90)


Lesenswert?

Internet of Shit schrieb:
> Das riecht schon sehr nach Hausaufgabe oder ähnlichem, damit der Lehrer
> dann nicht per Bilder Rückwärtssuche auf den Thread stößt...

Klar riecht es dananch ist es aber nicht.

Internet of Shit schrieb:
> Hinter der Schaltung kann nun wirklich kein großes zu schützendes Wissen
> stecken...

Ma ja sein aber mein Vater hat mich extra darum gebeten es nicht zu tun. 
Und daran halte ich mich.

von Stefan F. (Gast)


Lesenswert?

Marcel A. schrieb:
> Bin ich da auf dem richtigen weg?

Ja ich denke schon. Nur kann der Timer nicht so weit Zählen. Du wirst 
eine Interrupt-Handler schreiben müssen, der die Unterbrechungen zählt.

von Marcel A. (crazyma90)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ja ich denke schon. Nur kann der Timer nicht so weit Zählen. Du wirst
> eine Interrupt-Handler schreiben müssen, der die Unterbrechungen zählt.

Naja gut das war mir aber klar^^ wie ich dann die Berechnungen 
ausgestalte muss ich dann schauen aber vielen Dank für die Hilfe^^

von Schlaumaier (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ja ich denke schon. Nur kann der Timer nicht so weit Zählen. Du wirst
> eine Interrupt-Handler schreiben müssen, der die Unterbrechungen zählt.

Und das alles um 3 Euro zu sparen.  cool.

von Marcel A. (crazyma90)


Lesenswert?

Schlaumaier schrieb:
> Und das alles um 3 Euro zu sparen.  cool.
Und? Man kann sein Projekt doch so umsetzen wie man es selbst für 
Richtig hält. Naja ich habe die Antworten die Ich brauchte um 
weitermachen zu können. Vielen Dank nochmal an alle^^

von Stefan F. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Und das alles um 3 Euro zu sparen.  cool.

Erstmal ist das Schreiben einer ISR kein Hexenwerk. Wer dafür zu faul 
ist, sollte es ganz lassen, µC zu programmieren.

Zweitens hat der TO seine Motivation genannt: Mit Bauteilen auskommen, 
die vorrätig sind. Zeit und Versandkosten bekommt man nicht geschenkt.

von Schlaumaier (Gast)


Lesenswert?

Wie schon gesagt, ich find es cool. Bloß mich würde ein möglicher 
Stromausfall nerven. Das ist alles.

von Marcel A. (crazyma90)


Lesenswert?

Schlaumaier schrieb:
> Wie schon gesagt, ich find es cool. Bloß mich würde ein möglicher
> Stromausfall nerven. Das ist alles.

Habe ja auch recht weit oben erwähnt dass das durchaus ein guter hinweis 
ist^^ Er soll auch nicht unbeachtet bleiben sondern nur fürs erste 
wollen wir das ding ans laufen kriegn dann kümmern wir uns um solche 
details.

von Stefan F. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Bloß mich würde ein möglicher Stromausfall nerven.

Dann wir Weihnachten halt verschoben, das ist technisch gar kein 
Problem :-)

von Marcel A. (crazyma90)


Lesenswert?

Stefan ⛄ F. schrieb:
> Dann wir Weihnachten halt verschoben, das ist technisch gar kein
> Problem :-)

So hat man dann auch mehr Zeit geschenke zu organisieren^^

von Georg B. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Wie schon gesagt, ich find es cool. Bloß mich würde ein möglicher
> Stromausfall nerven. Das ist alles.

Wie wäre es mit einem einfachen Taster mit dem der Tag zusätzlich 
hochgezählt werden kann, im Falle eines Neustarts des Controllers?

von Schlaumaier (Gast)


Lesenswert?

Georg B. schrieb:
> Wie wäre es mit einem einfachen Taster mit dem der Tag zusätzlich
> hochgezählt werden kann, im Falle eines Neustarts des Controllers?

Wäre eine Lösung für den TO. Aber nicht für mich. Ich wechsele alle 1-2 
JAHRE mal die Batterie. Bei einen Adventskalender baue ich die aus und 
die sollte locker Jahre halten.

Ich steck die Batterie wieder rein und max. 2 Minuten Später ist das 
Teil Ordnungsgemäß aktiv.  Ich muss nur die Uhr neu stellen. Dazu 
brauche ich EINEN Taster, wenn ich zu faul zum Coden bin, dürfen es auch 
mehr sein. Aber einer reicht.

Aber ein Taster reicht. Damit kann ich Uhrzeit (Minutengenau)  + Datum 
(inkl. Jahr wenn nötig) einstellen. Und wie oben mal erwähnt, brauche 
ich dazu nicht einmal ein Display. Die 24 LED's reichen völlig aus.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Marcel A. schrieb:
> So hat man dann auch mehr Zeit geschenke zu organisieren^^

Das musst Du dann noch Deinen Vater rechtzeitig beibringen, wenn der 
Kalender noch mal startet und von vorne anfängt zu zählen.

D.h. da muss noch eine Schummelsoftware auf den µC (wäre ja sonst nicht 
auf dem aktuellen technisch-betriebswirtschaftlichen Stand), die beim 
Testen der Verstellfunktion die ersten Tage noch geht, aber danach nicht 
mehr oder noch besser, gar keine Taste oder Kontakt zum Stellen 
vorsehen. Ganz professionell wäre die Messung der Versorgungsspannung 
und ein bestimmtes Spiel der Spannungsänderungen bewirkt die 
Umschaltung. ;o)

von Martin V. (oldmax)


Lesenswert?

Hi

Marcel A. schrieb:
> Ma ja sein aber mein Vater hat mich extra darum gebeten es nicht zu tun.
> Und daran halte ich mich.
Nun, das ist für eine so banale Anwendung aber äußerst merkwürdig. Nicht 
umsonst habe ich eine Schaltung skizziert und hier veröffentlicht, um 
nicht nur dir, sondern auch anderen Lesern evtl. eine Hilfe zu geben. 
Und dein Vater hat Angst, seine Schaltung offenzulegen, möchte aber von 
dir und über dich vonn der Forengemeinde ein Programm für eine 
unbekannte Schaltung? Sorry, egoistischer gehts wirklich nicht. Ich will 
Hilfe, bin aber nicht bereit, etwas von mir beizutragen. Das ist das, 
was ich so mag. Bestell deinem Vater mal einen lieben Gruß, er soll sein 
Geheimnis behalten, denn in diesem Forum sind 95% in der Lage, sich 
selbst Schaltungen auszudenken. Und wenn er Sorge hat, wir würden seine 
Schaltung nur bemäkeln, gut, ist nicht auszuschließen, aber der ein oder 
andere Hinweis auf Schwächen einer Schaltung hat noch niemandem 
geschadet. Im Gegenteil, aber letztendlich ist es ja auch wurscht und 
der Wille deines Vaters, das Geheimnis zu wahren.
Marcel A. schrieb:
> Und? Man kann sein Projekt doch so umsetzen wie man es selbst für
> Richtig hält.
Kann man, aber dann sollte man nicht die Hilfe einer Community suchen. 
Diese versucht immer, das Optimale aus der eigenen Ansicht zu vertreten. 
Entweder, du bist lernfähig und erkennst an der ein oder anderen Stelle 
besser einsetzbare Vorgehensweisen, oder du wirst hier eben schnell mal 
als Troll bezeichnet. Zumal du dich selbst als totalen Anfänger 
bezeichnest.Ich beziehe das auch mal aufs Programmieren. Da ist es egal, 
welche Sprache du sprichst, eine klare Gliederung im Aufbau ist das A 
und O. Mir ist noch kein Anfänger begegnet, der sofort eine Aufgabe in 
viele kleine Einzelschritte zerlegen und strukturiert abarbeiten konnte.

Marcel A. schrieb:
> MaWin schrieb:
>> Geil.
>>
>> Bist du sicher, dass du nicht der totale Troll bist ?
>>
>> So doof kann sich eigentlich niemand anstellen, bei der primitivsten
>> Schaltung gleich nach Blink, das muss Absicht sein.
>
> Ganz sicher nicht. ich bin nur völliger Anfänger und mache das ganze zum
> Spaß. Solche Kommentare kannst du dir echt schenken.

Wunderst du dich über solche Antworten? Dann mußt du noch viel lernen. 
Wer sich im Internet so öffentlich darstellt, fordert es geradezu heraus 
und das Auftreten einer beleidigten Leberwurst macht es dann komplett.
Du solltest dich mal hier bei mir vor den Monitor setzen  und die Texte 
Lesen, so als wärest du dir völlig unbekannt. Na, zu welchem Schluß 
würdest du kommen?
gruß oldmax

von Peter D. (peda)


Lesenswert?

Das mit dem Zählimpuls hat den großen Nachteil, daß bei Störimpulsen die 
LEDs weiterschalten, ohne daß der MC das mitkriegt.
Führt man den Reset mit, dann kann der MC die LEDs zyklisch refreshen. 
Das kurze Dunkeltasten merkt man nicht.
Bzw. beim MM5450 kann man ständig im Hintergrund refreshen, da er ein 
Latch hat. Braucht auch nur 2 Pins zum MC.

Dann kann der Hausmann daneben staubsaugen, ohne das der Kalender 
verrückt spielt.

von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> beim MM5450

Wenn es schon ein großer Käfer sein soll, dann doch gleich einen 
ATmega32 o.ä., der genug freie Ausgänge für LEDs hat.
Ich hätte dafür auch eine Schaltung, die ich aber nicht zeigen darf ;-)

von Schlaumaier (Gast)


Lesenswert?

m.n. schrieb:
> Wenn es schon ein großer Käfer sein soll, dann doch gleich einen
> ATmega32 o.ä., der genug freie Ausgänge für LEDs hat.
> Ich hätte dafür auch eine Schaltung, die ich aber nicht zeigen darf ;-)

Oder so. Hier ein Bauteilliste für faule :

1 x Atiny-85 (oder ähnliches: Ich würde eh Arduinos.Nano fertig nehmen, 
da spare ich mir den Programmer und die Fummelei. Davon abgesehn habe 
ich mal 10 Stk. in China gekauft (Preis unter 2 Euro).

1 x pcf8574 (Ansteuerung LED 1-8)
(Bei Austausch gegen pcf8475 + 7 LED's mit Wiederstand kann man sogar 
ein ewigen Kalender machen.)

1 x pcf8475 (Ansteuerung LED 9-24)

24 LED + Widerstände

1 x 1302 (Platinchen) + CR2032 (Erledigt die Uhrzeit und sichert sie bei 
Stromausfall der Schaltung).

1 Taster (Zum Programmieren der Uhrzeit beim Wechsel der Batterie).

+ Stromquelle

reichen völlig. Und sind sogar kinderleicht zu programmieren bzw. zu 
verdrahten.

*Einfach gesagt ideal für Anfänger.*

Mehr braucht man nicht und man kann sogar ohne extra Hardware die Zeit 
einstellen, wenn man die Batterie austauscht.

Beitrag #6609812 wurde von einem Moderator gelöscht.
von Peter D. (peda)


Lesenswert?

Ratgeber schrieb im Beitrag #6609812:
> und die anderen 4 heben die Kuh hoch und runter

Na klar, 200kg hebst Du mit dem kleinen Finger an.

von Marcel A. (crazyma90)


Lesenswert?

Hey Leute.

Zunächst einmal nochmal vielen Dank für die Zahlreichen (mehr oder 
weniger) konstruktiven Beteiligungen.

Ich werde auf jeden Fall versuchen so viel davon wie möglich in die 
Entwicklung einfließen zu lassen, denn vieles ist wirklich sinnvoll. Ich 
bin wirklich froh dass ihr euch die Mühe gemacht habt und zu helfen.
Leider kann ich nicht alles zitieren was ich gerne würde um auf alles zu 
antworten.

Dass eine Community IMMER versucht das Optimum rausholen halte ich für 
übertrieben. Aber diese tut das auf jeden Fall. Und das finde ich echt 
cool von euch.

Letzten Endes werden wir (mein Dad und ich) uns aber nochmal hinsetzen 
müssen um die ganzen Sachen die hier angemerkt wurden zumindest zu 
prüfen ob sie nötig sind. Fürs erste denke ich dass ich mich selbst mehr 
in die Entwicklung der Hardware einbringen werde um darauf aufbauend die 
Software besser planen zu können.

Und ja ich bin blutiger Anfänger was solche Projekte angeht aber ich bin 
immer gewillt zu lernen.

Naja das sollte erstmal alles gewesen sein. Danke nochmal an alle 
Beteiligten und wie es weiter geht sehen wir Mal^^

von Schlaumaier (Gast)


Lesenswert?

Mach es einfach wie die Regierung beim BER.

Dann kannst du sagen, du machst es wie die großen Jungs. ;)

von Marcel A. (crazyma90)


Lesenswert?

Schlaumaier schrieb:
> Mach es einfach wie die Regierung beim BER.
> Dann kannst du sagen, du machst es wie die großen Jungs. ;)

Ist halt die Frage ob man das sagen können will xD Naja belassen wir es 
einfach dabei^^

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.