способе регулирования и стабилизации нагрева. То есть, не надо пересчитывать напряжение и мощность в угол открытия триака,
а сразу пользоваться временем. Делюсь.
/* Объявляем переменную в виде таблицы зависимости времени открытия триака (от перехода напряжения через ноль) в микросекундах
от необходимого процента мощности. Числа по порядку соответствуют доле мощности от 0 до 100% с интервалом 1%*/
unsigned int table[] = {10000, 9362, 9097, 8892, 8718, 8564, 8425, 8295, 8174, 8060, 7952, 7848, 7748, 7652, 7559, 7468,
7380, 7294, 7211, 7129, 7048, 6969, 6892, 6816, 6741, 6667, 6594, 6522, 6450, 6380, 6310, 6241,
6172, 6104, 6037, 5970, 5903, 5837, 5771, 5706, 5641, 5576, 5511, 5447, 5383, 5319, 5255, 5191,
5127, 5064, 5000, 4936, 4873, 4809, 4745, 4681, 4617, 4553, 4489, 4424, 4359, 4294, 4229, 4163,
4097, 4030, 3963, 3896, 3828, 3759, 3690, 3620, 3550, 3478, 3406, 3333, 3259, 3184, 3108, 3031,
2952, 2871, 2789, 2706, 2620, 2532, 2441, 2348, 2252, 2152, 2048, 1940, 1826, 1705, 1575, 1436,
1282, 1108, 903, 638, 0
};
byte power; //Процент мощности
unsigned int latency; //Время задержки
void setup()
{
Serial.begin(9600);
}
/* В данном скетче программа просто последовательно перебирает значения доли мощности от 0 до 100% с шагом 1% для
демонстрации. В реальной программе надо будет выбрать нужный процент мощности. Он равен положению нужного значения
задержки в таблице*/
void loop ()
{
for (power=0;power<101;power++)
{
delay (100);
latency=table[power];
Serial.print(power);
Serial.print(" ");
Serial.println(latency);
}
}
Полагаю, что те, кто хоть немного ориентируется в программировании Ардуино (типа меня),
поймут, о чем речь.