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!
Die Seite kenn ich bereits aber bei meinem Problem hilft mir die leider nicht viel weiter...
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
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
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).
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.
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
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... ;-)
Ä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
tiny´s werden von Bascom unterstutzt. Die kleineren BasicAtmels werden leider nicht complett unterstützt (z.b 12F629)
Tja dann. Also der tiny2313 ist nur minimal teurer. Aber leider etwas größer. Wenn dich SMD nicht stört, dann nimm nen Mega8.
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
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.
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
"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 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.
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
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.
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..(;
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.