Close

Hint

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (celkem z 5)
  • Autor
    Příspěvky
  • odpověď na: adresovatelný led pásek, změna efektů #10509
    Hint
    Účastník

    Tak po menší úpravě vašeho návrhu už zřejmě funguje jak má, přepíná po sériové lince i přes IR. Pokud to tedy chápu správně, místo použití příkazu switch mám použít vypsaní všech možností podmínkou if
    a zárověň mě napadlo zda jde ještě nějak zapsat podmínka, když nepřijme data která má v podmínkach, neudělá nic a bude pokračovat v předchozím efektu. Uvědomil jsem si totiž že při ovladaní TV bude IR ovlivňovat i arduino přijímač a vypínat efekty.

    
    #include <Adafruit_NeoPixel.h>
    #include"IRremote2.h"
    
    #define pinIN 4
    #define PIN   6
    // Parametr 1 = počet pixelů (LED diod) na pásek
    // Parametr 2 = číslo PINu Arduina
    // Parametr 3 = pixel type flags, add together as needed:
    // NEO_KHZ800  800 KHz kmitočet pro pásky s WS2812 LED diodami)
    // NEO_GRB  Pixely jsou zasílány ve formátu GRB 
    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(36, 6, NEO_GRB + NEO_KHZ800);
    IRrecv dalkoveOvl(pinIN);
    decode_results vysledek;
    char pozice;
    
    void setup() {
      pixels.begin();
      Serial.begin(9600);
      pixels.show();
      delay(250);
      dalkoveOvl.enableIRIn();
    }
    
    void loop()
    {
      if (dalkoveOvl.decode(&vysledek)) 
      {
        detekceKlaves();
        dalkoveOvl.resume();
      }
      if (Serial.available() > 0)
      {
        pozice = Serial.read();
        if(pozice == '1') blika();
        if(pozice == '2') blika1();
      }
    }
    
    void detekceKlaves() 
    {
      if(vysledek.value == 0xFFA25D) 
      {
    
          Serial.println("Stisknuto CH-");
          blika();
    
      // pauza pro přehlednější výpis
      delay(500);
      }
      if(vysledek.value == 0xFFE21D) 
      {
    
          Serial.println("Stisknuto CH-");
          blika1();
    
      // pauza pro přehlednější výpis
      delay(500);
      }
      
    }
    
    void blika()
    {
     dalkoveOvl.resume();
    
      while(!(Serial.available() || dalkoveOvl.decode(&vysledek)))
      {
        pixels.setPixelColor(6, pixels.Color(255,255,255));
        pixels.show();
        delay(1000);
        pixels.setPixelColor(6, pixels.Color(0,0,0));
        pixels.show();
        delay(200);    
        pixels.setPixelColor(6, pixels.Color(255,255,255));
        pixels.show();
        delay(1000);
        pixels.setPixelColor(6, pixels.Color(0,0,0));
        pixels.show();
        delay(200);
      }
    }
    
    void blika1()
    {
     dalkoveOvl.resume();
    
      while(!(Serial.available() || dalkoveOvl.decode(&vysledek)))
      {
        pixels.setPixelColor(16, pixels.Color(255,255,255));
        pixels.show();
        delay(1000);
        pixels.setPixelColor(16, pixels.Color(0,0,0));
        pixels.show();
        delay(200);    
        pixels.setPixelColor(16, pixels.Color(255,255,255));
        pixels.show();
        delay(1000);
        pixels.setPixelColor(16, pixels.Color(0,0,0));
        pixels.show();
        delay(200);
      }
    }
    
    odpověď na: adresovatelný led pásek, změna efektů #10499
    Hint
    Účastník

    Děkuji moc za pomoc a váš čas. zkusím něco sepsat.

    odpověď na: adresovatelný led pásek, změna efektů #10493
    Hint
    Účastník

    omlouvám se zde přikládám zdroje knihovny
    knihovna ledpasku

    github knihovna ledpasku

    knihovnu na IR ovladač jsem stahl tady
    IR remote
    možná by pomohlo tohle
    IR remote wiki

    odpověď na: adresovatelný led pásek, změna efektů #10489
    Hint
    Účastník

    bohužel se mi nepovedlo to nějak rozběhat, ovladač pouze vypne probýhající smyčku, ale nespustí žádnou a přitom po seriové lince vypisuje stisknuté klavesy.

    odpověď na: adresovatelný led pásek, změna efektů #10484
    Hint
    Účastník

    Díky moc, hned jsem vaši radu vyzkoušel a opravdu teď mohu vypnout smyčku i pomoci ovladače a sepnutí nového efektu přes seriovou linku pracuje ještě lépe než předtím, bohužel ale nevím proč, přestal program přijímat sepnutí smyček efektů, pouze ukončí smyčku. Ovladačem nejde spustit efekt ani po resetu arduina, když ještě nic neběží.
    Omlouvám se snad jsem to napsal srozumitelně.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (celkem z 5)