Евгений, поэтому ты эту всютему освоил, а я наоборот, я проф электрик и хочу немного внедрения электроники. вот на себе сначала начал тренироваться, в работе сначала ограничивался фото реле и таймером времени, теперь помимо этого на вэб, точнее на локальную сеть, хочу попробовать завязать. С вэбом сложнее, нужет статический айпи адрес, а у всех заказчиков как правило динамический
блок питание выше упомянутый на 12v и 2А, хватит того что я запитаю ардуину, а питание на релейный модуль возьму от 5v ардуины?
Категорически нельзя.
В ардуине маломощный линейный стабилизатор. Он расчитан на питание только самой Ардуины и, макстимум, пары слаботочных датчиков (не более десятков мА). Модулеми реле Вы просто его сожжете.
Лучше использовать либо блок 5В 2А, либо с 12В 2А Ардуину запитывать на ее собственный 12-вольтовый вход, а блок реле - от отдельного понижающего преобразователя достаточной мощности.
andriano, спасибо за совет, заказал стабилизатор напряжения, с али (86070 на LM2596),если я с блок питания 12v подам на ардуину, и от этих 12 вольт сделаю ответвление на этот стабилизатор (называю может и не правильно), и подстроечным резистором сделаю питание 5 вольт на релейный блок, так прокатит? (чтоб два блока питания не ставить)
Lelik, для электрика у Вас какие-то странные вопросы.
Да, подключать к источнику питания две разных нагрузка в параллель вполне допустимо и нормально.
Но вот что Вы подразумеваете под "резистором сделаю питание 5 вольт на релейный блок", не совсем понял. Если Вы собираетесь посадить на резисторе "лишние" 7 вольт, то, боюсь, это Вам не удастся. Если же имеется в виду подстроечный резистор для установки выходного напряжения преобразователя, то - да.
Lelik, для электрика у Вас какие-то странные вопросы.
Да, подключать к источнику питания две разных нагрузка в параллель вполне допустимо и нормально.
Но вот что Вы подразумеваете под "резистором сделаю питание 5 вольт на релейный блок", не совсем понял. Если Вы собираетесь посадить на резисторе "лишние" 7 вольт, то, боюсь, это Вам не удастся. Если же имеется в виду подстроечный резистор для установки выходного напряжения преобразователя, то - да.
Вы правильно все поняли.
А кто-нибудь пользует flprog?
приветтствую вас друзья. ну что я хочу вам сказать, наконец-то с горем пополам победил я свой проект, с CSS, который прислал Voodoo Doll, нихрена не разобрался толком, сделал только кнопки вертикально и все на этом... , сделал пока тупо на html. еще с чем не полуилось у меня разобраться, это с тем, что релейный модуль, (каналы) управляются ноликом, т.е. при запуске ардуины реле поумолчанию "втягиваются", подскажите как инвертировать выходы?
и еще вот какая фигня непонятная, 8ой канал релейного модуля, в какой только свободный пин не установлю (4,10,11,12,13) реле канала всегда "втянуто" и при нажатии на странице на кнопку, реле только переклацываети все, по факту остается включеным всегда и светодиод на этом реле светится в пол накала как бы по сравнению со всеми другими. 4 и 10 пин читал, они используются эзернет модулем для обмена, а другие-то что?
Спасибо ребят. Буду пробовать. Жаль времени много на это нет с основной работой и шабашками. Поэтому у меня это все немного вялотекуче проходит.
А ещё такой вопрос, возможно-ли сделать так, что если при пропадании электроэнергии, если какие-то реле были включены, то когда напряжение подадут обратно и эти реле тоже включились как было до отключения
Можно. Берете делитель 1:4, например 10 кОм + 30 кОм, конец 30 ком к плюсу 12 В, конец 10 к общему минусу, соединенные концы 10 и 30 - в один из проводов An. A1, A2 там, неважно. Объявляете его входом, делаете analogRead(). Будет некоторое число, надо посидеть с калькулятором поумножать, найти такое число чтобы если домножить/доделить то что там сказала analogRead(), получилось 12, когда на конце 30 кОм (плюсе 12) действительно 12. Когда будет 0 - будет ноль, но ардуина вырубится. Ставим конденсатор, между Gnd и +5V. Побольше, мкф так 10000. Всё, теперь у нас есть секунд 5, которые ардуина будет работать на конденсаторе, пока тот не кончится. В loop() пишем условие, которое проверяет что есть 12, если нет то делает из состояний 8 реле байт (у меня он уже был в массиве bool state[], из него было бы проще - умножить на 1 2 4 8 16 и тд и сложить), и записать этот байт в EEPROM. при включении проверять EEPROM и назад включать если в байте есть единица, двойка, четвёрка, 8, 16, 32 и т д.
Здравствуйте уважаемые друзья. Подскажите что может быть,скейч использую пока тот что указал выше. Схема подключения такая: блок питания 220/12 вольт 5 ампер. 12 вольт на прямую идёт на питание ардуино на которой установлена w5100 (далее буду называть её сетевой картой), релейный модуль питаю от блока питания 12 вольт, но через dc/dc преобразователь, который понижает на 5 вольт, с ардуино на релейный модуль идёт только "управление" каналов реле согласно скейчу. При загрузке ардуино, реле поумолчанию "втягивается" из-за этого пока использую нормально замкнутые контакты реле, чтоб при подачи питания на ардуину цепь размыкалась. Схема вся эта таботает нормально через Web server до тех пор пока к выводам релейного блока ничего не подключено, а как только подключаю нагрузку которая питает контактор на 220 вольт, по сетевой карте вижу что в момент команды на включение/отключение ардуино как будто перегружается, если включаю/отключаю реле к выводом которых ничего не подключено, работает всё нормально. Ни каких подтягивающих резисторов в схеме пока не использую. Из-за чего подобное может быть?
PS. Пока хочу отладить схему так, а потом буду ковырять код чтоб управлять реле активным минусом и тому подобное. Мне так сейчас просто удобнее. Потом и на css перейду
Хотя логически подумав, думаю не ардуино перегружается, а сетевая карта наверное, потому что при перезагрузке ардуино, все реле сработали бы наверное
Из-за того что в момент коммутации возникает помеха и она утекает по проводам в ардуину. Вам придётся:
1. Отвязать сигналы оптопарой. Берете 8 оптопар, PC817, 4N27/4N35 или что там попадётся/по вкусу, и соединить так:
- анод фотодиода либо эмиттер фототранзистора, у микросхемы это нижний правый вывод, если смотреть сверху и ключ (круглешок или выемка, вытравлен, выгравирован, напечатан или вырезан на корпусе, обозначает вывод 1) находится слева вверху, ноги микросхемы смотрят вниз (от вас). так вот, его соединить с минусом питания релейной платы. Выходом у 4N35 является вывод 5.
- катоды/коллекторы (выход, последний или следующий после анода вывод) - со входами релейной платы
- плюсы питания светодиодов, то есть аноды - первый вывод у любой опторазвязывающей микросхемы - с соотв. выходами ардуины, через резистор 330-510 Ом.
- минусы светодиодов с минусом ардуины. Минусы (катоды) светодиодов это вывод 2, у любой оптопары.
2. Параллельно светодиодам в оптопарах, то есть между концом резистора идущим к оптопаре, и минусом ардуины - плоскостные диоды задом наперёд, для подавления возможной мощной помехи обратной полярности. Задом это значит перекладиной к резистору (плюсу), хвостом к минусу. Подойдет стандартный диод 1N4007 он же M7. Перекладина (катод) обозначается полоской, напечатанной/вытравленной/выгравированной на корпусе.
3. Параллельно этим диодам керамические конденсаторы 0.022-0.1 мкФ для подавления наносекундной помехи.
Схема более не будет иметь общего минуса с релейной платой, поэтому
4. убрать из схемы DCDC преобразователь, не питать релейную плату от того же источника, от которого питается арда. Вам понадобится либо отдельный блок 220-5В, можно небольшой мощности (хватит 1А) т. к. релейная плата непрожорливая, либо если не будет то на 12, и далее через DCDC преобразователь.
В таком случае помеха не электрическая а электромагнитная. Экранировать. Избавляться от длинных проводов. Вплоть до того что это будет одна металлическая коробка и в ней 8 отверстий с фотодатчиками, которые уже в свою очередь включают оптопары, а адруина в другой такой же коробке, только там 8 лазеров. И между коробками 10 метров. Не бывает чтобы при полной развязке творилась такая хрень. Не. Бы. Ва. Ет.
Да, есть ещё вариант, "она прям по проводам 220". Лечится ЭМ-фильтром, это такая металлическая деталька с 4 выводами, с одной стороны 220 и с другой тоже 220, но чистое. Внутри дроссели и конденсатор, на корпусе так и написано "EMI filter". Думаю, дешёвые китайские блоки питания без надлежащей защиты есть благодатная бактериальная среда для такой заразы как помехи, проходящие через сеть. Хотя хз. Вы же там не 50-кВт компрессор коммутируете, я думаю. Хз, хз. Я прям аж в ступоре.
Прикиньте что я выявил, даже если контактор не подключеный к ардуино включать и отключать внепосредвственной близости, у меня это см 20-25, то сетевуха перегружается и когда прикасаешься к проводам идущие от ардуино к релейному модулю, шилд тоже перегружается. Сама арда при этом работает нормально.
И ещё подскажите пожалуйста не могу понять куда воткнуть digitalWrite(HIGH), чтоб управлять релейным модулем активным gnd. Пример этой строки если можно сделайте, а по подобию что нужно сделаю сам.
с кодом разобрался впринципе, нашел куда воткнуть этот digitalWrite(HIGH) :)
сейчас в CSS теперь хочу перевести это дело, за основу буду брать то, что скинул Woodoo. Ему за это отдельное спасибо
Voodoo Doll, подскажи пожалуйста, твой архив который ты скидывал ранее, там в main.js поменял ip в двух местах и скейче тоже в одном месте изменил ip, во всех этих трех местах один ip (192.168.1.99), скейч залил, открываю из папки control.html (в этой же папке лежат файлы jquery.js, main.js, style.css) открывается страница с кнопками, кнопки работают нормально, а цвета кнопок в зависимости от статуса, не меняются. что делаю не так?
кнопки я правда после этого всего расположил вертикально, расположил для удобства, добавив тег </br> после каждой кнопки в файле control.html на работоспособность никак не повлияло
помогите разобраться с кодом. Из-за непонятных глюков, связанные не то с железом, не то расположением звезд на небе, ардуину и w5100 решил отложить в сторонку, пока не "придут" другие такие же железки и решил все это дело сделать на WiFi модуле NodeMCU ESP-12e v3, за основу был взят скейч (и соответственно все остальные файлы для дальнейшей работы) от Voodoo Doll из 27 поста данной темы, скейч заработал нормально, страница отображается, при нажатии на кнопки релюхи клацают как нужно. У меня не полустлось присвоить айпишник данному модулю и он время от времени пеняется при перезагрузке модуля, подскажите как прописать IP-шник.
Voodoo, отзовись плз, помоги разобраться с кнопками страницы, чтоб они цвет меняли в зависимости от статуса, а то мой мозг уже кипит от кучи новой информации
У кнопок меняется класс (атрибут HTML class=), если в нём есть буква e - CSS зелёный, если d - красный. Покажите JS функцию, которая обрабатывает информацию, возможно несовпадает формат массива. В скетче он с s и цифрами в кавычках, то есть содержит имена. Эти имена должны проверяться в цикле, если их нет - то и в скетче надо убрать, оставив только состояние, в таком виде [0,0,1,0,1,0,0,0]
Или настроить DHCP так чтобы всегда выдавался один и тот же, и его прописать в HTML. В роутере есть таблица резервирования адресов, находится в свойствах Advanced network (network всмысле обычные сетевые настройки, не вайфай).
приветствую Вас друзья, ну я успешно допилил свой проект с вашей помощью, работает все стабильно, кнопочки цвет меняют, релюхи клацают. В общем все здорово. Отдельная благодарность Voodoo Doll. Думаю дальше расширять проект, хочу попробовать встроить часы и датчик освещенности чтоб в определенное время определенные каналы включались и отключались
не могу понять в скейче ошибка и второе как в HTML коде сделать так, чтоб пока отклика о выполнени наманды не пришло, нажатие на кнопку не реагировалось. а тобывает так, что каманда на включение/отключение по какой-то причине задерживается и если в этот момент еще нажать на кнопку несколько раз, то потом как отвиснет эта вся система, сколько раз нажал на кнопку, только раз и клацает релюха.
не могу понять в скейче ошибка и второе как в HTML коде сделать так, чтоб пока отклика о выполнени наманды не пришло, нажатие на кнопку не реагировалось.
Так тут вопрос не ставят. Никто не полезет смотреть ваш скетч.
Попробуйте сделать все сами, а если будут проблемы - тогда приходите. Только учтите, что приходить надо с уже сделанным, а жалобы "я не умею" тут никого не трогают, помощи не будет.
вот, держи дружище, все что угодно только чтоб вам удобно и легко было. скейч написал, вот только он не компелируется, можешь разобраться где косяк? :)
#include <ESP8266WiFi.h> //Библиотека для работы с WIFI
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h> // Библиотека для OTA-прошивки
const char* ssid = "TRENDnet"; //Имя точки доступа WIFI
const char* password = "11112222"; //пароль точки доступа WIFI
bool state[8]={0,0,0,0,0,0,0,0};
void setup() {
// Удаляем предидущие конфигурации WIFI сети
WiFi.disconnect(); // обрываем WIFI соединения
WiFi.softAPdisconnect(); // отключаем отчку доступа(если она была
WiFi.mode(WIFI_OFF); // отключаем WIFI
delay(500);
// присваиваем статичесий IP адрес
WiFi.mode(WIFI_STA); // режим клиента
WiFi.config(IPAddress(192,168,10,222),IPAddress(192,168,10,1),IPAddress(255,255,255,0),IPAddress(192,168,10,1));
// Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
delay(5000);
ESP.restart();
}
ArduinoOTA.setHostname("ESP8266-00001"); // Задаем имя сетевого порта
//ArduinoOTA.setPassword((const char *)"0000"); // Задаем пароль доступа для удаленной прошивки
ArduinoOTA.begin(); // Инициализируем OTA
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(0,OUTPUT);
pinMode(2,OUTPUT);
pinMode(14,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(15,OUTPUT);
}
void loop() {
String req;
char c;
// EthernetClient client=server.available();
if (client){
boolean currentLineIsBlank=true;
while (client.connected()){
if (client.available()){
char c = client.read();
req+=c;
if (c == '\n' && currentLineIsBlank) {
// if (req.indexOf("?")>-1) Serial.println(req.substring(6,req.indexOf(" HTTP")));
// DEBUG: Dump query
if(req.indexOf("s1")>-1) setrelay(1);
if(req.indexOf("s2")>-1) setrelay(2);
if(req.indexOf("s3")>-1) setrelay(3);
if(req.indexOf("s4")>-1) setrelay(4);
if(req.indexOf("s5")>-1) setrelay(5);
if(req.indexOf("s6")>-1) setrelay(6);
if(req.indexOf("s7")>-1) setrelay(7);
if(req.indexOf("s8")>-1) setrelay(8);
// Serial.println(req); // DEBUG: Dump full HTTP data
client.println("HTTP/1.1 200 OK"); // header
client.println("Content-Type: application/json");
client.println("Access-Control-Allow-Origin: *");
client.println("Connection: close");
client.println();
client.print("{");
client.print("\"s1\":"); // states
client.print(state[0]);
client.print(",\"s2\":");
client.print(state[1]);
client.print(",\"s3\":");
client.print(state[2]);
client.print(",\"s4\":");
client.print(state[3]);
client.print(",\"s5\":");
client.print(state[4]);
client.print(",\"s6\":");
client.print(state[5]);
client.print(",\"s7\":");
client.print(state[6]);
client.print(",\"s8\":");
client.print(state[7]);
client.println("}"); // end JSON
req="";
break;
}
if (c == '\n') currentLineIsBlank = true;
else if (c != '\r') currentLineIsBlank = false;
}
}
delay(1);
client.stop();
}
writerelay();
}
void setrelay(byte n){
state[n-1]=!state[n-1];
}
void writerelay(){
digitalWrite(2,!state[0]);
digitalWrite(3,!state[1]);
digitalWrite(4,!state[2]);
digitalWrite(5,!state[3]);
digitalWrite(6,!state[4]);
digitalWrite(7,!state[5]);
digitalWrite(8,!state[6]);
digitalWrite(9,!state[7]);
}
вот, держи дружище, все что угодно только чтоб вам удобно и легко было. скейч написал, вот только он не компелируется, можешь разобраться где косяк? :)
ошибку компиляции выложи. Только не скриншотом - просто текст скопируй и сюда вставь как код
setrelay(), writerelay() вынести вверх, до setup().
Если не сложно, можно поточнее, я не програмист, тыкал и так и сяк, не получается. С какой по какую строку перенести между какими именно? Заранее спасибо за понимание.
Евгений, поэтому ты эту всютему освоил, а я наоборот, я проф электрик и хочу немного внедрения электроники. вот на себе сначала начал тренироваться, в работе сначала ограничивался фото реле и таймером времени, теперь помимо этого на вэб, точнее на локальную сеть, хочу попробовать завязать. С вэбом сложнее, нужет статический айпи адрес, а у всех заказчиков как правило динамический
блок питание выше упомянутый на 12v и 2А, хватит того что я запитаю ардуину, а питание на релейный модуль возьму от 5v ардуины?
Категорически нельзя.
В ардуине маломощный линейный стабилизатор. Он расчитан на питание только самой Ардуины и, макстимум, пары слаботочных датчиков (не более десятков мА). Модулеми реле Вы просто его сожжете.
Лучше использовать либо блок 5В 2А, либо с 12В 2А Ардуину запитывать на ее собственный 12-вольтовый вход, а блок реле - от отдельного понижающего преобразователя достаточной мощности.
andriano, спасибо за совет, заказал стабилизатор напряжения, с али (86070 на LM2596),если я с блок питания 12v подам на ардуину, и от этих 12 вольт сделаю ответвление на этот стабилизатор (называю может и не правильно), и подстроечным резистором сделаю питание 5 вольт на релейный блок, так прокатит? (чтоб два блока питания не ставить)
Lelik, для электрика у Вас какие-то странные вопросы.
Да, подключать к источнику питания две разных нагрузка в параллель вполне допустимо и нормально.
Но вот что Вы подразумеваете под "резистором сделаю питание 5 вольт на релейный блок", не совсем понял. Если Вы собираетесь посадить на резисторе "лишние" 7 вольт, то, боюсь, это Вам не удастся. Если же имеется в виду подстроечный резистор для установки выходного напряжения преобразователя, то - да.
Lelik, для электрика у Вас какие-то странные вопросы.
он электромонтажник - многие электрики об этом не подозревают.
Lelik, для электрика у Вас какие-то странные вопросы.
Да, подключать к источнику питания две разных нагрузка в параллель вполне допустимо и нормально.
Но вот что Вы подразумеваете под "резистором сделаю питание 5 вольт на релейный блок", не совсем понял. Если Вы собираетесь посадить на резисторе "лишние" 7 вольт, то, боюсь, это Вам не удастся. Если же имеется в виду подстроечный резистор для установки выходного напряжения преобразователя, то - да.
Вы правильно все поняли.
А кто-нибудь пользует flprog?
приветтствую вас друзья. ну что я хочу вам сказать, наконец-то с горем пополам победил я свой проект, с CSS, который прислал Voodoo Doll, нихрена не разобрался толком, сделал только кнопки вертикально и все на этом... , сделал пока тупо на html. еще с чем не полуилось у меня разобраться, это с тем, что релейный модуль, (каналы) управляются ноликом, т.е. при запуске ардуины реле поумолчанию "втягиваются", подскажите как инвертировать выходы?
и еще вот какая фигня непонятная, 8ой канал релейного модуля, в какой только свободный пин не установлю (4,10,11,12,13) реле канала всегда "втянуто" и при нажатии на странице на кнопку, реле только переклацываети все, по факту остается включеным всегда и светодиод на этом реле светится в пол накала как бы по сравнению со всеми другими. 4 и 10 пин читал, они используются эзернет модулем для обмена, а другие-то что?
И ещё, как сделать кнопки "включить всё" и "отключить все", сами кнопки на странице создал без проблем, а как прочередовать пины не пойму
11-13 выводы это SPI, придётся оставить свободными. 8й канал можно сделать например на выводе А0, он же 14.
По инвертированию на "активный ноль":
1. Поменять местами HIGH и LOW по всей программе.
2. После объявления pinMode() добавить на все каналы digitalWrite(HIGH).
2. После объявления pinMode() добавить на все каналы digitalWrite(HIGH).
Лучше перед.
Спасибо ребят. Буду пробовать. Жаль времени много на это нет с основной работой и шабашками. Поэтому у меня это все немного вялотекуче проходит.
А ещё такой вопрос, возможно-ли сделать так, что если при пропадании электроэнергии, если какие-то реле были включены, то когда напряжение подадут обратно и эти реле тоже включились как было до отключения
Можно. Берете делитель 1:4, например 10 кОм + 30 кОм, конец 30 ком к плюсу 12 В, конец 10 к общему минусу, соединенные концы 10 и 30 - в один из проводов An. A1, A2 там, неважно. Объявляете его входом, делаете analogRead(). Будет некоторое число, надо посидеть с калькулятором поумножать, найти такое число чтобы если домножить/доделить то что там сказала analogRead(), получилось 12, когда на конце 30 кОм (плюсе 12) действительно 12. Когда будет 0 - будет ноль, но ардуина вырубится. Ставим конденсатор, между Gnd и +5V. Побольше, мкф так 10000. Всё, теперь у нас есть секунд 5, которые ардуина будет работать на конденсаторе, пока тот не кончится. В loop() пишем условие, которое проверяет что есть 12, если нет то делает из состояний 8 реле байт (у меня он уже был в массиве bool state[], из него было бы проще - умножить на 1 2 4 8 16 и тд и сложить), и записать этот байт в EEPROM. при включении проверять EEPROM и назад включать если в байте есть единица, двойка, четвёрка, 8, 16, 32 и т д.
По идее можно при каждом переключении любого реле сразу писать в EEPROM - ресурс у нее больше, чем у всех реле вместе взятых.
Здравствуйте уважаемые друзья. Подскажите что может быть,скейч использую пока тот что указал выше. Схема подключения такая: блок питания 220/12 вольт 5 ампер. 12 вольт на прямую идёт на питание ардуино на которой установлена w5100 (далее буду называть её сетевой картой), релейный модуль питаю от блока питания 12 вольт, но через dc/dc преобразователь, который понижает на 5 вольт, с ардуино на релейный модуль идёт только "управление" каналов реле согласно скейчу. При загрузке ардуино, реле поумолчанию "втягивается" из-за этого пока использую нормально замкнутые контакты реле, чтоб при подачи питания на ардуину цепь размыкалась. Схема вся эта таботает нормально через Web server до тех пор пока к выводам релейного блока ничего не подключено, а как только подключаю нагрузку которая питает контактор на 220 вольт, по сетевой карте вижу что в момент команды на включение/отключение ардуино как будто перегружается, если включаю/отключаю реле к выводом которых ничего не подключено, работает всё нормально. Ни каких подтягивающих резисторов в схеме пока не использую. Из-за чего подобное может быть?
PS. Пока хочу отладить схему так, а потом буду ковырять код чтоб управлять реле активным минусом и тому подобное. Мне так сейчас просто удобнее. Потом и на css перейду
Хотя логически подумав, думаю не ардуино перегружается, а сетевая карта наверное, потому что при перезагрузке ардуино, все реле сработали бы наверное
Из-за того что в момент коммутации возникает помеха и она утекает по проводам в ардуину. Вам придётся:
1. Отвязать сигналы оптопарой. Берете 8 оптопар, PC817, 4N27/4N35 или что там попадётся/по вкусу, и соединить так:
- анод фотодиода либо эмиттер фототранзистора, у микросхемы это нижний правый вывод, если смотреть сверху и ключ (круглешок или выемка, вытравлен, выгравирован, напечатан или вырезан на корпусе, обозначает вывод 1) находится слева вверху, ноги микросхемы смотрят вниз (от вас). так вот, его соединить с минусом питания релейной платы. Выходом у 4N35 является вывод 5.
- катоды/коллекторы (выход, последний или следующий после анода вывод) - со входами релейной платы
- плюсы питания светодиодов, то есть аноды - первый вывод у любой опторазвязывающей микросхемы - с соотв. выходами ардуины, через резистор 330-510 Ом.
- минусы светодиодов с минусом ардуины. Минусы (катоды) светодиодов это вывод 2, у любой оптопары.
2. Параллельно светодиодам в оптопарах, то есть между концом резистора идущим к оптопаре, и минусом ардуины - плоскостные диоды задом наперёд, для подавления возможной мощной помехи обратной полярности. Задом это значит перекладиной к резистору (плюсу), хвостом к минусу. Подойдет стандартный диод 1N4007 он же M7. Перекладина (катод) обозначается полоской, напечатанной/вытравленной/выгравированной на корпусе.
3. Параллельно этим диодам керамические конденсаторы 0.022-0.1 мкФ для подавления наносекундной помехи.
Схема более не будет иметь общего минуса с релейной платой, поэтому
4. убрать из схемы DCDC преобразователь, не питать релейную плату от того же источника, от которого питается арда. Вам понадобится либо отдельный блок 220-5В, можно небольшой мощности (хватит 1А) т. к. релейная плата непрожорливая, либо если не будет то на 12, и далее через DCDC преобразователь.
Вуду, а оптопара dp817c на релейном модуле разве не развязывает гальванически ардуино с релейным модулем? От разных источников я тоже питал.
В таком случае помеха не электрическая а электромагнитная. Экранировать. Избавляться от длинных проводов. Вплоть до того что это будет одна металлическая коробка и в ней 8 отверстий с фотодатчиками, которые уже в свою очередь включают оптопары, а адруина в другой такой же коробке, только там 8 лазеров. И между коробками 10 метров. Не бывает чтобы при полной развязке творилась такая хрень. Не. Бы. Ва. Ет.
Да, есть ещё вариант, "она прям по проводам 220". Лечится ЭМ-фильтром, это такая металлическая деталька с 4 выводами, с одной стороны 220 и с другой тоже 220, но чистое. Внутри дроссели и конденсатор, на корпусе так и написано "EMI filter". Думаю, дешёвые китайские блоки питания без надлежащей защиты есть благодатная бактериальная среда для такой заразы как помехи, проходящие через сеть. Хотя хз. Вы же там не 50-кВт компрессор коммутируете, я думаю. Хз, хз. Я прям аж в ступоре.
Может какой-то модуль глючит?
Прикиньте что я выявил, даже если контактор не подключеный к ардуино включать и отключать внепосредвственной близости, у меня это см 20-25, то сетевуха перегружается и когда прикасаешься к проводам идущие от ардуино к релейному модулю, шилд тоже перегружается. Сама арда при этом работает нормально.
И ещё подскажите пожалуйста не могу понять куда воткнуть digitalWrite(HIGH), чтоб управлять релейным модулем активным gnd. Пример этой строки если можно сделайте, а по подобию что нужно сделаю сам.
куда воткнуть digitalWrite(HIGH), чтоб управлять релейным модулем активным gnd.
Как там было ... "Господа офицеры, ..."
с кодом разобрался впринципе, нашел куда воткнуть этот digitalWrite(HIGH) :)
сейчас в CSS теперь хочу перевести это дело, за основу буду брать то, что скинул Woodoo. Ему за это отдельное спасибо
Voodoo Doll, подскажи пожалуйста, твой архив который ты скидывал ранее, там в main.js поменял ip в двух местах и скейче тоже в одном месте изменил ip, во всех этих трех местах один ip (192.168.1.99), скейч залил, открываю из папки control.html (в этой же папке лежат файлы jquery.js, main.js, style.css) открывается страница с кнопками, кнопки работают нормально, а цвета кнопок в зависимости от статуса, не меняются. что делаю не так?
кнопки я правда после этого всего расположил вертикально, расположил для удобства, добавив тег </br> после каждой кнопки в файле control.html на работоспособность никак не повлияло
помогите разобраться с кодом. Из-за непонятных глюков, связанные не то с железом, не то расположением звезд на небе, ардуину и w5100 решил отложить в сторонку, пока не "придут" другие такие же железки и решил все это дело сделать на WiFi модуле NodeMCU ESP-12e v3, за основу был взят скейч (и соответственно все остальные файлы для дальнейшей работы) от Voodoo Doll из 27 поста данной темы, скейч заработал нормально, страница отображается, при нажатии на кнопки релюхи клацают как нужно. У меня не полустлось присвоить айпишник данному модулю и он время от времени пеняется при перезагрузке модуля, подскажите как прописать IP-шник.
пример скейча ниже
Voodoo, отзовись плз, помоги разобраться с кнопками страницы, чтоб они цвет меняли в зависимости от статуса, а то мой мозг уже кипит от кучи новой информации
У кнопок меняется класс (атрибут HTML class=), если в нём есть буква e - CSS зелёный, если d - красный. Покажите JS функцию, которая обрабатывает информацию, возможно несовпадает формат массива. В скетче он с s и цифрами в кавычках, то есть содержит имена. Эти имена должны проверяться в цикле, если их нет - то и в скетче надо убрать, оставив только состояние, в таком виде [0,0,1,0,1,0,0,0]
Попробую разобраться.
А с айпишником что можно сделать?
Нужно сделать его статическим.
Или настроить DHCP так чтобы всегда выдавался один и тот же, и его прописать в HTML. В роутере есть таблица резервирования адресов, находится в свойствах Advanced network (network всмысле обычные сетевые настройки, не вайфай).
с айпишником оказалось все проще, настройках модема я по маку присвоил постояный айпи, т.е. любой другой мак не займет данный айпишник.
приветствую Вас друзья, ну я успешно допилил свой проект с вашей помощью, работает все стабильно, кнопочки цвет меняют, релюхи клацают. В общем все здорово. Отдельная благодарность Voodoo Doll. Думаю дальше расширять проект, хочу попробовать встроить часы и датчик освещенности чтоб в определенное время определенные каналы включались и отключались
приветствую Вас друзья, помогите доработать скейч
https://yadi.sk/d/WP8HypuB3XkGYW
не могу понять в скейче ошибка и второе как в HTML коде сделать так, чтоб пока отклика о выполнени наманды не пришло, нажатие на кнопку не реагировалось. а тобывает так, что каманда на включение/отключение по какой-то причине задерживается и если в этот момент еще нажать на кнопку несколько раз, то потом как отвиснет эта вся система, сколько раз нажал на кнопку, только раз и клацает релюха.
тут есть живые ардуинщики?
со вторым я разобрался, со скейчем все никак...
тут есть живые ардуинщики?
Немає :(
это плохо :( все наверное на море уехали
не могу понять в скейче ошибка и второе как в HTML коде сделать так, чтоб пока отклика о выполнени наманды не пришло, нажатие на кнопку не реагировалось.
Так тут вопрос не ставят. Никто не полезет смотреть ваш скетч.
Попробуйте сделать все сами, а если будут проблемы - тогда приходите. Только учтите, что приходить надо с уже сделанным, а жалобы "я не умею" тут никого не трогают, помощи не будет.
вот, держи дружище, все что угодно только чтоб вам удобно и легко было. скейч написал, вот только он не компелируется, можешь разобраться где косяк? :)
вот, держи дружище, все что угодно только чтоб вам удобно и легко было. скейч написал, вот только он не компелируется, можешь разобраться где косяк? :)
ошибку компиляции выложи. Только не скриншотом - просто текст скопируй и сюда вставь как код
все наверное на море уехали
Так футбол же ж.
ошибку компиляции выложи. Только не скриншотом - просто текст скопируй и сюда вставь как код
Arduino: 1.6.12 (Windows 7), Плата:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 4M (3M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
D:\!Arduino\!Проект в разработке\управление на 8 каналов через WiFi-\sketch\sketch.ino: In function 'void loop()':
sketch:50: error: 'client' was not declared in this scope
sketch:59: error: 'setrelay' was not declared in this scope
sketch:60: error: 'setrelay' was not declared in this scope
sketch:61: error: 'setrelay' was not declared in this scope
sketch:62: error: 'setrelay' was not declared in this scope
sketch:63: error: 'setrelay' was not declared in this scope
sketch:64: error: 'setrelay' was not declared in this scope
sketch:65: error: 'setrelay' was not declared in this scope
sketch:66: error: 'setrelay' was not declared in this scope
sketch:104: error: 'writerelay' was not declared in this scope
exit status 1
'client' was not declared in this scope
setrelay(), writerelay() вынести вверх, до setup(). Подумать, зачем закомментированна строка #49
setrelay(), writerelay() вынести вверх, до setup().
Если не сложно, можно поточнее, я не програмист, тыкал и так и сяк, не получается. С какой по какую строку перенести между какими именно? Заранее спасибо за понимание.
Функции с указанными именами перенести целиком до setup() {...}
Фунция - это имя с круглыми скобками и всё, что в фигурных скобках за ними.