PHP код:
#include <avr/delay.h>
int AC_pin = 10; // выход для симистора
volatile uint16_t dim;
uint8_t dimmer=0;// уровень димирования (0-255) 0 = max, 255 = min
void setup()
{
pinMode(AC_pin, OUTPUT);
}
void loop()
{
PlavniyOgon();
}
void PlavniyOgon(){
attachInterrupt(0, FrontUp, RISING); //прерывание по изменению уровня с низкого на высокий
for (int i=1; i<6; i++){
AC_pin=i;
if(dimmer < 255) dimmer++; else dimmer=0; // уменьшения яркости лампы
dim=33*dimmer;
delay(50);
}
AC_pin=i+1;
if(dimmer > 0) dimmer--; else dimmer=0; // увеличение яркости лампы
dim=33*dimmer;
delay(50);
}
detachInterrupt(0);
}
// Функция обработки прерывания на подъем
void FrontUp()
{
detachInterrupt(0);
_delay_us(dim+1000); // отсекаем лишнее
digitalWrite(AC_pin, HIGH); // включить симистор
_delay_us(20); // короткая пауза, чтобы обеспечить включение симистора
digitalWrite(AC_pin, LOW); // выключение симистора(он выключится когда полупериод достигнет нуля)
attachInterrupt(0, FrontDown, FALLING);
}
// Функция обработки прерывания на спад
void FrontDown()
{
detachInterrupt(0);
_delay_us(dim); // отсекаем лишнее
digitalWrite(AC_pin, HIGH); // включить симистор
_delay_us(20); // короткая пауза, чтобы обеспечить включение симистора
digitalWrite(AC_pin, LOW); // выключение симистора(он выключится
attachInterrupt(0, FrontUp, RISING);
}
Выложи последний свой скетчь, этот с грубыми ошибками и выкладывай через php.