http://wiki.amperka.ru/%D0%BA%D0%BE%D0% ... 0%B8%D0%BA - сам урок.
Есть схема:

Есть код:
Код: Выделить всё
#define LED_PIN 13
#define LDR_PIN A0
#define POT_PIN A1
int ledOn = false;
void setup()
{
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int lightness = analogRead(LDR_PIN);
int threshold = analogRead(POT_PIN);
boolean tooDark = (lightness < threshold);
if (tooDark) {
digitalWrite(LED_PIN, HIGH);
if(!ledOn) Serial.println(lightness);
ledOn = true; // светодиод горит
} else {
digitalWrite(LED_PIN, LOW);
if(ledOn) Serial.println(lightness);
ledOn = false; // светодиод не горит
}
delay(500);
}Если мы установили светодиод так, что он светит на фоторезистор, как нам нужно изменить программу, чтобы устройство работало верно?
В этом коде я добавил определение переключения светодиода, то есть я знаю, при каких уровнях освещённости он загорается/тухнет. Загорается при уровне всегда ниже, чем когда тухнет. Задержка в конце добавлена, чтобы засечь визуально, когда схема самовозбуждается, т. е светодиод начинает мигать (без задержки светодиод горит вполсилы).
Вот вывод консоли при самовозбуждении:
Код: Выделить всё
248
248
404
252
405
249
771
Значения всегда рандомные, разница меняется взависимости от порога (поворота потенциометра).
Собственно, моя проблема: не могу ответить на вопрос поставленный в уроке. Проблему вижу, а предположений, как её решить, нет


