Мужики, ничего не понимаю. Что Вы обсуждаете? Вроде ж на наскальном рисунке из поста #27 у красного светодиода нет никакого транзистора, зато резистор есть. А светится, как я понял именно он! Или там опять не схема, а мозготрах?
у меня устойчивое ощущение троллинга нас, одним из “обиженных” ранее, под разными аккаунтами.
ИМХО.
Теперь по коду (только я возьму версию из 45-го поста, с той – первой работать невозможно.
const int fr = 12;
const int ger = 10;
const int dh = 4;
const int skd = 7;
const int sw = 2;
const int sk = 8;
// Зачем переменные, которые используются только в одной функции
// делать глобальными? Тем более, с такими куцыми названиями?
bool fl;
bool fld;
int znw;
void setup() {
pinMode(fr, INPUT);
pinMode(ger, INPUT);
pinMode(dh, INPUT);
pinMode(sw, OUTPUT);
pinMode(sk, OUTPUT);
pinMode(skd, OUTPUT);
Serial.begin(9600);
}
void loop() {
// -------------------
// Вся вот эта байда
// int znf = digitalRead(fr);
// if (znf == 1) {
// fl = true;
// } else {
// fl = false; //проверка света в ванной
// }
// Эквивалентна одной единственной строке
fl = digitalRead(fr);
//ВАННА
// Неясно зачем здесь две переменные fld и znw?
// Каждая из них потом используется только в одном месте
// Оставить одну и использовать в обоих местах
fld = znw = digitalRead(dh); // положение двери в ванной
// -------------------
// Вся вот эта байда
// if (znw == 1) {
// if ( fl == false ) {
// digitalWrite(sw, HIGH);
// } else {
// digitalWrite(sw, LOW);
// }
// } else {
// digitalWrite(sw, LOW);
// }
// Эквивалентна одной единственной строке
digitalWrite(sw, znw ? !fl : LOW);
// Это у нас уже ушло
// Serial.print( znf); //
Serial.print( znw );
//КОРИДОР
// Напишу в одном месте, но касается всех подобных мест.
// Не стоит писать "if (znk == 0)" это Вы сейчас помните,
// что это означает и то, 0 с 1 запросто перепутать можете.
// В этих случаях (а у Вас их много) пишется onlie функция
// А здесь только используется. например где-то выше loop пишете
//
// inline doorIsOpened(void) {
// return digitalRead(ger) == 0;
// }
//
// А здесь пишете
//
// if (doorIsOpened()) { ...
//
// Сравните понятность и читабельность!
int znk = digitalRead(ger);
if (znk == 0) {
if (fl == true || fld == 1) {
digitalWrite(skd, HIGH);
delay(150);
digitalWrite(skd, LOW);
delay(90);
} else {
digitalWrite(sk, HIGH);
delay(5000);
}
} else {
digitalWrite(sk, LOW);
digitalWrite(skd, LOW);
}
Serial.println(sw);
Serial.print( znk);
}
Ну, тогда я лопухнулся, комментируя код ![]()
@пуЛьс , вы в следующий раз , в месте, где проводники соединяются точку ставьте - и к вам меньше вопросов будет, и жить будет проще))
елки зеленые))
ну не обмануть этих умников ))
че ты всегда “вскрываешься” без “помучать”?
Виноват, не понял педагогического замысла, потому что был не внимателен - впредь постараюсь исправиться))
Красный св.диод напрямую от контролера идёт через резистор. он у меня как “сигнал”. Кстати, его резистор больше всего нагревается. Он не тлеет.
А светятся (“тлеют”) белые светодиоды. Которые по три последовательно. Кстати, только что собрал схему опять; померил напряжение на эмитор-коллекто, при выкюченных св.диодах (но “тлеющих”) -1,7 v . А управляющий с платы на базу (до резика) 0,08 v (ничто)
Спасибо! Потом сменю. А чего нельзя -не сказали?
Нет никакого троллинга!!! -не занимаюсь!
Такое ощущение, что я недостаточно ещё объясняю!
Вот собрал опять схему -всё работает отлично -это по коду! Правда там ещё с фоторезистором надо разбираться…
Одна большая проблема -тлеют эти 6 (2 по 3) св.диодов.
Да-да… я понял, знаю эту условность.
Эту схему я рисовал для себя. потом, как зашёл на форум и в процессе кинул её вам сырую -не доделанную для общего форума.
Ты так и не назвал модель/марку светодиодов и их характеристики.
Я в ардуино меньше пол года назад начал изучать -на всё пока времени нету.
Я ввёл дополнительный “флажок” чтобы включая светодиоды в коридоре, было условие что флажок опущен -что значит -свет в ванной не горит. Если горит (флажок поднят) -включается красный св.диод. Если не горит -белые
Вот для этого:
-мне надо знать что горит -свет лампочки в ванне (очень яркая) или св.диоды.
Для этого я подбираю для фоторезистора подходящее полузатемнённое место где бы он срабатывал на яркий свет лампочки и не срабатывал на сами св.диоды, дающий слабое освещение. то есть чтобы эти св.диоды сами через фоторезистор не давали сигнал -поднять флажок (мол, свет включен). Чтобы сами св.диоды своим светом не гасили себя через фоторезистор. Короче -одна переменная для лампочки, другая для св.диода. "(но не на сам сигнал св.диода, а на датчик Холла, который показывает что дверь приоткрыта и включает св.диоды).
С фоторезистором я потом ещё буду разбираться. я ему оставил вывод чтобы потом подсоединить к аналоговому пину чтобы регулировать чувствительность, чтобы сделать универсальным для двух “интенсивностей света”.
Ха! А вытащите в этом режиме один из светодиодов из макетки. Хот горящий, хоть “тлеюший”.
И что ждать?
-один из белых… и выключились остальные два…
Красный вообще… “независимый эксперт”..
Фото с вытащеным “тлеющим” и горящими ярко рядом. Без вспышки.





