PS Die Raum Stripes werden Später nicht mit der Optionalen Aussenbeleuchtung zusammen hängen sprich die werden eh erst später kommen falls das mit der lightshow noch was wird aber mann kann ja schonmal einen buttonpin und einen led steuerpin mit einplanen später wird dann das dach geöffnet und das ganze dann nur noch angeschlossen neues programm rauf und fertig
Die Software richtet sich nach der Hardware.
Daher wäre es wichtig das Du mal einen Schaltplan erstellst wie das von Dir aus gedacht ist.
Wo soll die junge Hausbesitzerin 50 V her haben? Viel wahrscheinlicher ist, daß sie Girlanden über die Beleuchtung drapiert. Diese mechanische Belastung ist sehr viel vorstellbarer! Dann heißt es "Pappa leuchtet nicht mehr!". Dann möchte ich lieber den Lötkolben erwärmen als ein Pixel auswechseln zu müssen.
Sei bitte so gut, die von mir aus optionalen Widerstände noch in Deine ansonsten ja schöne Schaltung einzuzeichnen. Dann können wir gerne mit dem TO über den Nutzen diskutieren.
@tczoe Du hast leider meine Fragen aus #3 noch nicht beantwortet. Daher ist mir nicht klar, welchen Neopixeltyp er verwendet. WS2812 ist die schlechteste Wahl. WS2813 kann einen defekten Pixel vertragen. Bei WS2815 fließt bei 12 V weniger Strom, also sind weniger Einspeisepunkte notwendig.
Um das abzukürzen, stelle ich ein paar grundsätzliche Fragen, die kurzen Antworten dazu sind sicher einfacher aufzulösen.
- Möchtest Du die Taster an einem analogen PIN mit einem Widerstandsnetzwerk betreiben oder für jeden Taster einen digitalen PIN am Controller nutzen?
- Können wir uns darauf verständigen, dass die 8 Stripes innerhalb, alle wieder aneinander verbunden werden? (Dann hast Du einen PIN für innen und einen für aussen)
- Ist für alle Zimmer das selbe Lichtmuster vorgesehen?
Wenn die Zeit knapp ist - wende dich vom kopieren von Codezeilen ab. Mach ein Testprogramm für EINEN Raum, sodass alles funktioniert. Einen Raum auf 9 zu erweitern soll dann wesentlich einfacher sein, als dieses Copy-Paste-Falsch ausbessern.
Ich kenne kein Strip der diese Spannung überlebt ![]()
Ist doch nichts anderes als: Mache ich was falsch so Raucht das halt.
Ja die STripes werden wieder verbunden...
Naja muss ich jetzt nicht mehr zwindgend allerdings gehen damit sämtliche pins aus was für spätere erweiterungen schlecht wäre daher wäre es cool 4Taster über 2Analog eingänge zu holen
Ja in den zimmern soll das selbe lichtmuster vorhanden sein entsprechend dem array für die farb vorgabe das kann ich ja später erweitern oder ändern
Ähhm das dach hab ich jetzt mal nur den ersten teil verbunden ist klar das das später natürlich durch geleitet wird...
Ja hast Recht nachgezählt sind es nur 15 :-D aber ich seh gerade beim ersten reinhalten ins haus das evtl. noch je ein abschnitt schwinden muss :-( womit nur noch 12 Pro Raum übrig wären muss ich kucken ob ich wenns gelötet ist noch so flexibel bin um in der wand zu verschwinden aktuell fehlen 2mm für die kabel
Denke ich werde morgen anfangen zu fräsen dann kann ich auch die Tatsächlich exakte anzahl die wirklich verbaut ist sagen bis dahin nimm mal die 15 an die werd ich zumindest versuchen ein zubauen...
Ich sehe auch das es evtl. etwas hell sein könnte daher wäre für später ein taster zum dimmen nicht verkehrt ich werde auf jedenfall auf dem Dach Taster9 und einen weiteren Taster10 verbauen fürs spätere dimmen auch wenn das noch nicht im plan ist hauptsache der taster ist dann schon drann programmieren kann mann ihn ja dann später noch
Können wir uns auf die innentaster auf einem analogpin einigen?
Dann hast Du alles was drin ist an einem Ort und gut ist.
Brauchst nur genügend Widerstände. Bei 8 Zimmern würde ich die Kaskade so um 800 Ohm bis 1k je Taster bauen, dann bist in einem Bereich, der sicher zu händeln ist.
Ist das eine rhetorische Frage?
Ich denk mir das doch nicht aus Spass aus.
Wenn Du 2 Vierergruppen machst, fragst Du zwei Pins ab und musst bei jedem Umlauf 2 Werte zuordnen.
Du kannst auch mit einer globalen Umlaufvariablen arbeiten und bei jedem Umlauf die passende Zuordnung finden.
Aber wozu?
Mit 8 Tasten hast Du einen theoretischen Abstand von 128bit auf dem ADC für jede Taste.
Das ist mehr als genug.
Um mal die Vorschläge der Arrays aufzugreifen und so das Ganze einzukürzen, hier ein ungetesteter Entwurf mit den vorhandenen Libraries und Minimal-Vorgaben (2 LEDs pro Zimmer und 7 Taster bzw. Zimmer):
#include <Adafruit_NeoPixel.h> // Libary für Neopixel
#include <Bounce2.h> // Bounce2 Library für Taster
const uint8_t tasterPins[] = { A0, A1, 2, 3, 4, 5, 7 }; // 7 Taster = 7 Zimmer
const uint8_t tasterCnt = sizeof(tasterPins); // Größe des Taster-Arrays => 7
Bounce taster[tasterCnt];
//Neopixel Farbverwaltung/zuweisung
const uint8_t neoPixelZimmerPin = 6; // Neopixel-DatenPin
const uint8_t numPixelZimmer = 14; // 2 Pixel pro Zimmer, insges. 14 LEDs
Adafruit_NeoPixel zimmerpixels(numPixelZimmer, neoPixelZimmerPin, NEO_GRB + NEO_KHZ800);
const uint8_t MAX_COLORS = 3;
uint32_t colors[] = {
zimmerpixels.Color(255, 200, 255), //weiss
zimmerpixels.Color(0, 0, 255), //gruen
zimmerpixels.Color(0, 0, 0) //Aus
};
uint8_t farbpointer[tasterCnt]; // pointer für die jeweilige Farbe pro "Zimmer"
void setup() {
Serial.begin(9600);
for ( uint8_t i = 0; i < tasterCnt; i++ ) {
taster[i].attach(tasterPins[i], INPUT_PULLUP );
taster[i].interval(5); // debounce zeit
}
zimmerpixels.begin();
zimmerpixels.show();
}
void loop() {
for ( uint8_t i = 0; i < tasterCnt; i++ ) {
taster[i].update(); // alle Taster abfragen
}
for ( uint8_t i = 0; i < tasterCnt; i++ ) {
if (taster[i].fallingEdge()) {
Serial.print("taster "); Serial.print(i); Serial.println(" gedrueckt");
// Farbschema durchblättern
farbpointer[i]++;
if (farbpointer[i] == MAX_COLORS) {
farbpointer[i] = 0;
}
// Farben am LED-Segment aktualisieren
zimmerpixels.fill(colors[farbpointer[i]], 2 * i , 2); // (Farbe, erster ZimmerPixel, Pixel pro Zimmer)
zimmerpixels.show();
}
}
}
Ja, ich habe mitbekommen, daß die Tasterabfrage zukünftig analog erfolgen soll.
Es dient auch nur zur Darstellung einer kompakteren Lösung des Anfangsproblems, jeder Tasterbetätigung eine Aktion zuzuweisen.
Nein !
Nur mit 2 Taster gleichzeitig drücken bist dann schnell am Ende ![]()
Dann haben wir zur Zeit ca. 80 Pixel . 8 Räume je 5 Pixel (=15 LED) und die Rundumbeläuchtung.
Gut das sind jetzt nur noch 360 byte statt der hälfte des UNO Speichers, aber bissel was an Animation und sonstige Spielereien würde ich schon im Auge behalten und auf eine dann aufwendige Tasterabfrage verzichten. Da kann man besser den Fokus auf die Raumanimation legen meine ich.
macht gar nix, muss man nur wollen.
Ich weiss, dass Du nur von deinem Schaltbild ausgehst. Da ist natürlich ein Spannungsteiler nicht vorgesehen.
5V
|
R
|
A0 +---+-[R1]-+-[R2]-+-[R3]-+-[R4]-+-[R5]-+
| | | | |
\ \ \ \ \
\ \ \ \ \
| | | | |
GND----+------+------+------+------+
Ist mir aber auch egal.
Du wirst das schon machen.
Ich kenne das Schalbild mit Spannungsteiler. Habe hier einen Aufgebaut mit 6 Tastern. Geht keine Frage. Nur die Luft wird dünn bei 2 Taster gleichzeitig. Dann haben wir hier Netzteil oder Accu, siehe Post#28 was dann die Auswertung auf Analog nicht grade leichter und funktionsstabiler macht.
Drück doch mal 2 Taster gleichzeitg!
Was soll denn da passieren?
Davon mal abgesehen, dass Du wieder einmal ein Problem konstruierst, wo keines ist.
Das solltest Du mal in Hardware bei Dir aufbauen und dann testen.
Ich hab das hinter mir.
.. Ja teste, dann schreiben wir zum Thema ![]()
Ist ja nicht so dass ich mich grundsätzlich streube, Bei Soli´s Stellpult sind 6 Taster über Spannungsteiler verbaut.
Drück doch mal einen anderen Taster als den, den du eigentlich willst. ![]()
Was soll passieren, wenn du zwischen zwei Tastern kein "Keine Taste" erkennst?
Dann kannst du insgesamt 3 (eventuell alle signifikant unterschiedlich) Analogwerte sehen.
analogRead ist zwar langsamer als digitalRead, aber Prellen kann dich trotzdem stören...








