толстый, какого USB! Ты бредишь штоле?
Мне нравится когда свою галиматню выдают на всеобщее обозрение.
Вооот, уже исправил, молодец.
…ец. Что исправил? Схема модуля есть?. Резисторы на оптронах одинаковые на 5-и и 12-и вольтоых модулях?
То, что написал одно, а потом исправил на другое. Дурачка не включай.
Это схема от другого блока. Но так держать, может угадаете.
Де?
Объясните, пожалуйста, не понимаю почуме не отключается реле IN1
Питание +5В подается на плату D1 и на контакт JD-VCC HW-280
GRD D1 → GRD HW-280
3.3 D1 → VCC HW-280
При LOW от D1 нет щелчка, диод бледнее гореть начинает, слабо горит или мерцает, но реле не меняет состояние. С D1 на IN1 приходит 3,3В при HIGH
Остальные реле нормально работают
? “Я, конечно, интуитивно догадываюсь, но хотелось бы уточнить.”(с)
А так, для начала, поменять местами с ближайшим и отчёт сюда.
А заодно и схему подключения со скетчем, ибо чёй-то у вас странненько подключено к модулю(и его схему тоже).
Ну можно и так подключить, по нормальному.
Поведение никак не изменится.
Скетч работает стабильно на других устройствах, но там платы с двумя реле были. А тут проблема только с первым, остальные три работают нормально. Но вот часть кода для этого канала (код не полный, часть записи значений переменных в базу данных выкинута)
const unsigned int FunPin = 16;
// Вентилятор
boolean fun_status = false; // Вентилятор не работает
unsigned long fanTimePause = 0; // Будет хранить время простоя вентилятора для автоматического режима
unsigned long fanTimeWork = 0; // Будет хранить время работы вентилятора для автоматического режима
bool fanIsRunning = false; // Флаг для работы в запрограммированном режиме
unsigned long previousFanPauseMillis = 0;
unsigned long previousFanWorkMillis = 0;
void setup()
{
pinMode(FunPin, OUTPUT); // вентилятор
digitalWrite(FunPin, HIGH);
}
void loop()
{
// Вентилятор
if (fun_status)
{
digitalWrite(FunPin, HIGH);
}
else
{
digitalWrite(FunPin, LOW);
}
// Вентилятор включится только если время работы и простоя более 1 секунды
if (fanTimePause > 1000 && fanTimeWork > 1000)
{
if (!fanIsRunning && (millis() - previousFanPauseMillis >= fanTimePause))
{
fanIsRunning = true;
previousFanWorkMillis = millis();
fun_status = true; // Включаем вентилятор
}
if (fanIsRunning && (millis() - previousFanWorkMillis >= fanTimeWork))
{
fanIsRunning = false;
previousFanPauseMillis = millis();
fun_status = false; // Выключаем вентилятор
}
}
else
{
fanIsRunning = false;
fun_status = false; // Выключаем вентилятор
}
}
Это предположение или вы всё же проверили? Беда в D0 или в IN1?
Я собрал, сфотографировал и разобрал. Обычно ж так все делают?
Молодцом! А ответ то будет?
При HIGH на выходе с D1 3,3В. При LOW - 0. Плата D1 работает нормально.
Если убрать с IN1 соединение с D1 и замкнуть IN1 с соседней GRD, то реле щелкает.
Т.е. и пин рабочий и канал реле рабочий. А вместе не работают! Магия!
Первое: прекратите использовать название платы т.к. вносите сумятицу из-за одноимённого пина.
Второе: если вы пришли за помощью(что означает что не справились сами), то делайте в точности, что вам говорят. Не надо додумывать и делать лишние эксперименты.
Пин D0 соединить с IN2. Джампер второго канала канала в HIGH. Скетч - блинк на D0. Результат сюда.
Не, UARTтам другие, а вот с D0 есть заморочки.
Смотрите. Соединяю D0 с IN1. Вентилятор к первой релюшке. Он постоянно работает. Светодиод-индикатор при HIGH светится ярко, а при LOW - бледнеет.
Перекидываю соединение с D0 на IN2. Вентилятор на вторую релюху. Все работает правильно, согласно расписания. Светодиод-индикатор при HIGH светится ярко, а при LOW - гаснет полностью.
Не важно на какой D прошить, результат не меняется.
Вот вам и ответ - не работает первый канал реле!
Был бы один, то да. Но у меня три штуки и все три с одинаковым поведением. Именно первая реле. Что-то как-то маловероятно, что не рабочие попадали именно на первое место
Разве что брак производства платы, чет не то сделали и в серию