ich habe mir eine Ansteuerung für ein HUB75 Display 32x64 (1:16 Scan) auf Arduino (Nano) Basis geschrieben. Es war etwas tricky, da es den Controller, was Timing und Speicher angeht, schon sehr an seine Grenzen bringt. Meine Lösung benötigt 80% RAM, und eigentlich die volle Rechenleistung um ein recht ruhiges Bild (Pixelbestandteile nur an/aus) zu bekommen. Damit sind immerhin die Grundfarben und die ersten Mischfarben möglich.
In einigen Fenstern habe ich bei renovierungs- und Umbaumaßnahmen schon mal zwei Magnetkontakte pro Fenster, versteckt im Rahmen, eingebracht und Kabel gelegt. (Zu, Kipp, Auf erfassen - wobei zwei Kontakte geöffnet sind, wenn auf - Softwarelösbar)
Status "unbenutzt" ist für die, die noch nicht angeschlossen werden können, da noch keine Sensoren verbaut.
Das Display bekommt noch eine Platine mit Dipschaltern (für die grundsätzliche Konfiguration ob Sensoren verbaut sind oder nicht) und Schnittsellensteckern und ggf. ein paar Registern um DIP-Schalter und externe Sensoren zu erfassen.
Die Aufgabe des Panels ist nur den Status aller Fenster darzustellen und es wird noch einen Darstellung der Summe aller Stati auf einen Blick geben (Sobald alle Fenster zu -> grün, sobald ein oder mehrere auf Kipp -> gelb, sobald nur eines oder mehrere ganz geöffnnet -> rot).
Was momentan noch offen ist, ist die Erfassung der Schaltkontakte, die Drähte sind so verteilt dass es als Beispiel ein 15 Meter 8-Ader CAT Kabel gibt und am Ende befinden sich zehn Schaltkontakte von fünf Fenstern.
Hier überlege ich gerade wie ich diese abfragen werde und was sich am besten eignet. Ob eine Matrixanordnung da noch schlau ist usw...
Ich möchte nicht mit Funk und mit anderen größeren Systemen arbeiten, mir ist klar dass das Thema Hausautomatisierung ein sehr weitläufiges Thema ist, mit vielen Bussystemen (CAN, RS485, EIB, KNX, usw...) aber ich habe gerade Spaß an dieser komplett selbst angefangenen Bastelei...
Vielleicht hat ja noch der eine oder andere Tips oder Anregungen für die Sensorabfrage über Kabel. Klar könnte ich auch I²C und I-O Expander nutzen, oder oder oder... ich weiß es noch nicht und freue mich über Ideen.
gefällt, aber ich würde die Helligkeit dimmen damit die LEDs länger halten, ggffs. mit Umgebunghelligkeit abgleichen, wenn dunkel LED auch dunkler und ggffs die LEDs auch per Timer abschalten und per Taste aufwecken. Niemand muß und will das 24/7/325 sehen die LEDs danken. Wenn die LEDs verbraucht oder kaputt sind in Jahren findet man keinen Ersatz, alle benutzten LIBs sind anders und das Windows hat auch x-mal gewechselt und man kann nicht mehr daran arbeiten so wie ich an meiner Wordclock von 2015, alles neu zu erfinden und LIBs anpassen viel zu umständlich, schaffe ich nicht mehr.
TTP223 mit hinterm Glas als Idee...vergessen zu erwähnen...und ein Ausgang für eine gesonderte externe bicolor-LED im das Summensignal noch mal an der Haustür sehen zu können...
Dagegen kann man vorbeugen, ich lege immer was auf Halde von allem - ob das schlau oder "richtig" oder "besser" ist, ist aber keine Diskussion hier wert finde ich, denn das ist ebenfalls individuell...
Aber es stimmt natürlich, es gibt Anhängigkeiten... leider... :-)
Und ich vernetze nichts, jedes Teil funktioniert für sich größtenteils unabhängig - kein Netz, keine Updates, keine Zusatzfunktionen - damit laufen die Sachen 15-25 Jahre, wenn sie zuende entwickelt sind... ohne weitere Pflege, ohne Gefrickel und ohne Änderungen, vielleicht mal einen Kondensator wechseln, wenns hoch kommt - das sind meine Erfahrungen...
Das Teil überwacht Fenster und stellt das dar. Lässt sich per DIP konfigurieren und benötigt keine Softwareanpassungen mehr, wenn es durch ist. Auch wenn in den Jahren noch Sensoren an den restlichen Fenstern dazu kommen... erfahrungsgemäß geht das so ganz gut...
Ein weiteres Panel und ein weiteree programmierter Controller werden ins Gehäuse gelegt, wenn was ist, muss man nur austauschen und weiter gehts...
Du weißt, dass es den Nano auch mit einem Atmega328 gibt,
Ja. Ich war mal der Meinung gesehen zu haben, dass A6 / ADC6 und A7 / ADC7 beim Atmega168 auch I/O können und hatte deswegen den Typ genommen, hatte mich aber versehen...
OK du wolltest Gedanken und Anmerkungen, wenn sie nicht gefallen lernst du vielleicht durch Schmerz, die Zukunft wird es zeigen auch heute lernen die Menschen nicht mehr durch Blick in die Vergangenheit.
Als ich 2015 viele Arduino Projekte machte auch LIBs angepasst hatte habe ich noch den Rechner, aber auch dort klappt es nicht mehr, der alte Rechner schwächelt.
Wie bekomme ich am besten, einfachsten 10 bis 12 Kontaktstellungen über ein 15m langes CAT6 Kabel an den Controller... am liebsten im Bereich der Kontakte nur mit passiven Bauteilen / Verdrahtung... Auf Controller-Seite muss ich eh eine Platine machen, da ist sehr viel denkbar, wobei ich gern auf SMD verzichten würde...aber nicht muss.
Habe gerade noch einen Atmega168 im MLF auf einem Arduino mit einer 0,2er Spitze an einem Pin nachgelötet, es geht also noch... :-) aber auch nur mit Kamerahilfe...lieber etwas größer, Platz is genug da...
Die Überwachung ist sicher nützlich, wenn sie funktioniert. In der Firma hatte ich leider öfter Spaß mit fehlerhaften Fenstermeldungen, weil Kontakte nicht funktioniert haben oder Fenster sich verzogen hatten. Das wird auch die schönste Software kaum verhindern.
Die Überwachung ist sicher nützlich, wenn sie funktioniert. In der
Firma
hatte ich leider öfter Spaß mit fehlerhaften Fenstermeldungen, weil
Kontakte nicht funktioniert haben oder Fenster sich verzogen hatten. Das
wird auch die schönste Software kaum verhindern.
Schrott-Kontakte oder Schrott-Installation.
Hast Du es selber gemacht?
Und wenn du dann noch bei Kontakt 2 den doppelten Widerstand von Kontakt 1 nimmst und bei 3 den 4-fachen, kannst du über eine Leitung sicher 4-5 Kontakte auswerten. Da Netzwerk 4 Adernpaare hat, kommst du selbst mit 4 Kontakten p. Paar auf 16 Fenster ;-)
Wie bekomme ich am besten, einfachsten 10 bis 12 Kontaktstellungen über
ein 15m langes CAT6 Kabel an den Controller..
Vielleicht reduzierst du die einfach? Bei den Schaltern einfach Widerstände vor die Leitung und alles an einer Leitung. Die Werte so wählen, dass die leicht ausgewertet werden können, sodass du auch eben zwei oder mehrere Stellen sicher erkennen kannst.
Die Werte so
wählen, dass die leicht ausgewertet werden können, sodass du auch eben
zwei oder mehrere Stellen sicher erkennen kannst.
Rechne mal vor, wie "leicht ausgewertet" geht. Mit 10 Kontakten in Reihe und Abstufung 1-2-4-8.. bekommt man am letzten 512. Jetzt sind Eins und Zehn aktiv, macht dann 513 - das bekommt man nicht mehr ausgewertet.
Oder wir machen alle 1..9 auf und unterscheiden gegen nur 10 offen?
Hier gibt es sicher viele Leute die so etwas rechnerisch können. Ich müsste das händisch ausprobieren. Natürlich ist mir die Schwierigkeit mit "auf Kipp" bewusst, aber da kannst du dann vielleicht doch noch eine Leitung dazu nehmen.
In jedem Fall kannst du aber die Leitungen so reduzieren, wenn es am Ende auch nicht nur eine Leitung ist.
Jetzt habe ich auch wieder gefunden wie was ich meinte.
Mit dem Maschenstromverfahren müsste das funktionieren. Damit könnte man doch sicher die Leitungen reduzieren.
Ist ja nur so eine Idee von mir. Also nicht gleich wieder mit Dreck schmeißen.
Jetzt habe ich auch wieder gefunden wie was ich meinte.
Mit dem Maschenstromverfahren müsste das funktionieren. Damit könnte man
doch sicher die Leitungen reduzieren.
Ist ja nur so eine Idee von mir. Also nicht gleich wieder mit Dreck
schmeißen.
Es ist leicht, die Tastaturbefehle einer Tastatur nicht auszuwerten, wenn zwei oder mehr Kontakte gleichzeitig geschlossen sind, bzw. "melden".
In diesem Fall sehe ich null Chancen, hier mit Maschenberechnungen weiter zu kommen..
Aber wo 8 Leiter vorhanden sind und darin auch eine Spannungsversorgung, kann man allerhand unterbringen, wenn man mal an MUX u.ä denkt.
gibt ja nur 2 mögliche Zustände offen oder geschlossen 1Bit *12
Diese 12 Bit müssen ja nicht wahnsinnig schnell übertragen werden, jeder Kontakt braucht ja Zeit zum öffnen und schliessen, also würde ich seriell übertragen, bei Bedarf noch mit JJJJ/MO/TA-HH/MM/SS also noch mal 21-22 Byte zu den 12 Byte von vorher, macht 25 Byte und mit dem 19200 Bd geht das in 1,3ms