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

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

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

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

Взарание спасибо)
(33 баллов) 2 9

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;//переменная переключателя}

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

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

    94 балл(ов)

  2. parovoZZ

    76 балл(ов)

  3. Евгений Евтишенков

    38 балл(ов)

  4. sser

    20 балл(ов)

  5. Валентин

    5 балл(ов)

  6. Tima23

    3 балл(ов)

Награды месяца
1-е место: Espruino Pixl.js
2-е место: Espruino Puck.js
3-е место: Espruino Pico

...