РЕКЛАМА НА ФОРУМХАУС Вся система за городом, но все должно быть достаточно понятно из скетча ... Распиновка: PZEM-004T: +5 | TX | RX | GND Используемые прерывания PZEM004T pzem[] {&Serial1,&Serial3,&Serial2}; Ну и сами прерывания по пинам: Arduino MEGA Serial: 0 (RX) and 1 (TX); Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip. Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Ну и картинка с просторов тырнета
@SportMaster, Добрый ... Не могли бы пояснить... В вашем архиве PZEM004T.cpp за что отвечает ? На него ни где нет ссылки ни в одном файле из вашего архива. PZEM-2011-11-17.ino я так понял скетч для меги. в нем include "PZEM004T.h который подключает SoftwareSerial. h. Зачем #include <SoftwareSerial.h> если у меги 4 com порта ?
@Conrad66, - PZEM004T.cpp - вынесены все константы, переменные, функции, что-то вынесено в PZEM004T.h - #include <SoftwareSerial.h> в PZEM004T.h просто проглядел, что в двух местах используется. достаточно в основном ino и раскомментировать для других плат, где меньше serial портов.
А этот файл учавствует в компиляции прошивки ? что то я не увидел ссылку на него ни в "ino" и в "h" файлах. И SoftwareSerial. h вообще нужен если есть 4 хардверных порта у той же меге ?
@Conrad66, SoftwareSerial. h не нужен если используете физические порты меги. По PZEM004T.cpp, если обратите внимание, то в ino файле есть ряд обращений к функциям описанным в этом файле например: pzem[0].setAddress (pzemIP[0]); pzem[1].setAddress (pzemIP[1]); pzem[2].setAddress (pzemIP[2]); это bool PZEM004T:setAddress (const IPAddress &newAddr) { send (newAddr, PZEM_SET_ADDRESS); return recieve (RESP_SET_ADDRESS); }
@SportMaster, Вы как то решали вопрос с обнулением накопленных показаний мощности программно? Или нет такой необходимости ?
Если честно, то еще не заморачивался и скорей всего если буду делать, то средствами Home Assistan Тем более, что в последнем обновлении появились встроенные компоненты: Integration Sensor (считает кВт*час) и Utility Meter
А с чего бы ей самой по себе зависать-то? Обычный микроконтроллер, обычная разводка. Никаких защит от внешних помех нет, ну так этим должен озаботиться тот, кто Ардуину использует. Если наляпать провода абы как, не озаботиться правильной разводкой земли, не поставить опторазвязку где следует, то да, будет зависать. Как и любое другое устройство при варварском использовании. А если сделать все правильно, то будет годами работать без сбоев и зависаний.
Сделана плата куда впаян экран, плата тензадатчиков. ком порт и ардуина. Промышленный ком кабель 1.5 до компа, промышленная полетная платформа с экранированным шнуром. искрогаситель потом, бесперебойный блок питания. компьютерный блок питания для питания ардуины. Промышленное заземление которое испытуется раз в месяц. 2-3 зависания в месяц.
Простое перечисление того, что у вас использовано, ни о чем не говорит. Важно то, что к чему подключено, "в каком порядке". Топология важна, если одним словом. Почитайте вот эту статью, чтобы получить примерное представление о том, что к чему надо подключать. Хотя там речь идет о разводке ПП, это сути дела не меняет. Надо четко представлять пути, по которым проходят помехи, и после этого убрать у них с дороги то, что может сбоить. Будь то "голый микроконтроллер" или микроконтроллер запаянный на ПП, т. е. Ардуино. Оно испытывается на помехоустойчивость или на соответствие ПУЭ, т. е. на электробезопасность? Ах, на ПУЭ... А какое это имеет отношение к помехоустойчивости? Хорошее заземление, вас не убъет если что. А про то, что сбоить не будет, про это в ПУЭ не то что никаких гарантий нет, ПУЭ об этом просто понятия не имеет.
@SportMaster, Добрый день ! Вы выкладывали свой скетч на 3 фазы PZEM... Что то у меня выводит все время нули... Перепроверил схему 100 раз. Вы вывожили свой рабочий вариант скетча ?
Абсолютно рабочий! Смотрите схему подключения, пробуйте по 1 фазе снимать показания используя pzem-test.zip
@SportMaster, Спасибо за быстрый ответ. Разобрался. сам был виноват. Да еще один модуль PZEM оказался не рабочий. (не выводит показания) p. s. Тоже собираюсь в графану сделать вывод... на сколько понимаю там же можно сделать суммарный вывод потребления по 3-м фазам.