Forum: Mikrocontroller und Digitale Elektronik Erste Gehversuche mit µcs: Eine Eieuhr


von Vogel S. (vogelscheuche)


Angehängte Dateien:

Lesenswert?

Hallo Forum,
bin noch Anfänger mit µcs und deren Schaltplänen, also bitte nicht zu 
viel erwarten.

Ich bin gerade dabei eine Eieruhr zu basteln und habe dafür schon meinen 
ersten Schaltplan erstellt.
Schaut euch doch bitte den Schaltplan im Anhang an und sagt, ob man was 
verbessern könnte, bzw., ob was falsch ist.

Die Funktionsweise sollte später folgende sein:
Der ATTiny2313 wird von einer 3V-Knopfzelle betrieben und steuert die 5 
Schieberegister, welche jeweils 8 LEDs steuern. Die zwei 4x5 LEDs zeigen 
jeweils eine Zahl in einer 'pixelfont' an (wie bei manchen 
LED-Displays).
Mit Sensoren sollte der µc aber erst später verbunden werden, da ich 
vorher einen simplen Countdown realisieren will.
Geht der Kreislauf mit 3V Spannung?

Das Kaskadieren habe ich wie hier 
(AVR-Tutorial: Schieberegister: Kaskadieren von Schieberegistern) 
empfohlen nachempfunden. Ich hoff, dass ich dabei keine Fehler gemacht 
habe.
Leider ist das AVR-Tutorial komplett in ASM. Da ich leider bis jetz nur 
C gelernt habe, kann ich das Script nicht nachvollziehen und der 
folgende Hinweis für die Softwareseite ist mir auch nicht ganz klar:
"Um diese weiteren Register zu nutzen, muss man in der reinen 
Softwarelösung nur mehrfach die Funktion Schiebe aufrufen, um alle Daten 
auszugeben. Am Ende werden dann mit SchiebeOut die Daten in die 
Ausgangsregister übernommen."
Was heisst 'mehrfach' genau? Wäre nett, wenn mir das jemand noch 
verdeutlichen könnte.
Und kann mir jemand sagen, wie man den AT90S2313P in Eagle in einen 
ATTiny2313 verwandeln kann?

Danke schonmal fürs Durchlesen

EDIT:
Das ganze sollte sich später auf einer runden Platine mit Durchmesser 
5,7cm und Höhe von 0,9cm abspielen.
Hat jemand Empfehlungen zu platzsparenderen Teilen?

von holger (Gast)


Lesenswert?

Eine CR2032 für 40 LEDs ist doch wohl nicht dein Ernst?

>Die zwei 4x5 LEDs zeigen jeweils eine Zahl in einer 'pixelfont'
>an (wie bei manchen LED-Displays).

Nimm zwei 7 Segment Anzeigen. Spart Strom.

>Hat jemand Empfehlungen zu platzsparenderen Teilen?

Multiplexen? Ein ULN2803 und ein UDN2981.

von Kachel - Heinz (Gast)


Lesenswert?

> Was heisst 'mehrfach' genau?

Die Routine klappert 8 Bit mit zugehörigem Takt raus. Diese landen im 
ersten Schieberegister.

Wird die Routine (vor dem Erzeugen des Übernahme-Impulses) erneut 
aufgerufen, dann werden weitere 8 Bit herausgeschoben, wobei die zuerst 
geschobenen Bits aus dem ersten Schieberegister in das zweite 
Schieberegister geschoben werden.

Wird die Routine ein drittes mal aufgerufen, dann landet das erste Byte 
im dritten Schieberegister, und so weiter.

Du musst also für jedes kaskadiert angeschlossene Schieberegister ein 
Byte senden (also die Routine zum Senden eines Bytes aufrufen), ehe Du 
die Daten mittels Strobe in die Ausgangslatches der Schieberegister 
übernimmst.

Also 3 Schieberegister erfordert 3 Aufrufe (mit 3 verschiedenen 
Datenbytes), 5 erfordert 5 und 8 erfordert 8 Aufrufe vor dem Erzeugen 
des Strobe-Impulses.

KH

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Vogel Scheuche schrieb:
> Hallo Forum,
> bin noch Anfänger mit µcs und deren Schaltplänen, also bitte nicht zu
> viel erwarten.

> Ich bin gerade dabei eine Eieruhr zu basteln und habe dafür schon meinen
> ersten Schaltplan erstellt.

Das GND-Natz kannst du an mehreren Stellen an das GND-Symbol ranhängen. 
Eagle erkennt, daß es das gleiche Netz. Dadurch kannst du Verbindungen 
im Schaltplan-Zeichnung entfernen. Das unübersichtliche GND-Netz 
irritiert dann nicht so im Schaltplan und es bleiben wesentlichere Dinge 
über wie die Signalleitungen.

> Schaut euch doch bitte den Schaltplan im Anhang an und sagt, ob man was
> verbessern könnte, bzw., ob was falsch ist.
>
> Die Funktionsweise sollte später folgende sein:
> Der ATTiny2313 wird von einer 3V-Knopfzelle betrieben und steuert die 5
> Schieberegister, welche jeweils 8 LEDs steuern. Die zwei 4x5 LEDs zeigen
> jeweils eine Zahl in einer 'pixelfont' an (wie bei manchen
> LED-Displays).
> Mit Sensoren sollte der µc aber erst später verbunden werden, da ich
> vorher einen simplen Countdown realisieren will.
> Geht der Kreislauf mit 3V Spannung?

Der ATtiny2313 geht bis 1.8V IIRC, allerdings solltest du bedenken, daß 
die Spannungsquelle nen Innenwiederstand hat, bei Belastung also in die 
Knie geht und auch Spannung über den LED-Treibern abfällt.

Mit ner CR2032 hast du wahrscheinlich nicht soo lange Spaß...

Ne Teilschaltung davon lässt sich gut auf nem Steckbrett testen, das 
erspart Frust wenn ne fertige Platine nicht funzt, weil man was 
übersehen hat. Fehler aufm Steckbrett sind besser korrigierbar als in 
Cu+Pertinax.

Steckbretter kosten ein paar Kröten, sind aber immer wieder einsetzbar.

> Das Kaskadieren habe ich wie hier
> (AVR-Tutorial: Schieberegister: Kaskadieren von Schieberegistern)
> empfohlen nachempfunden. Ich hoff, dass ich dabei keine Fehler gemacht
> habe.

Du solltest die ICs abblocken mit 100nF KerKos, ausserdem könntest du 
die Hardware-SPI nutzen, das ist einfacher, schneller und 
Resourcensparender als die Soft-Variante.
   http://www.roboternetz.de/wissen/index.php/Portexpander_am_AVR

> Und kann mir jemand sagen, wie man den AT90S2313P in Eagle in einen
> ATTiny2313 verwandeln kann?

DU kannst die Bibliothek ändern oder erweitern, also der AT90S2313 
kopieren in einen ATtiny2313 und dann die Änderungen vornehmen, die du 
brauchst. Ist aber etwas blöd die Lib's zu ändern wenn man ne neue 
Version von Eagle zieht. Also besser ne eigene Bibliothek anfangen mit 
eigenem Zeug oder bei Cadsoft nachschauen, da gibt's was mit AVRs.
>
> Danke schonmal fürs Durchlesen
>
> EDIT:
> Das ganze sollte sich später auf einer runden Platine mit Durchmesser
> 5,7cm und Höhe von 0,9cm abspielen.
> Hat jemand Empfehlungen zu platzsparenderen Teilen?

Vielleicht ein ganz anderes Design mit einer 5*8 Matrix, die im 
Multiplex angesteuert wird. Das braucht weniger Widerstände und Treiber, 
allerdings 13 Ports am µC anstatt bisher 3 für den SPI-Bus.

Auf jeden Fall mindestens high Efficiency-LEDs nehemn, auch wenn die 
teurer sind als Low-Current. Angenehm sind große Öffnungswinkel, damit 
die Helligkeit nicht so stark vom Betrachtungswinkel abhängt.

Mit der Farbe kommst du bei 3 Volt kaum unter 560 nm, also bleiben als 
Farben blassgrün, orange, amber/gelb und rot.

Johann

von Vogel S. (vogelscheuche)


Lesenswert?

holger schrieb:
> Eine CR2032 für 40 LEDs ist doch wohl nicht dein Ernst?
>
> Nimm zwei 7 Segment Anzeigen. Spart Strom.

Hab ich vorher vergessen zu sagen, aber ich brauche sehr helle LEDs, die 
durch dünne Plastikwände durchscheinen können (habe eine 
Beispielanimation in den Anhang). Leider weiss ich nicht mehr, was für 
genaue Leistungsmerkmale die LEDs haben, die ich gekauft habe.

> Multiplexen? Ein ULN2803 und ein UDN2981.
Danke! Werde mich gleich mal in das Thema Multiplexen einlesen, da ich 
das noch nicht behandelt habe.

Danke, Kachel - Heinz. Die Erklärung ist perfekt nachvollziehbar.

Vielen Dank Johann, ich werde die vielen Ratschläge beim nächsten Anlauf 
in Eagle alle befolgen.
Ich verstehe nur leider nicht, was KerKos sind und konnts auch nicht 
ergooglen.
> Du solltest die ICs abblocken mit 100nF KerKos

Ich kann nun leider nicht auf die vielen, hellen LEDs verzichten.
Welcher Batterietyp wäre denn nun geeignet für 40 Stück?
Mein Problem ist, dass das Batteriefach wohl nur eine einzelne Batterie 
aufnehmen kann, da es nur 2cm Durchmesser und 0,7cm Höhe haben darf.

von Vogel S. (vogelscheuche)


Angehängte Dateien:

Lesenswert?

Entschuldigung für den Doppelpost. Habe den Dateianhang leider 
vergessen.

von Mark (Gast)


Lesenswert?

>Ich verstehe nur leider nicht, was KerKos sind und konnts auch nicht
>ergooglen.

Keramische Kondensatoren.
Wenn du allerdings selbst das nicht weißt, dann sehe ich schwarz für 
dein Projekt. Diese Frage ist etwa so, als würde jemand sagen: "Ich 
würde gerne Auto fahren, ich verstehe nur leider nicht was ein Lenkrad 
ist und konnts auch nicht ergooglen."

Übrigens, die Unfähigkeit, google bedienen zu können, spricht auch nicht 
gerade für dich. Google liefert tausende von Ergebnissen, das erste 
liefert sogar gleich eine hervorragende Erklärung: 
http://www.google.de/search?hl=de&q=kerko

von Vogel S. (vogelscheuche)


Lesenswert?

Tut mir leid, dass ich mit den Abkürzungen noch nicht so vertraut bin.
Muss dir recht geben, dass ich zu kurz gegooglet hab und voreilig hier 
reingeschrieben, weil ich gleich auf Ergebnis 2 los bin 
(mikrocontroller.net) und mich da festgefahren. Wäre wohl schneller 
gewesen auf der Seite zu schauen.
Trotzdem danke für die Antwort.

von Axel K. (axel)


Lesenswert?

Am besten wäre doch das Multiplexen nur über den µC?  40 LED s sind 
überhaubt kein Problem.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Vogel Scheuche schrieb:

> Ich kann nun leider nicht auf die vielen, hellen LEDs verzichten.
> Welcher Batterietyp wäre denn nun geeignet für 40 Stück?
> Mein Problem ist, dass das Batteriefach wohl nur eine einzelne Batterie
> aufnehmen kann, da es nur 2cm Durchmesser und 0,7cm Höhe haben darf.

hmm... Ich würd sagen ne Plutonium-Zelle? ;-)

Einfach mal hochrechnen: Betriebsdauer * # brenneder LEDs (Schnitt) * 
Strom/LED ergibt was in der Einheit Ampère*Sekunde, was dargestellt in 
mAh ne Vorstellung für die Größenordnung der Akkukapazität gibt.

Johann

von holger (Gast)


Lesenswert?

>Hab ich vorher vergessen zu sagen, aber ich brauche sehr helle LEDs, die
>durch dünne Plastikwände durchscheinen können (habe eine

Was soll denn der Unsinn mit diesem Spackengehäuse?
Selbst wenn du LEDs findest die hell genug sind
wirst du durch ein halbdurchsichtiges Gehäuse nichts
mehr erkennen können. Da verschwimmt doch alles.

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.