Hallo Leute. Ich sollte für einen Freund möglichst günstig eine Rolladensteuerung für sein Eigenheim entwefen. Nun, zur Verfügung steht mir ein PIC18f4550. Es sind 23 Rolladen mit dazugehörigen Taster zu schalten. Meine Idee wäre es, die Taster über einen Multiplexer mit dem Pic zu verbinden und auf der anderen Seite mit einem Demultiplexer die Motoren anzusteuern. Oder wisst ihr eine bessere Idee wie man 46 Input und 46 Output Ports auf einem PIC realisiert? Geht da vll was mit einem Schieberegister? lg Manuel
Schieberegister ist genau das richtige. Oder ein µC mit mehr I/O-Pins.
Ja, das mach mal 46 "Antennenleitungen" im Haus verteilen, das wird spassig.... Warum machen die großen Konzerne sowas nicht, ist doch günstig?
Hast du dir mal überlegt, was das für ein Kabelverhau wird bei 23 Rolläden? Besser: Mehrere kleine Controller über 485 oder CAN vernetzen.
Sorry, aber der uC ist kaum der Hinderungsgrund. Die Rollläden alleine kosten schon Geld, sind aber wohl da. Will man die Rollläden bedienen, braucht man Taster an den passenden Stellen und Kabel dorthin (23 Batterien jedes Jahr tauschen geht nämlich auch ins Geld). Wenn das System mit Rollladenschaltern und Rollläden aufgebaut ist, gibt es ggf. schon die Zentralsteuerungsrelais. Die waren teuer, bzw. sie sind teuer wenn ma sie noch kaufen muß. Was anderes als Relasi sind aber bei den hohen Spannungen von bis zu 750 an den Rollladenkontakten kaum sinnvoll. Wenn du schon Rollläden, Rollladentaster und Zentralsteuerungsrelais hast, dann brauchst du nur eien 2-kanalige Schaltuhr im Sicherungskasten ist die Sache ist gegessen. Wenn du die Tasten noch nicht hast und die Zentralsteuerungsrelais einsparen willst, dann müsstest du erst mal überlegen, wie du die Rolländen steuern kannst. Sind Leitungen von jedem Motor zum Sicherungskasten gezogen worden ? Dann käme man wohl mit 16 Relais 4 x um un einem 1 x um aus, das kostet immer noch deutlich mehr als 1 simpler Microcontroller. Fehlen die Leitungen, sind wohl 46 Relais notwendig was um die 100 EUR Mehrkosten verursacht. Auch das schlägt den Preis eines Microcontrollers locker. Wenn für die Taster und Rolläden noch gar keine Leitung zu einer Zentrale gezogen ist, sondern überall nur 230V liegen, dann wäre erst mal eine Frage der Kommunikation. Da kann Funk letztlich billiger sein als verdrahtete Elektronik, aber Funk(steckdosen) kosten Dauerstrom, der bei 100 Watt Dauerverbrauch im Jahr richtig ins Geld geht. Ich bin also sicher, dein Problem liegt ganz woanders. Am besten wäre es wohl falls schon 5-adrige Leitungen zu allen Rolläden liegen (aber parallel angeschlossen), diese zur Erfassung der Taster und zur Steuerung der Rolläden von einer Zentrale aus zu verwenden. Eine Leitung Strom zum rauffahren, eine Leitung Strom zum runterfahren, ein Relais 2 x um an jedem Rolladen der diese Leitung vom Bus nimmt und auf den Rollladenmotor schaltet, bleibt neben Schutzleiter und Null noch genau eine Leitung übrig. Die muß man nicht mit 230V fahren, falls sie störsicher genug genutzt wird (sie läuft immerhin lange neben den Motorleitungen parallel). Man kann sie mit Kleinspannung beschicken als Versorgung des Relais, und der Elektronik die die Tasten abfragbar macht, allerdings muss die gesamte Steuerung darüber erfolgen. Da so eine Leitung unter 1 Ohm hat, könnte man jeden Taster 10 Ohm, 11 Ohm, 12 Ohm, .... 55 Ohm schalten lassen (man versorgt dabei die Leitung mit +12V). Dann schaltet man die Polarität der Leitung um, um die Spannung zur Versorgung des Relais zu liefern. Doch woher weiss welches Relais daß es anziehen muß ? Es hat ja nicht unbedingt vorher jemand dort den Taster gedrückt, sonder am Abend kann man ja (der Reihe nac) alle runterfahren lassen wollen. Man kann wohl nur schieberegisterartig mit je einem (+24 V?) Impuls immer "das nächste" Relais ansprechen. Und alles stromlos machen damit alle Relais und auch der Zustand deses Schieberegisters abfallen. So ein Schieberegister könnte man mit einem Thyristor aufbauen, also nicht unbedingt ein IC pro Rollladen, wird aber viel Wert auf Störsicherheit legen müssen. Ein Stromstosschalter mit Umschalter ist sicherlich einfacher. rauf runter rauf runter +--------+ | | | | |Zentrale| o--+ | /o--+ | | |----------o\ | +--o | +--.. | | \o-----(--+ o-----(--+ | | | | | | o-----+ /o-----+ | |----------o\ +--o +--.. | | \o--------+ o-------+ | | | |------------+ +-----------+ +-----------.. Steuerleitung | | | | | | +--------+ +---------+ +--------+ | Box 1 | | Box 2 | | | | | +---------+ +--------+ | | | | | | rauf|runter rauf|runter | | | | | | Null ---------------+--+--+--------+-+--+------- ... Blöderweise braucht mal Null als Rückführung, geht die Leitung ab, hat man also 230V auf der Elektronik. Den Schutzleiter kann man für die Rückführung auch nicht gebrauchen. Möglicherweise kann man die umgeschalteten Motorleitungen als Erkennung nutzen, welcher Rolladen gerade aktiv ist.
Also. Der Hausherr möchte alles über eine Zentrale gesteuert haben. Die Kabel hierfür sind auch schon gezogen. Man meint von jedem Taster und jedem Motor zur Zentrale....obs sinnvoll ist oder nicht, naja. Nicht mein Problem Um euch zu zeigen wie ich das mir ca. vorstelle hab ich mal einen Grobplan erstellt, der keinen Anspruch auf Schönheit oder Standarts erhebt. Mein Problem ist es nun, welcher Multiplexer, bzw. Schieberegister oder sonstwas ich verwenden sollte. Und vor allem, wie diese Komponenten mit meinem PIC kommunizieren. SPI? Denn auf diesem Weg könnte ich ja eine Rolladenautomatik, Urlaubsprogramm etc. programmieren. Ich hoffe euch mein Problem nun etwas näher gebracht zu haben.
46 Relais, also 6 TPIC6B595, das geht ins Geld, 46 Taster. Eigentlich könnte man jeden über einen Vorwiderstand an die Eingänge des uC anschliessen. Wegen Störsicherheit fährt man aber besser 24V oder mehr (eventuell verbinden sie sogar an 230V ?) also ein grösserer Vorwiderstand bzw. Spannungsteiler. Da du nicht genug uC-Eingänge hast, kann man externe ICs verwenden (oder die taster per Dioden auf 6 Eingänge codieren, auch mühsam). Da man dauernd nachfragen muß, welcher Taster aktiv ist, ist das natürlich lästig. Besser wäre ein IC der einen Interrupt auslöst, wenn ein (beliebiger) Taster gedrückt ist und man fragt nachher ab, welcher es war. Ein Analoxmultiplexer mit "alle ein" gibt's aber nicht. Ein Prioritätsencoder wie 74HC148 ginge, braucht man 7 von. Einfacher ist wohl ein 74HC151 und ständig abfragen.
@oldy: Ich brauche 46 da es für jedem Motor einen Öffnen und Schließen Taster gibt. @MaWin: Die Idee mit dem Prioritätsencoder ist spitze. Das werde ich auf jeden Fall versuchen. Dankeschön Nur was verwende ich als Ausgangslogik? Da ich ja auch 46 O Ports brauche? lg
Moin Ich hoffe der herr kennt sich mit der für rolladen normalerweise eingesetzten motoren aus, ansonsten kann der spass richtig teuer für den haushernn werden, wenn nach 1 oder 2 jahren langsam alle motore nacheinander den geist aufgeben. Paralelschaltung ist VERBOTEN! Schaltzeigen von links auf rechtslauf beachten! wenn jetzt die frage nach dem wieso kommt soll ers am besten gleich sein lassen. Es haben schon einige elektriker ihr lehrgeld zahlen müssen mit selbstgestrikten steuerungen. gruss
Ok, grundsätzlich eine gute Idee. Nur wie sollte ich ich die Teile als Daisy Chain schalten. Soweit ich das Datenblatt interpretiere, kann ich nur max 8 Bit Seriell übertragen. Ich bräuchte allerdings 46bit.
Ich hatte nie vor, die Motoren parallel an ein Schaltelement zu schalten. Es gibt für jeden Motor 2 Relais.
> wenn jetzt die frage nach dem wieso kommt soll ers am besten gleich sein > lassen. Hinter diesen Satz hätte ich mindestens drei Ausrufezeichen gesetzt. Ich kenne auch einen Fall, wo jemand nach einigen Tagen schon mehrere Motoren hat abrauchen lassen. Fand ich aber nicht weiter tragisch, da ich diesen Typen sowieso nicht leiden kann.
> kann ich nur max 8 Bit Seriell übertragen. Ich bräuchte allerdings 46bit
wie wär's mal mit dem öfnnen und durchscrollen des datenblattes? musst
nichtmal lesen ;-)
ich tendiere auch für einen langsam getakteten SPI-bus, bei dem ggf. die
signale differenziell übertragen werden (ggf. könnte man gleich darüber
auch die speisung laufen lassen? oder da differenziell, könnte man auch
die jeweilige "vorort-stromquelle" benützen (galvanisch getrennt)).
ok, war da wohl ein wenig zu schnell beim lesen^^. Ja, das ist genau das was ich brauche. Dankeschön. Ich werde dann berichten, wenns fertig ist.
> ich tendiere auch für einen langsam getakteten SPI-bus
Super Idee! - Ein flankengesteuertes Bussignal ist geradezu ideal für
räumlich ausgedehnte Bussysteme. In Verbindung mit Motoren, die
ausgesprochen sensiebel auf fehlerhafte Ansteuerung reagieren, ist das
sicher ein nicht zu toppender Lösungsansatz.
@ Hotta: schonmal was von terminierung und "leistung verbraten" gehört bezüglich robustheit? schonmal was von DMX gehört und wieviel A da so geschalten werden? und ein bustakt von 100Hz wird hier locker ausreichen, ich weiss nicht, was du hast?!? zum testen wird er wohl nicht gleich die motoren an die relais hängen sondern erstmal glühbirnen ^^
Und was mit Glühbirnen funktioniert muss nicht mit zwingend mit Motoren funktionieren. 2 mögliche fehlerquellen hab ich ja schon genannt. es gibt ja noch ein paar andere. ps. und die meisten motorhersteller können recht genau durch auswertung eines kaputten motors sagen, was die steuerung falsch gemacht hat.
> schonmal was von terminierung und "leistung verbraten" gehört > bezüglich robustheit? Funktioniert richtig gut unter der einen Voraussetzung: Abschlusswiderstnd 1 = Leitungswiderstand = Abschlusswiderstand 2 > schonmal was von DMX gehört Die physikalische Grundlage von DMX ist eine RS485-Übertragung. Das Signal selbst wird mittels UARTs erzeugt und ausgewertet und ist somit nicht (!) flankengesteuert. > wieviel A da so geschalten werden? Das sind schon mal mehrere 100 A. Allerdings sitzt zwischen dem Bus und den (meistens) Lampen noch eine Elektronik, die nicht selten fehlertolerant arbeitet. > ein bustakt von 100Hz wird hier locker ausreichen Ein langsamerer Bustakt sorgt bei flankengesteuerter Datenübertragung nicht dafür, dass prozentual weniger Fehler entstehen. > ich weiss nicht, was du hast?!? Ich weiss es aber aber: nämlich Ahnung!
Wer hat den gesagt das der SPI Bus durch das ganze Haus gezogen wird? Meine Intention war es die Daisy-Chain direkt bei der Steuereinheit aufzubauen und dann die Ausgänge über die wohl schon verlegten leitungen zu den Motoren und einer dortigen Ansteuerelektronik zuzurühren. Die Signalübertragung der Daisy-CVhain Ausgänge würde ich auch nicht über Spanungspegel, sodnern über Strompegel machen.
> räumlich ausgedehnte Bussysteme Alle Leitungen laufen bereits zur Zentrale. Der Bus geht gerade mal über die Platine. Und ein TPIC6B595 hat irgendwie auch SPI. Die Diskussion über Busse ist aber Unsinn, der IC kommt halt so an den uC wie's passt. Interessanter ist die Frage, wie er 46 (oder 25) Relais unterbringt. Am ehesten stellt sich noch die Frage, wie viele Pins übrig blieben, wenn man Display und Tastatur angeschlossen hat, da kann man sich nämlich Probleme schaffen, wenn man erst zu grosszügig (dumm) ist und hinterher knausern muss.
>> ich weiss nicht, was du hast?!? >Ich weiss es aber aber: nämlich Ahnung vielleicht, aber zumindest nicht lesen: Master Snowman schrieb: > ich tendiere auch für einen langsam getakteten SPI-bus, bei dem ggf. die > signale differenziell übertragen werden ps: RS485 ist differenziell
Hier läuft eine interessante Diskussion: der TE hat klargemacht, dass von seinem Kunden eine Zentrale gewünscht wird UND dass die Leitungen bereits alle liegen!!! Hier wird aber darüber diskutiert, wie man das Projekt weiter verkomplizieren kann, Bus-Systeme und was weiss ich noch alles. Dabei ist es so einfach: die Taster gehen direkt zur Zentrale und von dort werden die Motoren auch direkt gesteuert. Die Leitungen liegen ja schon. In der Zentrale sind also die Steuerung und die Treiber, das macht es ganz einfach. Also entweder 1 µC, 6 Schieberegister und 23x2 Motor-Treiber oder - als übersichtlichere Alternative - z.B. 3 identische µC (mit je 16 I/O) plus die Motor-Treiber. Da der TE offensichtlich gerne mit PIC arbeitet, böten sich alle ICs an, die mehr als 16 I/Os haben, z.B. der 16F886 wäre geeignet (hat 3x8 I/Os, die "überflüssigen" I/Os könnten für Zentralbefehle wie "alles rauf" oder "alles runter" oder für Status-Anzeigen dienen). Die Eingänge werden in einer Schleife gepollt und im 2. Teil der Schleife werden die jeweiligen Ausgänge gesteuert. Das geht in Assembler dank Bit-Befehlen ratz-fatz und ist viel übersichtlicher, als Schieberegister zu steuern. Wenn es denn C sein muss, dann gibt es analoge Chips aus der 18er Serie von Microchip. Ein weiterer Vorteil der Aufteilung auf 3 oder 4 µC: fällt ein µC aus, funktionieren die anderen noch. Als Treiber kann man Relais einsetzen oder MOSFETs.
abc123 hat es treffend zusammengefasst. Mein Hauptproblem war eig die Porterweiterung. Das liegt daran, dass ich schon seit geraumer Zeit nicht mehr mit µC gearbeitet habe, und ich mich erst wieder in die Materie einlesen muss. Aber ihr habt mir dabei wirklich sehr geholfen. Dankeschön nochmal.
Wenn man das Layout schön nach Funktionsgruppen trennt, kriegt man auch Schieberegister stabil zum Laufen. Die Tasten über 100k Schutzwiderstände auf 6 * 74HC165 und die Relais über Treiber (ULN) von den 6 * 74HC595. Braucht insgesamt 6 Leitungen zum MC, ein ATtiny24 würde also dicke reichen. Die 6. Leitung geht auf /OE der Register, um sie zu sperren, wenn nichts zu tun ist, bzw. die Register noch nicht geladen sind, damit die Motoren nicht unkontrolliert loslaufen. Und wenn man es besonders störfest machen will, noch Optokoppler an den Eingängen und Opto-MOS als Relaistreiber. Und natürlich werden die Eingangssignale dann in der Software mindestens 4-fach abgetastet (entprellt). Peter
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.