+2 голосов
Здравствуйте, подскажите пожалуйсто я в теме новичок.

Как управлять с помощью ИК пульта светодиодом. В своём скетче я смог добится только включение и выключение от ДВУХ кнопок.

Как сделать вкл/выкл от одной кнопккнопкии ИК пульта?

Как управлять яркостью светодиода?

Взарание спасибо)
(31 баллов) 7

3 Ответы

+2 голосов
 
Лучший ответ

Управление одной кнопкой:

#include "IRremote.h"

IRrecv irrecv(2); // Пин приемника

int led = 13; // Пин светодиода

boolean ledState = false;  // Состояние светодиода

decode_results results;

void setup() {
  pinMode(led, OUTPUT);
  irrecv.enableIRIn();
}

void loop() {
  if ( irrecv.decode( &results )) {
    if(results.value == 0xFFA857) {  // 0xFFA857 заменить на код кнопки пульта
       ledState = !ledState;  // Инвертируем состояние светодиода
    }    

    digitalWrite(led, ledState);    

    irrecv.resume();
  }
}

Управление яркостью:

#include "IRremote.h"

IRrecv irrecv(2); // Пин приемника

int led = 13; // Пин светодиода

int brightness = 128;  // Яркость светодиода, по умолчанию 50% (от 0 до 256)
int brightnessPerStep = 16;  // Шаг яркости

boolean ledState = false;  // Состояние светодиода

decode_results results;

void setup() {
  pinMode(led, OUTPUT);
  irrecv.enableIRIn();
}

void loop() {
  if ( irrecv.decode( &results )) {
    if(results.value == 0xABCDEF) {  // 0xABCDEF заменить на код кнопки пульта
       ledState = !ledState;  // Инвертируем состояние светодиода
    }  

    if(results.value == 0x111111 && brightness < 256) {  // 0x111111 заменить на код кнопки пульта
       brightness = brightness + brightnessPerStep;
    }   

    if(results.value == 0x000000 && brightness > 0) {  // 0x000000 заменить на код кнопки пульта
       brightness = brightness - brightnessPerStep;
    }    

    analogWrite(led, ledState ? brightness : 0);    

    irrecv.resume();
  }
}

(1.6 тыс. баллов) 2 9 33
выбран
Огромное спасибо!!!)
+2 голосов
bool kn = 0;
bool out1 = 0;
bool trig1 = 0;
bool trig2 = 0;
void setup()
{}
void loop()
{
//kn = ...; //с помощью этой переменной можно управлять переключателем
if (kn)  {
 if (! trig2) trig1 = ! trig1;
}
trig2 = kn;
out1 = trig1;//переменная переключателя}

(353 баллов) 2 4 17
исправил
Непонятно можно поподробней
Переменная kn должна принимать значение кнопки пульта
Переменная out1  будет 1 при первом нажатии и 0 при втором нажатии (true или false )
Я пробовал делать по анологии этого, (у меня есть буклет)
Не работает, точнее  от кнопки прибавки яркости вкл, от кнопки убавки яркости выкл
С ШИМ не все пины можно назначить , у Вас на какой пин светодиод подключен и какой контроллер?
Код как код оформлять надо.
+2 голосов
И как это делается в XOD IDE

https://www.youtube.com/watch?v=ZZBhK_2ra9Y
(222 баллов) 1 2 12 1 отметил
А про это вообще кто-то спрашивал? О_о
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. parovoZZ

    18 балл(ов)

  2. sser

    12 балл(ов)

  3. Тигрыч

    8 балл(ов)

  4. Un_ka

    8 балл(ов)

  5. artalex

    6 балл(ов)

  6. Vitalii_Mashinkin

    2 балл(ов)

Награды месяца
1-е место: Teensy 3.6
2-е место: Teensy 3.5
3-е место: Teensy 3.2

...