Настольная гирлянда

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
baffer555
Родился
Сообщения: 1
Зарегистрирован: Чт дек 16, 2021 12:46:14

Настольная гирлянда

Сообщение baffer555 »

Добрый день. Помогите доредактировать код настольной гирлянды чтобы можно было управлять ик пульта. На данный момент реализованно только однократное действие при нажатие на кнопку на пульте.

main

Код: Выделить всё

#include "FastLED.h"
#define NUM_LEDS    7
#define LED_PIN     5
#define COLOR_ORDER GRB
#define LED_TYPE WS2811
CRGB leds[NUM_LEDS];
#include <IRremote.h>
#include <IRremoteInt.h>
#define MASTER_BRIGHTNESS   255
#define STARTING_BRIGHTNESS 64
#define FADE_IN_SPEED       32
#define FADE_OUT_SPEED      20
#define DENSITY            255
IRrecv irrecv(2); // Указываем пин, к которому подключен приемник
decode_results results;
unsigned long knopka;//Переменная для хранения кода нажатой кнопки
int ihue = 0;
int thissat = 255;
int thisdelay = 20;
//colortwinkles
enum { GETTING_DARKER = 0, GETTING_BRIGHTER = 1 };
void brightenOrDarkenEachPixel( fract8 fadeUpAmount, fract8 fadeDownAmount)
{
for( uint16_t i = 0; i < NUM_LEDS; i++) {
    if( getPixelDirection(i) == GETTING_DARKER) {
      // This pixel is getting darker
      leds[i] = makeDarker( leds[i], fadeDownAmount);
    } else {
      // This pixel is getting brighter
      leds[i] = makeBrighter( leds[i], fadeUpAmount);
      // now check to see if we've maxxed out the brightness
      if( leds[i].r == 255 || leds[i].g == 255 || leds[i].b == 255) {
        // if so, turn around and start getting darker
        setPixelDirection(i, GETTING_DARKER);
      }
    }
  }
}
setup

Код: Выделить всё

void setup() {

delay(3000);
  FastLED.addLeds<LED_TYPE,LED_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  FastLED.setBrightness(MASTER_BRIGHTNESS);
Serial.begin(9600);// Запускаем серийный порт
irrecv.enableIRIn(); // Запускаем прием
pinMode(5, OUTPUT);//Определяем 12-й пин на вход
}
void

Код: Выделить всё

void loop() {
  if (irrecv.decode(&results)) // Если данные пришли
{
knopka=results.value;
Serial.println(knopka, DEC);// Отправляем полученную данную в консоль
if (knopka=results.value){
menu();
irrecv.resume(); // Принимаем следующую команду
}
}
}
menu

Код: Выделить всё

switch (knopka) {
case 11419:
blink();
//irrecv.resume();
break;
case 27803:
twinki();
//delay (500);
//irrecv.resume();
break;
  case 21661:
rainbow_fade();
break;
}
}
Morroc
Друг Кота
Сообщения: 19494
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Настольная гирлянда

Сообщение Morroc »

[uquote="baffer555",url="/forum/viewtopic.php?p=4142520#p4142520"]чтобы можно было управлять ик пульта.
...
реализованно только однократное действие при нажатие на кнопку на пульте.[/uquote]
Так управлять с ик пульта можно ? ничего не хотите добавить ? тогда зовите телепатов :))
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

Re: Настольная гирлянда

Сообщение Martian »

Код: Выделить всё

void loop() {
  if (irrecv.decode(&results)) // Если данные пришли
{
knopka=results.value;
Serial.println(knopka, DEC);// Отправляем полученную данную в консоль

if (knopka=results.value){
Это условие некорректно, так как в таком варианте оно не сравнивает, а выполняет присваивание переменной knopka значение results.value. Кроме того, Вы уверены, что значение переменной knopka может где-то ещё успеть измениться, что его надо проверять ?
Morroc
Друг Кота
Сообщения: 19494
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Настольная гирлянда

Сообщение Morroc »

Но оно и не мешает никак.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Ответить

Вернуться в «Arduino»