Guten Morgen ihr lieben. Ich habe ein kleines Problem oder besser gesagt eine Frage.
Ich habe ein Arduino Mega mit Motor Shiled drauf bedeutet ich habe keine PWM Pins mehr zur verfügung.
Ich möchte nun über ein Taster ein LED Strip anmachen bzw du mehrmaliges drücken des Tasters auf grün, blau, rot oder gelb zu schalten.
Taster 1 mal drücken : grün
Taster noch 1 mal drücken : rot
.......
Taster noch 1 mal drücken : LED Strip aus
Hat jemand eine Ahnung wie der Code dafür aussehen könnte und die Schaltung.
Also habe schon ab und zu gelesen das ich 3 Mosfet Transistor brauche.
die 12 Volt kommen von einem externen Netzteil müsste nur überlegen wo grün, blau und rot anschließe.
Hoffe mir kann irgendjemand helfen?
mach mal 2 Teilprobleme daraus:
1.) Taster einlesen, entprellen und eine Modusvariable hochzählen.
Du kannst auch die Dauer messen, wie lange der Taster gedrückt wurd und bei einem langen Drücken die LED ausschalten.
2.) Welche LED-Strips hast Du oder mußt Du sie noch kaufen? Wenn Du sie noch kaufen mußt, dann kauf solche mit WS2812 Kontroller. Die kannst Du einzeln in Farbe und Helligkeit ansteuern. Ansonsten gibt es 12V LED strips wo alle LED gleich angeschlossen sind und der ganze Strip nur eine Fabre annehmen kann. Da brauchst Du 3 Transistoren.
Je nach Wert der Modusvariable steuerst Du die LED dann an.
// Eingabe über Button
static boolean lastStateButton;
static boolean counter;
boolean stateButton = digitalRead(button);
// Gedrückt halten wird nicht gezählt
if(stateButton == true && lastStateButton == false)
{
counter++;
Serial.println(counter);
if(counter >= 10) counter = 0; // Setzt den Counter zurück wenn er auf 10 ist; Modus 0 - 9 gültig
}
lastStateButton = stateButton;
Ich habe einen 100nF Kondensator eingebaut, dieser reicht mir vollkommen aus. Mit 330nF auch erfolgreich getestet, jedoch kann es hier beim ganz schnellen umschalten vorkommen das nicht gezählt wird, da der Kondensator noch nicht auf/endladen ist.
Nutzte diese Variante nur fürs Breadboard zum schnellen testen. Würde aber Problemlos gehen.