Уважаемые, приветствую.
Закопался тут в программировании одного скетча для Arduino, в общем есть работающий скетч который включает плавно LED лампу при помощи PIR-датчика:
#define fadePin 3 //пин управления MOSFET транзистором
int pirPin = 2; //пин подключения управляющего сигнала PIR датчика
int light; //переменная для хранения состояния света (вкл/выкл)
void setup(){
pinMode(pirPin, INPUT); //настариваем 2 пин как вход для сигналов с датчика
pinMode(fadePin, OUTPUT);// 3 пин на выход, для управления транзисотором
light = 0; //устанаваливаем переменную для первого включения света
}
void loop(){
if(digitalRead(pirPin) == HIGH ) //если сигнал с датчика высокого уровня(т.е. есть движение)
{
if(light == 0) //и если свет не был включен
{
for(int i=0; i<=150; i++) //то плавно включаем свет
{
analogWrite(fadePin, i);
delay(10); //каждые 10мс увелияение на 1
}
light = 1; //и передаем значение переменной, что свет включен
}
}
else //иначе
{
if(light == 1) //если свет включен
{
for(int i=150; i>=0; i--)//плавно гасим его
{
analogWrite(fadePin, i);
delay(10);
}
light = 0; //и передаем значение переменной, что свет выключен
}
}
}
Так же есть простой скетч который включает/выключает LED по заданным кнопка с ПДУ:
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
irrecv.enableIRIn(); // запускаем прием
}
void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
switch ( results.value ) {
case 0xE0E0E01F:
digitalWrite( 13, HIGH );
break;
case 0xE0E0D02F:
digitalWrite( 13, LOW );
break;
}
irrecv.resume(); // принимаем следующую команду
}
}
Появилась необходимость сделать плавное включение/выключение LED ленты с ПДУ. Я так понимаю мне нужно заменить команду включения светодиода на плавную подачи нагрузки, буду признателен за помощь с кодом ребят. Думаю такая наработка будет многим полезна, схемку потом выложу.