(11-02-2026, 00:28)KEN : Эта проблема решена?
Как не странно проблема сама как то рассосалась, сегодня начал именно с PB4 объявил analog_pin_t AnChasPin = A2; Что б с него считать данные. А я подумал, что комп перегрузил +
Ардуино иде 2.3.7 свежий поставил или просто выспался.
Спасибо за инфу. Я схему собрал и прямо на ней и кодю, периодически прошиваю проц, что б результат видеть ну и программатор не отсоединяю само собой. Да и резисторы на этот пин уменьшил до 10к как рекомендовано. Щас залью старую прошивку гляну, помогло или нет.
Попробовал, работает как нужно, всё моргает без танцев с бубнами и прочими движениями.
Пока вот, что получилось:
// int sensePin = 4; // Пин к которому подключен фоторезистор
int ledPin = 0; // Пин к которому подключен светодиод
analog_pin_t AnChasPin = A2; //Аналог пин время
analog_pin_t AnFotoPin = A3; // Аналог пин свет
int LedMorg( int pauz, int ledPin) // функция моргания светодиодами. экономим место
{
digitalWrite(ledPin, HIGH);
delay(pauz);
digitalWrite(ledPin, LOW);
delay(pauz);
}
int ReadChas() // функция перевода напряжения на аналоговом пину A2 в задержку выключения
{
Povtor:
delay(100);
int val = analogRead(AnChasPin);
delay(100);
int val2 = analogRead(AnChasPin);
if (val2 == val)
{
val2 = val / 150;
if (val2 <= 0) int val2 = 1;
if (val2 >= 7) int val2 = 6;
val = val2;
do {
--val2;
LedMorg(200,0); // идём моргать 200-пауза 0-пин
} while(val2 > 0);
}
delay(1500);
if (val >= 7) goto Povtor; // ловим ошибку датчика или хрен его знает чего если ошибка опросить датчики заново
return val;
}
int ReadFoto(){ // Подпрограмма определения освещения
delay(100);
int val = analogRead(AnFotoPin); // читаем что на а3 пине
if (val > 400) digitalWrite(1, HIGH); //вкл светодиод если значение меньше 400 НОЧЬ
else digitalWrite(1, LOW); // выключаем если день
return val;
}
void setup() {
pinMode(ledPin, OUTPUT); // назначаем пин ledPin выходом
pinMode(1, OUTPUT);
pinMode(AnChasPin, INPUT); // назначаем пин AnChasPin аналоговым входом
pinMode(AnFotoPin, INPUT); // назначаем пин AnChasPin аналоговым входом
}
void loop() { // тело программы
int a = ReadChas(); // вызов функции из тела программы а=сколько часов работать
int b = ReadFoto(); // b = день или ночь , но пока там то что на входе A3
// do { //
// --a; // это код для проверки что нам функция возвращает
// LedMorg(200,1); // время работы \ включения
// } while(a > 0); //
}