4 tačítka – každé má jinou funkci. Funkce beží pouze pokud tlačítko držíme.
#include <APA102.h> // Define which pins to use. const uint8_t dataPin = 11; const uint8_t clockPin = 12; const int buttonPin1 = 10; // the number of the pushbutton pin const int buttonPin2 = 9; // the number of the pushbutton pin const int buttonPin3 = 8; // the number of the pushbutton pin const int buttonPin4 = 7; // the number of the pushbutton pin int last_button_press = 0; // promenna pro ulozeni posledniho zmacknuteho tlacitka APA102<dataPin, clockPin> ledStrip; // ledCount = počet LED na pásku const uint16_t ledCount = 30; rgb_color colors[ledCount]; void setup() { // initialize the pushbutton pin as an input: pinMode(buttonPin1, INPUT_PULLUP); pinMode(buttonPin2, INPUT_PULLUP); pinMode(buttonPin3, INPUT_PULLUP); pinMode(buttonPin4, INPUT_PULLUP); vyresetuj_pasek(); } void loop() { last_button_press = 0; if (digitalRead(buttonPin1)== LOW){ last_button_press = 1; } if (digitalRead(buttonPin2)== LOW){ last_button_press = 2; } if (digitalRead(buttonPin3)== LOW){ last_button_press = 3; } if (digitalRead(buttonPin4)== LOW){ last_button_press = 4; } switch (last_button_press){ case 1: sekvence1(); break; case 2: sekvence2(); break; case 3: sekvence3(); break; case 4: sekvence4(); break; default: vyresetuj_pasek(); break; } } void vyresetuj_pasek(){ //reset pasku - vypne vsechy LED ledStrip.startFrame(); for(uint16_t i = 0; i < ledCount; i++) { // poslat barvu na jednu LED: Červená(0-255), Zelená(0-255), Modrá(0-255), Intenzita svitu (0-31) ledStrip.sendColor(0, 0, 0, 0); } //ukončení posílání ledStrip.endFrame(ledCount); } void sekvence1(){ // VYPLNI PASEK BARVOU int Red = 0; int Green = 255; int Blue = 0; int Alfa = 1; //zahájení posílání ledStrip.startFrame(); for(uint16_t i = 0; i < ledCount; i++) { // poslat barvu na jednu LED: Červená(0-255), Zelená(0-255), Modrá(0-255), Intenzita svitu (0-31) ledStrip.sendColor(Red, Green, Blue, Alfa); } //ukončení posílání ledStrip.endFrame(ledCount); } void sekvence2(){ // VYPLNI PASEK BARVOU int Red = 255; int Green = 0; int Blue = 0; int Alfa = 1; //zahájení posílání ledStrip.startFrame(); for(uint16_t i = 0; i < ledCount; i++) { // poslat barvu na jednu LED: Červená(0-255), Zelená(0-255), Modrá(0-255), Intenzita svitu (0-31) ledStrip.sendColor(Red, Green, Blue, Alfa); } //ukončení posílání ledStrip.endFrame(ledCount); } void sekvence3(){ // VYPLNI PASEK BARVOU int Red = 0; int Green = 0; int Blue = 255; int Alfa = 1; //zahájení posílání ledStrip.startFrame(); for(uint16_t i = 0; i < ledCount; i++) { // poslat barvu na jednu LED: Červená(0-255), Zelená(0-255), Modrá(0-255), Intenzita svitu (0-31) ledStrip.sendColor(Red, Green, Blue, Alfa); } //ukončení posílání ledStrip.endFrame(ledCount); } void sekvence4(){ // VYPLNI PASEK BARVOU int Red = 255; int Green = 255; int Blue = 255; int Alfa = 1; //zahájení posílání ledStrip.startFrame(); for(uint16_t i = 0; i < ledCount; i++) { // poslat barvu na jednu LED: Červená(0-255), Zelená(0-255), Modrá(0-255), Intenzita svitu (0-31) ledStrip.sendColor(Red, Green, Blue, Alfa); } //ukončení posílání ledStrip.endFrame(ledCount); }