MCU + LEDs + Motor = Propelleruhr

#2395165
Lesenswert?

Hallo Ihr Lieben :)

Im Zuge eines Studienabschlussprojektes, möchten wir eine Propelleruhr 
bauen.
Natürlich ist eine Propelleruhr nichts neues, dennoch möchten wir nichts 
fertiges nehmen, sondern etwas (halbwegs) eigenes Entwickeln.

Die Idee wurde eingereicht, die Dozenten finden die Idee gut und haben 
grünes Licht gegeben. :D

Obwohl die Idee der Propelleruhr nicht neu ist, sind die Informationen, 
die man zu bestimmten Punkten findet, eher schlecht bis sch****.

Wenn ich einmal an einem Problem hänge, werde ich hier nach und nach das 
Problem schilder und hoffe das Ihr den ein oder anderen guten 
Denkansatzt habt.

Über brauchbare Informationen bin ich Euch in jedemfalle sehr dankbar. 
:-)

So, fangen wir mal an...

Zur Ausführung der Platine:
Nach Möglichkeit wollen wir SMD-Lötarbeit vermeiden, da wir darin keine 
erfahrunbg haben.
Somit planen wir, soweit möglich, ICs mit DIL-Gehäuse zu verwenden, da 
wir dort einfache IC-Sockel nehmen können. Dies bringt natürlich einige 
einschränkungen mit sich, wie z.B. die verfügbaren Pins am Controller.

Und damit sind wir schon beim 1. Thema, wo ich ein paar verständnis 
Fragen habe: Der Mikrocontroller
Als Mikrocontroller wollen wir einen Atmel nehmen, welchen genau ist 
noch nicht klar.

Als Beispiel nehmen wir hier mal den: ATmega644P (PDIP)

Der Controller hat 40 Pins. Soweit ich das Datenblatt verstehe, hat er 
32 Pins(PortA0...7, PortB0...7, PortC0...7, PortD0...7) die ich frei als 
In- oder Output definieren kann, richtig?

Um auf der Platine Platz zu sparen wollten wir die passende Spannung für 
die LEDs per PWM vom Controller bereitstellen, somit brauchen wir keine 
vorwiderstände.
Könnten wir jetzt über jeden der 32 Pins, vom Controller, ein PWM Signal 
rausschiken, oder ist die PWM-Funktion auf einzelne Pins beschränkt?

Das solls erstmal gewesen sein für den Anfang. Falls etwas 
unverständlich ist, einfach nachfragen. Ich werde euch auch über 
ergebnisse auf dem Laufenden halten.

Brauchbare Hilfe ist immer gern gesehen. :-)

Bis dann, und freundliche Grüße
#2395185
Lesenswert?

ja, ok... der einwand ist berechtigt.

Aber nochmal zum verständnis bitte:
Soweit ich PWM verstanden habe, wird aus einer gleichspannung eine 
Rechteckspannung gemacht. Und aus dem Verhältnis von "Eingeschalteter 
Spannung" zu "Ausgeschalteter Spannung" ergibt sich dann der neue 
mittelwert der Spannung. Das heist für mich, das an der LED nur noch der 
neue Mittelwert der spannung anliegt (ich würds jetzt mal mit einer 
Sinusspannung vergleichen, wo ja auch nur der effektiv Wert zählt.) ...
oder bin ich jetzt voll auf dem Holzdampfer? :(
Gast #2395216
Lesenswert?

Ne, du spartst mit PWM kein Strom. Du kannst damit die Helligkeit deiner 
LED steuern. Die blinkt dann so schnell, dass deine Augen und dein Hirn 
das als gleichmäßiges leuchten wahrnehmen. Und wie du oben schon richtig 
beschrieben hast, veränderst du jetzt die Anteile von An und 
Aus.(Rechtecksignal)

Wenn du die LED jetzt nur die hälfte der Zeit anlässt, verbrauchst du 
auch nur die Hälfte an Energie. Den gleichen Effekt kannst du aber auch 
mit einem größeren Vorwiderstand erzielen. Der Vorteil von PWM ist halt, 
dass es vom Controller gesteuert wird und du die Helligkeit in der 
Software beeinflussen kannst.
#2395296
Lesenswert?

@  Kaj-Sören G. (wulf87)

>Obwohl die Idee der Propelleruhr nicht neu ist, sind die Informationen,
>die man zu bestimmten Punkten findet, eher schlecht bis sch****.

Kaum. Ihr sein nur zu faul oder zu dämlich zum suchen.

>Als Beispiel nehmen wir hier mal den: ATmega644P (PDIP)

Kann man nehmen.

>Der Controller hat 40 Pins. Soweit ich das Datenblatt verstehe, hat er
>32 Pins(PortA0...7, PortB0...7, PortC0...7, PortD0...7) die ich frei als
>In- oder Output definieren kann, richtig?

Ja.

>Um auf der Platine Platz zu sparen wollten wir die passende Spannung für
>die LEDs per PWM vom Controller bereitstellen, somit brauchen wir keine
>vorwiderstände.

Falsch. Siehe LED.

>Könnten wir jetzt über jeden der 32 Pins, vom Controller, ein PWM Signal
>rausschiken,

Jain. Die Frequenz ist dabei eher begrenzt, unbrauchbar für eine 
Propelleruhr, siehe Soft-PWM.

> oder ist die PWM-Funktion auf einzelne Pins beschränkt?

Das ist Hardware-PWM.

MFG
Falk
Gast #2395319
Lesenswert?

Kaj-Sören G. schrieb:
> Soweit ich PWM verstanden habe, wird aus einer gleichspannung eine
> Rechteckspannung gemacht. Und aus dem Verhältnis von "Eingeschalteter
> Spannung" zu "Ausgeschalteter Spannung" ergibt sich dann der neue
> mittelwert der Spannung. Das heist für mich, das an der LED nur noch der
> neue Mittelwert der spannung anliegt

Wenn dein Verbraucher ein träges ding währe, wie z.B. eine Glühlampe 
oder eine Heizung kanns du das so in der Art sehen. Dein Verbraucher ist 
aber eine ganz flinke LED, die blinkt dann quasi im PWM Rythmus. Such 
dir mal ein Datenblatt zu einer LED raus. Da findest du im allgemeinen 
den maximalen Strom und eine Angabe zum Strom für eine bestimmte Zeit.
z.B.
Imax = 20mA
Imax = 100mA für 10ms

Darüberhinaus geht deine LED kaput. Und selbst wenn deine LED eine träge 
Lampe währe, fließt im eingeschalteten Zustand der maximale Strom durch 
den Controller, der diesen dann zerschießt.
Gast #2395439
Lesenswert?

Wieviel LEDs sollen es überhaupt werden?
Dementsprechend müsst ihr über Multiplexing oder Portexpander evtl. 
erweitern.
Bei Multiplexing müsst ihr zusätzlich noch die Einschaltdauer 
berücksichtigen (nicht mit der geplanten PWM verwechseln). Da durch das 
Multiplexing der verschiedenen LEDs/Segmente (bei gleichem Strom wie 
ohne Multiplexing) natürlich die LEDs/Segmente dunkler werden.

Wie schon oben erwähnt, LED nie ohne Vorwiderstand. Es sei den man 
begrenzt den Strom durch die LED anderst (Stichwort: 
Konstantstromquelle).

Grüße
Ballermann

P.S: Das ihr nichts dazu findet, absolut unmöglich.
Das Thema gibt es hier im Forum (neben den LED-Cubes) mindestens 1x im 
Monat.
Also hier im Forum suchen (LED-Cube ist hier auch interessant wegen 
Multiplexing) oder mal über Tante Gockel. Selbst bei UTube findet sich 
dazu einiges...
#2395455
Lesenswert?

Kaj-Sören G. schrieb:
> Obwohl die Idee der Propelleruhr nicht neu ist, sind die Informationen,
> die man zu bestimmten Punkten findet, eher schlecht bis sch****.

Och, die sind schon ganz gut.
Ist natürlich kein Anfängerprojekt.
Man muß mechanisch, elektrisch und softwarisch schon was auf dem Kasten 
haben.

Kaj-Sören G. schrieb:
> Nach Möglichkeit wollen wir SMD-Lötarbeit vermeiden, da wir darin keine
> erfahrunbg haben.
> Somit planen wir, soweit möglich, ICs mit DIL-Gehäuse zu verwenden, da
> wir dort einfache IC-Sockel nehmen können.

Ich würd mal sagen, SMD ist Pflicht und Sockel sind total out.
Je größer das Gewicht, umso größer die Unwucht und die Fliehkräfte.
Die Fliehkräfte werden Dir die ICs aus den Fassungen reißen.


Peter
#2395479
Lesenswert?

Ich hab auch nicht gesagt das wir gar nichts finden, sondern das es zu 
einigen Punkte nur seeehr wenig "brauchbare" informationen finden 
lassen. ;)

An LEDs planen wir zur Zeit 20 (langweilige) einfarbige LEDs, da ich mir 
die ansteuerung von 20 rgb leds noch nicht ganz vorstellen kann.

Die Ansteuerung war so gedacht, das wir die LEDs über "Adressen" 
ansprechen.
Wir geben vom controller einen Binärcode auf einen DeMux, welcher dann 
4-fach rs-fliflops ansteuert.
Über einen DeMux können wir 15 LEDs einschalten, da die 16te (binärcode: 
0000) nicht zu gebrauchen ist. Dann würde beim 1. DeMux noch mind. eine 
stelle wegfallen wegen der kaskadierung.
Diese Steuerung würde bedeuten das wir die LEDs nicht gleichzeitig, 
sondern nur nacheinander einschalten können. Wir wissen noch nicht, ob 
das Zeitlich hinhaut, aber es ist immerhin eine erste idee.

Bei rgb-leds wäre es, nach meinem verständnis, so, dass ich (imaginär) 
60 LEDs ansteuern müsste, bzw. das eine rgb-led 8 zustände haben kann!? 
Und da blockiert mein Verstand so´n bisschen, da ich (noch) nicht weiß 
wo ich dann die ganzen ic´s unterbringen soll.

Oder is das ne blöde idee mit dem DeMux und den RS-FlipFlops?
Es soll halt so sein, das ich jede led einzeln ansprechen kann, d.h. Ich 
will die erste Led sinchalten können, sowie die letze, oder vielleicht 
auch nur eine in der mitte, oder alle, oder gar keine.
#2395491
Lesenswert?

Zum Motor:

Wir wollen einen verhältnismäßig langsamen motor nehmen (1800U/min), 
also 30U/sec. und wenn man die ICs nah an der welle platziert, sollten 
die Fliehkräfte nicht das Problem sein.

Bitte korrigiert mich, wenn ich mich irre.

Wir werden wohl smd nehmen müssen, weil der platz sonst nicht 
ausreicht...
#2395494
Lesenswert?

@  Peter Dannegger (peda)

>Man muß mechanisch, elektrisch und softwarisch schon was auf dem Kasten
>haben.

Ein wenig. Man muss ja nicht immer gleich mit einem RGB Farbglobus 
anfangen. Eine einfache Propelleruhr mit 8 einfarbigen LEDs tut es.

>Ich würd mal sagen, SMD ist Pflicht und Sockel sind total out.

Nö, das ist nebensächlich.

>Je größer das Gewicht, umso größer die Unwucht und die Fliehkräfte.

Unwichten kann und muss man auswuchten. Das geht auch bei 10t.

>Die Fliehkräfte werden Dir die ICs aus den Fassungen reißen.

Soviele ICs braucht man doch nicht. Bestenfalls einen AVR. Und eh es DEN 
aus einer (Präzisions)fassung reißt, muss schon einiges passieren. Eine 
Propelleruhr ist keine Turbine, auch wenn manche so klingen.

MFG
Falk
Gast #2395498
Lesenswert?

Bei 20 LEDs müsste das ja sogar noch mit einem einzelnen großen AVR 
funktionieren.
Ansonsten könnte man auch noch mit Schieberegistern erweitern und das 
ganze über SPI rausclocken.
Dann würde auch ein kleinerer AVR reichen.

Vernünftige Treiber würden dann evtl. noch dazukommen...
Gast #2395499
Lesenswert?

>Wir geben vom controller einen Binärcode auf einen DeMux, welcher dann
>4-fach rs-fliflops ansteuert.

Dafür das ihr "Platz sparen wollt auf der Platine" ist das ganz schöner 
Unsinn.

Sieh dir die Links oben an.


>Bitte korrigiert mich, wenn ich mich irre.

Machen wir gerade.
#2395513
Lesenswert?

@  Kaj-Sören G. (wulf87)

>mittelwert der Spannung. Das heist für mich, das an der LED nur noch der
>neue Mittelwert der spannung anliegt (ich würds jetzt mal mit einer
>Sinusspannung vergleichen, wo ja auch nur der effektiv Wert zählt.) ...
>oder bin ich jetzt voll auf dem Holzdampfer? :(

Du bist auf der Titanic.
Gast #2395514
Lesenswert?

Kaj-Sören G. schrieb:
> Oder is das ne blöde idee mit dem DeMux und den RS-FlipFlops?

Bei 20 LEDs würd ich die direkt (mit Vorwiderstand) an die 
Controllerpins hängen (max Strom durch Vcc und Gnd beachten).
Dann einfach mit Schlitzscheibe und Lichtschranke soundsooft pro 
Umdrehung einen Interrupt auslösen, um die LEDs weiterzuschalten.

Zur Spannungsversorgung um die drehende Welle eignet sich z.B. ein 
Royer-Converter, als Datenübertragung ist möglicherweise codiertes 
Infrarot brauchbar.
:-)
Gast #2395517
Lesenswert?

Kaj-Sören G. schrieb:
> Wir geben vom controller einen Binärcode auf einen DeMux, welcher dann
> 4-fach rs-fliflops ansteuert.
> Über einen DeMux können wir 15 LEDs einschalten, da die 16te (binärcode:
> 0000) nicht zu gebrauchen ist. Dann würde beim 1. DeMux noch mind. eine
> stelle wegfallen wegen der kaskadierung.

das würde ich auf jeden Fall nicht so machem, viel zu viel Hardware und 
Verkabelungsaufwand. Ausserdem wird es am ende vom Timing sehr schwer 
die LED in einer gescheiten Helligkeit leuchten zu lassen. Dann lieber 
gleich einen IC mehr mehr IOs verwenden.
#2395536
Lesenswert?

@Floh:

Zur Spannungsübertragung auf die Platine haben wir uns schon was schönes 
gebastelt, aber trotzdem danke :)

Zu erst wollten wir nur mit einer Lichtschranke arbeiten, um den 
"Nullpunkt" zu bestimmen, aber unser betreuender Dozent meinte auch wir 
sollen Schlitzscheiben nehmen.
Kann ich denn mit einer Schlitzscheibe auch einen "Nullpunkt" bestimmen?
Bei einer Lichtschranke, mit nur einem Interrupt pro umdrehung war es so 
gedacht, das wenn der Interrupt kommt, der controller weiß, "So jetzt 
ist der Zeiger oben (12 uhr), ab hier kann ich rechnen"!

Irgendwie muss ich dem controller ja sagen wo oben und unten ist, damit 
die uhr nicht auf dem kopfsteht, oder nicht? oO  geht das über eine 
Schlitzscheibe?
#2395577
Lesenswert?

>Kann ich denn mit einer Schlitzscheibe auch einen "Nullpunkt" bestimmen?
>Bei einer Lichtschranke, mit nur einem Interrupt pro umdrehung war es so
>gedacht, das wenn der Interrupt kommt, der controller weiß, "So jetzt
>ist der Zeiger oben (12 uhr), ab hier kann ich rechnen"!

>Irgendwie muss ich dem controller ja sagen wo oben und unten ist, damit
>die uhr nicht auf dem kopfsteht, oder nicht? oO  geht das über eine
>Schlitzscheibe?

Und DAS sollen Studenten am Ende ihres Studiums sein . . .?
Ohje!
Naja, sichert meinen Arbeitsplatz . . .
Gast #2395877
Lesenswert?

Du brauchst irgendeinen Impuls, sei es über eine Lichtschranke, einen 
mechanischen Kontakt oder einen Hallsensor um den Controller zu 
Synchronisieren.

Dann könntest Du theoretisch die Geschwindigkeit des Motors genau 
ausmessen (Zeit zwischen 2 Interrupts), dann von mir aus noch etwas 
Mitteln um evtl. Schwankungen auszugleichen(braucht man vllt. nicht).
Wenn Du dann die Zeit für eine Umdrehung weisst, dann wird diese Zeit 
durch einen Timer in einzelne Ticks aufgeteilt und bei jedem Tick wird 
eine neue Reihe deiner Uhrzei ausgegeben.

(So könnte ich mir das zumindest vorstellen, ohne es jetzt selbst schon 
mal gemacht zu haben).


Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren