APA102 – funkce pro 4 tlačítka

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);   
}      

 

Napsat komentář