Forum: Mikrocontroller und Digitale Elektronik Welcher µC für kleinen Dimmer über Rs232


von Sebastian (Gast)


Lesenswert?

Hallo,

ich versuche für meine Wohnung kleine Dimmer zu bauen, die direkt
zwischen Steckdose und Lampe montiert werden sollen. Gesteuert wird die
Dimmer über die RS232 vom Computer aus.
Nun meine Frage:

Welcher µC ist für folgende Aufgaben geeignet oder überhaupt relefant:

1)Empfangen des Steuerbytes über Uart ( Soft- oder Hardwareuart wäre
mir egal )

2)Auswertung des Nulldurchgangs der Netzspannung für den Phasenschnitt
(über Optokopler an einem Interrupt angeschlossen)

3)Möglichst klein und günstig

Ich hab für diese Aufgaben an folgenden µC gedacht:  ATtiny12
Dieser hätte gnügend Pins und wäre auch klein und günstig.

Die Frage die sich für mich stellt ob der "Kleine", all diese
Aufgaben  auf einmal bewältigen kann, da das ganze ja recht
zeitkritisch ist.
Wenn nicht mit welchem µC könnte es funktionieren?

Außerdem möchte ich die Software für den µC in Bascom schreiben.

Bin um jede Antwort dankbar!

von Sebastian (Gast)


Lesenswert?

semitone.sourceforge.net

von Sebastian (Gast)


Lesenswert?

Die Seite kenn ich bereits aber bei meinem Problem hilft mir die leider
nicht viel weiter...

von Sebastian (Gast)


Lesenswert?

Dann verstehe ich das Problem nicht.

Der uC vom Semitone hat 2kb Flash und Hardware UART. Der Tiny hat nur
1kb Flash und kein HW-UART. Wenn du also den IR-Teil weglässt und auch
das sanfte ein und ausdimmen, dann reicht der Tiny vielleicht. Es sei
denn du programmierst den nicht in ASM, dann könnte es knapp werden.
Nimm besser nen Tiny25 da hast du ein paar Reserven oder wenn der Platz
nicht das Problem ist nen Mega8 oder nen Tiny2313. Da hast du auch Platz
für Erweiterungen.

Seb

von Kai Markus Tegtmeier (Gast)


Lesenswert?

Hi, Sebastian (1) ;-)

Wenn die Programmierung auch möglichst einfach gehalten werden soll,
würde ich Dir empfehlen, eher einen AVR mit bereits eingebautem
UART/USART zu nehmen, z.B. den Mega8. Ansonsten müßtest Du die RS232
softwaremäßig implementieren. Ich kenne mich nun nicht besonders mit
BASCOM aus, könnte mir aber vorstellen, daß das schwieriger ist als mit
einer bereits eingebauten USART. Wenn Du den Aufwand nicht scheust,
sollte das aber auch mit einem Tiny12 laufen.

Greetz
KMT

von JojoS (Gast)


Lesenswert?

such mal hier nach 'Phasenanschnitt' und 'Phasenabschnitt', da gibt
es eine Menge an Diskussionen hier. Von der Leistung her reicht der
ATtiny auf jeden Fall, die Zeitkritische Steuerung läuft über die
internen Timer.
Interessant dürfte auch der Wiki Beitrag
http://www.mikrocontroller.net/articles/Hausbus
sein, RS232 ist nicht die beste Wahl für so ein Vorhaben (wenn es
ausbaufähig sein soll).

von Sebastian (Gast)


Lesenswert?

Also ein vielleicht bringt mich nicht wieter, weil soweit bin ich auch
schon.....

Vielleicht stell ich besser nochmal meine Frage:

Da die Anwendung ziehmlich Zeitkrtisch ist, schaft es ein ATtiny12:

1)Softwareuart auszuwerten
2)Phasenschnitt zu Steuern
programmiert mit BASCOM

Hat da jemand Erfahrung oder Wissen drüber?

Habe im Netz schon alles über Dimmer abgegoogelt!

Wäre schön wenn mir jemand eine Antwort auf DIESE Fragen geben könnte,
oder eine begründete Einschätzung.

von Mark Hämmerling (Gast)


Lesenswert?

Salve,

niemand hält Dich davon ab, das Rad neu zu erfinden. Aber was Deine
Anforderungen betrifft, so scheint der "Crystal" ziemlich genau das
zu sein, was Du suchst. Inzwischen enthält er auch die notwendigen
Fuse-Einstellungen für den ATtiny2313 - so daß Du diesen oder das
Original AT90S2313 verwenden kannst.
http://semitone.sourceforge.net/crystal/

Was ich nachwievor noch nicht implementiert habe (ist auch nicht mehr
viel ROM frei) ist, das Licht per Taster zu regeln (ich dachte da an
ein simples Hoch-/Runterfaden, wie man's von den kommerziellen Dimmern
kennt). Wenn man die Fernbedienung gerade nicht parat hat (oder das
Notebook, von dem aus man per SSH/X11 auf das Frontend auf dem Server
zugreift)... :)

Wer weiß... vielleicht läßt Du Dich ja doch überzeugen, dieses Proekt
als Basis zu nehmen und Deine Wunschfeatures hinzuzufügen. Dann hätten
alle was davon. :)

Mark

von Sebastian (Gast)


Lesenswert?

Zwecks der Software-Implimentierung in den µC mit Bascom:

Des wäre sehr leicht, Bascom stellt dafür eine ferige Funktion zur
verfügung!

Also behindern sich dann Timer und das Software Uart nicht?
Kenn mich mit µC nicht ganz so gut aus, aber ist es nicht so, dass ein
µC nur eine Sache auf einmal bearbeiten kann? Sprich, was passiert wenn
der µC gerade in der Timer-Routine ist und dann was übers Uart empfangen
wird?

Kennt jemand ein gutes Bascom-Forum ( roboternetz scheint offline zu
sein seit ein paar tagen oder liegt das an mir?)

PS @ ALLE
Dieses Forum hier ist echt totall toll, kaum reingeschriebn , schon
Antwort...fast wie in Echtzeit in nem Gespräch... ;-) DDDAAANNKKKEE!

PS @ Mark
Na,na....
nix geger dein Projekt.Ist voll toll, habe mir das Meiste auch schon
durchgelesen.

Aber in diesem Falle möcht ich gerne das Rad neu erfinden, weil das
Ganze für mich das Erste mal µC programmieren heißt und ich mit diesem
Projekt das ganze etwas lernen möchte und deshalb hätte es wohl wenig
Sinn eine fertige Hex auf einen µC zu spielen.

Deshalb würd ich mir des Ganze gern selber erarbeiten....

und des Forum hier ist echt totall toll, keim reingeschriebn , schon
antwort...fast wie in Echtzeit in nem Gespräch... ;-)

von Sebastian (Gast)


Lesenswert?

Ähm, dann nimm lieber nen größeren. So weit ich weis brauch Bascom etwas
mehr Resourcen. Schreib doch einfach dein Programm und schau mal wie
groß das wird. Es liegt ja auch an dir wie groß das Programm ist. Der
eine denkt so der andere so. Nimm lieber den Tiny2313. Der hat nen
HW-Uart und 2kb Flash. Da hast du am wenigsten Probleme. Unterstüzt
Bascom die Tiny Teile überhaupt?

Seb

von Sebastian (Gast)


Lesenswert?

tiny´s werden von Bascom unterstutzt.

Die kleineren BasicAtmels werden leider nicht complett unterstützt (z.b
12F629)

von Sebastian (Gast)


Lesenswert?

Tja dann. Also der tiny2313 ist nur minimal teurer. Aber leider etwas
größer. Wenn dich SMD nicht stört, dann nimm nen Mega8.

von Peter Dannegger (Gast)


Lesenswert?

Der ATTiny12 schafft das schon, aber definitiv nicht in Bascom, sondern
da ist Assembler nötig (Zyklen zählen).

Etwas tricky ist es mit nur einem Timer für UART und Dimmer auszukommen
(gehen tuts aber).

Daher würde ich für Anfänger auch zum ATTiny2313 raten.

Aber auch da dürfte Bascom ungeeignet sein, da die meisten Routinen im
Vordergrund arbeiten und versteckte Wartezeiten beinhalten.
Sieht doch irgendwie blöd aus, wenn das Licht flackert, immer wenn was
über die UART reinkommt oder ne Taste gedrückt ist.


Peter

von Gerd (Gast)


Lesenswert?

Hallo,

gibt es schon einen funktionierenden Code für Bascom.

Ich habe eine Schaltung mit einem Tiny26, TIC225 und MOC3043 (Conrad
hatte nichts anderes im Regal) aufgebaut.

Die Nulldurchgangserkennung habe ich wie in einer Atmel AppNote
aufgebaut.
Einfach 1MOhm an N und L und dann an GND und INT0.

Beim testen hatte ich auch schon kleine Teilerfolge. Die Abstuffungen
waren aber unterschiedlich und oft kam es zu flackern.

Mit einem Taster hab ich eine Variable hochzählen lassen und diese als
Wartezeiten bis 9 mS in der Timer_ISR genommen um zu warten bis der
Triac gezündet wird. Nach einer weiteren Wartezeit hab ich den Ausgang
für den MOC wieder ausgeschaltet.

Und da liegen meine Probleme.

1. Nach was für einer Zeit kann ich den Ausgang wieder abschalten?
Der Triac löscht sich zwar selbst, aber wenn der Ausgang dauerhaft
eingeschaltet ist, wird sich nie was dimen ;)

2. Wie lösst man am besten das warten bis zum Zünden?

Wie gesagt, das ganze mit Bascom.

von Hauke Sattler (Gast)


Lesenswert?

Meine ehrliche Meinung zum Thema Nulldurchgangserkennung, Software PWM
und Software UART in einem Tiny mit nur 1 Timer und dann noch unter
BASCOM ?

VERGISS ES

Immer wenn die Steuerung eines der drei oben genannten Programmteile
aktiv ist, dann können die anderen beiden Teile nicht bearbeitet
werden.
z.B. Wenn ein UART bit gerade Empfangen wird, dann ist es unmöglich den
Nulldurchgang oder die Triac Zündung zu steuern.
Wenn man mit dem INT in die Nulldurchgangsteuerung springt, dann ist
die Warscheinlichkeit hoch, daß man irgendein Bit des UART verpasst.

Diese Fehler machen sich als Flackern bemerkbar.

Nimm am besten nen Mega8, (der ist bei Segor nur ca. 1 Euro teurer als
der Tiny12)
Der ATMega 8 hat genug Timer und einen Hardware USART. Dann dürfte sich
eingendlich nichts mehr ins Gehege kommen.

Wenn du jedoch unbedingt einen 8Pin Atmel verwenden willst, dann nehme
wenigstens den Tiny15.
Der hat zwei Timer (einen davon mit Hardware PWM), einen ADC und einen
Analog Comparator.
Damit kann man schon viele zeitgritische Aufgaben auf die Hardware
übergeben.
Für den Rest:
Viel Glück

bis dann
Hauke

von Peter D. (peda)


Lesenswert?

"Aber auch da dürfte Bascom ungeeignet sein, da die meisten Routinen im
Vordergrund arbeiten und versteckte Wartezeiten beinhalten."


Viel schlimmer, es werden oft auch Ressourcen (Timer) belegt.

Für derart echtzeitige Aufgaben sollte man Programmiersprachen
verwenden, deren Bibliotheken als Quelltext vorliegen oder wo man die
Funktionen ohne großen Overhead gleich selber schreiben kann (z.B.
WINAVR).


Ich rate auch erst mal zum ATTiny2313 mit HW-UART.
Wenns dann läuft, kann man ja immer noch versuchen zu verkleinern.


Peter

von Gerd (Gast)


Lesenswert?

Von einem Tiny mit nur 8 Pins sprach ich nie!
Der kostet aber fast nichts. Hätte ich gleich mit nem Mega8 angefangen
und gemerkt, das der keine 230V ab kann, hätte ich mich sehr geärgert.
Das Wort UART hab ich auch nicht ins Spiel gebracht.

Der Beitrag vor meinem ist fast ein Jahr alt. Ich denke, da wird nicht
mehr viel am Konzept geändert. Entweder läft das ganze schon oder ist
gestorben.

Von mir aus nehm ich auch ein Mega8. Aber eine ANtwort habe ich bis
jetzt ja auch noch nicht.

von Peter D. (peda)


Lesenswert?

Ich vor den Kopf hau, da habe ich doch tatsächlich auf nen uralt Text
von mir selber geantwortet.

Wer holt denn bloß immer diese alten Dinger wieder vor ?

Ich weiß, der lacht sich scheckig.


Peter

von Gerd (Gast)


Lesenswert?

Ich hab garnicht drauf geachtet, wer schon was geschrieben hatte ;)

Gelacht hab ich auch nicht. Ich habe einen alten Beitrag genommen, weil
er zum Thema passte und es dann nicht 100 zum gleichen Thema gibt.

von Max (Gast)


Lesenswert?

Hi,

es gibt doch diese Gegensprechanlagen(oder auch Babyphone) die die
Sprache über das "Netz" überträgt.
Könnte man dieses Prinzip nicht auch auf diese Steuerungsaufgabe
übertragen.
Ich habe gedacht, dass man einen Zwischenstecker zwischen Steckdose und
Verbrauer hätte, der dann die Steuerungssignale von einem Sender
überträgt, der diese ebenfalls über das Netz sendet.

Ich hoffe man kann verstehen was ich meine..(;

von Gerd (Gast)


Lesenswert?

Das passt ja noch viel besser zum Thema.

von Max (Gast)


Lesenswert?

ok..

von Jadeclaw D. (jadeclaw)


Lesenswert?

@Gerd: MOC3043 ist zum Dimmen untauglich. Das Teil hat einen
Nulldurchgangsdetektor schon eingebaut. Wenn du den für den
Phasenanschnitt triggerst, wartet der bis zum nächsten Nulldurchgang
und zündet dann. Der richtige Optotriac wäre:
K3020 = MCP3020 = MOC3020: 185647-62
Der zündet sofort.

""1. Nach was für einer Zeit kann ich den Ausgang wieder abschalten?
Der Triac löscht sich zwar selbst, aber wenn der Ausgang dauerhaft
eingeschaltet ist, wird sich nie was dimen ;)""
Überhaupt nicht. Man dimmt, in dem man nach dem Nulldurchgang wartet,
bis ein Teil der Halbwelle durch ist und zündet dann.
Je länger man wartet, umso dunkler wirds.

""2. Wie lösst man am besten das warten bis zum Zünden?""
Timer bei Nulldurchgang setzen, wenn das Überlaufflag gesetzt wird,
zünden.

Gruss
Jadeclaw.

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.