Для примера работы с ползунками в CyberWrt выложили модуль "Dimmer"
Для работы с Arduino Nano потребуется установить модуль "Драйвер FTDI"
и прошить ардуинку кодом приведенном ниже
В примере реализовано 10-и ступенчатое управление, но ничто не мешает
подправить код и сделать регулировку от 0 до 255
PHP код:
#include <CyberLib.h> //Библиотека от Cyber-Place.ru
volatile uint8_t tic , Dimmer1 = 255 ;
uint8_t data ;
void setup ()
{
D4_Out ; D3_Out ; //Настраиваем порты на выход
D4_Low ; D3_High ; //установить на выходах низкий уровень сигнала
D2_In ; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль
attachInterrupt ( 0 , detect_up , LOW ); // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень
StartTimer1 ( halfcycle , 40 ); //время для одного разряда ШИМ
StopTimer1 (); //остановить таймер
UART_Init ( 57600 ); //инициализация порта
}
//********************обработчики прерываний*******************************
void halfcycle () //прерывания таймера
{
tic ++; //счетчик
if( Dimmer1 < tic ) D4_High ; //управляем выходом
}
void detect_up () // обработка внешнего прерывания. Сработает по переднему фронту
{
tic = 0 ; //обнулить счетчик
ResumeTimer1 (); //запустить таймер
attachInterrupt ( 0 , detect_down , HIGH ); //перепрограммировать прерывание на другой обработчик
}
void detect_down () // обработка внешнего прерывания. Сработает по заднему фронту
{
StopTimer1 (); //остановить таймер
D4_Low ; //логический ноль на выходы
tic = 0 ; //обнулить счетчик
attachInterrupt ( 0 , detect_up , LOW ); //перепрограммировать прерывание на другой обработчик
}
//*************************************************************************
void loop ()
{ Start
if ( UART_ReadByte ( data ))
{
if( data > 47 && data < 59 )
{
data = 225 -( data - 48 )* 25 ;
Dimmer1 = data ;
}
}
End }
На видео можно посмотреть как работает модуль "Dimmer"
Управление осуществляется из браузера с планшета