AC Light Dimmer Module от RobotDyn и Arduino nano
- Войдите на сайт для отправки комментариев
Чт, 14/11/2019 - 15:26
Добрый день. Не могу заставить работать диммер: AC Light Dimmer Module, 1 Channel, 3.3V/5V logic, AC 50/60hz, 220V/110V.
при попытке залит данный скетч, получаю нехватку памяти. Либа офф. от производителя модуля.
Код:
#include <RBDdimmer.h> dimmerLamp dimmer1(4); //initialase port for dimmer: name(PinNumber); void setup() { Serial.begin(9600); dimmer1.begin(NORMAL_MODE, OFF); //dimmer initialisation: name.begin(MODE, STATE) Serial.println("--- Simple dimmer example ---"); dimmer1.setPower(50); // setPower(0-100%); dimmer1.setState(ON); // setState(ON/OFF); pinMode(5, INPUT); } void loop() { if (digitalRead(5) == 1) { dimmer1.changeState(); //changes state on the opposite: name.changeState(); } Serial.print("Dimmer state: "); Serial.println(dimmer1.getState()); delay(1000); }
Есть варианты заставить его работать?
Либа офф. от производителя модуля.
я хз, у меня такой либы нет, делитесь или либой или ссылкой на нее
Вот либа, на гитхабе: https://github.com/RobotDyn/AC-Light-Dimmer-Module-1-Channel-3.3V-5V-logic-AC-50-60hz-220V-110V
1) сразу вопрос по плате и камню на ней - что используете с каким МК.
2) в либе куча примеров они все не работают?
3) версия ИДЭ
Arduino Nano V3.0, Камень ATmega328. Версия IDE 1.8.9.
После добавления строк в проект, пишет что не хватает места.
Под 1.8.3 места для скетча из начального сообщения - завались! Мож глюк какой 1.8.9 ? Попробуйте другую версию.
Поставил IDE той же версии что и дома, и скетч из примера компилится. Переустановлю на домашнем компе. Тема закрыта.
Переустановил IDE. Поставил 1.8.6. Ошибка не устранена. Есть Идеи?
Идея простая. Открыть файл библиотеки и посмотреть куда она девает всю память и если не нужно столько выделять то уменьшить буфера. Не надо библиотек боятся. Частенько их пишут начинаюшие с большими амбициями и коротенькими знаниями. Вот и получается как всегда-памяти нет. И строку в скобках оберните в F() - на 30 байт уменьшит занимаемую память.
На данном этапе своих познаний C++ в либе мне нечего ловить. Парадокс в том, что на рабочем компе данный скетч компилиться без проблем.
А скока памяти использует?
10 процентов
Да ничего там в библиотеке особенного нет. Одна табличка на 100 байт. В норме скетч компилируется например так (1.8.3):
Скетч использует 3402 байт (10%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 463 байт (22%) динамической памяти, оставляя 1585 байт для локальных переменных. Максимум: 2048 байт.
А вот почему у него под некоторыми версиями IDE 463 байта аж в 2139 превращаются - непонятно.
попробую 1.8.3 поставить. Засада.
В чем проблема поставить 1.8.10 ???
Да, уж начните лучше с актуальной.
под 1.8.9
на закрузчике miniCore (LTO - disable)
Скетч использует 4058 байт (12%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 557 байт (27%) динамической памяти, оставляя 1491 байт для локальных переменных. Максимум: 2048 байт.
(LTO -enable)
Скетч использует 3256 байт (10%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 441 байт (21%) динамической памяти, оставляя 1607 байт для локальных переменных. Максимум: 2048 байт.
ардуино нано (old loader)
Скетч использует 3300 байт (10%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 443 байт (21%) динамической памяти, оставляя 1605 байт для локальных переменных. Максимум: 2048 байт.
На ней не работала #include "DHT.h" библиотека. Для DHT22
P.S. на актуальной такая же борода...
На ней не работала #include "DHT.h" библиотека. Для DHT22
P.S. на актуальной такая же борода...
Вот ещё и вместе с этим вся ситуация наводит на мысль, что что-то Вы у себя сами "накрутили"! С чего бы это ей не работать? Вот только что скачал 1.8.10. Ваш скетч:
Скетч использует 3278 байт (10%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 443 байт (21%) динамической памяти, оставляя 1605 байт для локальных переменных. Максимум: 2048 байт.
Может вычистить все следы предыдущих установок и начисто установить последнюю версию?
Прошу сильно не пинать, но подозреваю что я, олень, дома сохранил либу из другого источника... А в посте привел ссыль на оф. репозитарий РоботДин. Дома качал по ссылке, которую дал продавец диммера... Вечером проверю... На работе компилится на любой версии IDE...
Прошу сильно не пинать, но подозреваю что я, олень, дома сохранил либу из другого источника... А в посте привел ссыль на оф. репозитарий РоботДин. Дома качал по ссылке, которую дал продавец диммера... Вечером проверю... На работе компилится на любой версии IDE...
Проблема была в моей невнимательности...
Накидал скетч, который управляет канальным вентилятором, регулируя мощность в зависимости от уровня влажности. Использую датчик АМ2302(DHT22), RTC1302, AC Light Dimmer Module от RobotDyn, LCD Nokia 5101. Проблема в том, что в момент считывания данных с датчика DHT22 происходит просадка напряжения на выходе из диммира в среднем на 60-70 вольт. Подключенная лампа мигает один раз в пять секунд. В этот момент на Arduino Nano 3.0 "блымает" диод (TX). Что посоветуете? Не пинайте за код, в первой с этим имею дело.
AC Light Dimmer Module от RobotDyn: vcc-5v, gnd-gnd, z-0 - D2 pin, PWM - D11.
DHT22: vcc - 5v, data - D12, gnd-gnd.
Скетч:
Библиотека DHT запрещает прерывания на время чтения датчика. Так что или температура или диммер. На одной нане совместить не получится. Берите блюпил. На нем всё работает без проблем.
Блюпил не гуглится))) втф?)))
Bluepill stm32 патамуш.
от тс ещё и стм осваивать)))))
ну вы мужики со своими советами выдали))))))
А что делать? Можно 2 наны взять. С одной на другую гнать температуру по сериалу или ещё как. Можно датчик поменять на без прерывания.
А что делать? Можно 2 наны взять. С одной на другую гнать температуру по сериалу или ещё как. Можно датчик поменять на без прерывания.
А есть такой датчик? Вычитал, что в Arduino Due есть возможность на некоторых пинах запрещать прерывание
вот тут к IDE прикручивают
Проще читать раз в пять минут влажность, или due прикупить)))) Там либы переписывать и питальник для 5v модулей юзать. Это только очевидные моменты...
а у DUE ядро какое )))
А есть такой датчик?
термистор типа NTC точно работает без прерываний. И еще DS18B20 - если читать его напрямую, без библиотеки
Оба этих варианта явно проще. чем 2 отдельных ардуины...
И еще DS18B20 - если читать его напрямую, без библиотеки
Ну, совсем без запрещения прерываний 1 Wire не сделаешь если спец железа нет. Тайминги не выдержать. Но в ардуиновской библиотеке прерывания запрещаются всего на десятки микросекунд, что на АС диммер практически не влияет.
Сделать 1-Wire протокол самому, да еще и без запрета прерываний это проще чем соединить 2 ардуины по I2C, SPI или UART ? Ну вы, батенька, знаете толк в извращениях!
Сделать 1-Wire протокол самому, да еще и без запрета прерываний
не, полагаю если сделать на стандартной ардуиновской либе, с запретом прерываний только на время передачи по шине - DS18B20 и диммер увполне уживутся вместе.
Так что никаких извращений - уровень чуть продвинутого любителя, не более
И еще DS18B20 - если читать его напрямую, без библиотеки
не, полагаю если сделать на стандартной ардуиновской либе, с запретом прерываний только на время передачи по шине - DS18B20 и диммер увполне уживутся вместе.
Уважаемый, так вы уж определитесь - "напрямую без библиотеки" или "на стандартной ардуиновской либе".
Уважаемый, так вы уж определитесь - "напрямую без библиотеки" или "на стандартной ардуиновской либе".
определяюсь :) - речь о разных библиотеках
Вот тут:
И еще DS18B20 - если читать его напрямую, без библиотеки
имел в виду без библиотеки DallasTemperature.h
А вот тут
не, полагаю если сделать на стандартной ардуиновской либ
речь о OneWire.h
Блинский. Смирился я с блыманьем. Увеличил интервал. Но столкнулся с неведанным колдунством. Лампой диммер управляет, вопросов нет, но каковым же было мое удивление, когда я подключил все эти потроха к канальному вентилятору!
Он молотит в полную, игнорируя диммер. Замеряю напряжение, подключив лампу, на контактах нагрузки, 60 вольт. А подключив вентилятор, напряжение поднимается до 260!
ВТФ!!???
индуктивная нагрузка однако )))
Уже понял, что имею дело с однофазным асинхронным двигателем. Есть готовые решения для управления такими моторами?
ага, частотник называется
Ткните носом, где купить.
Нахуа?
А есть другой вариант?))))
Ну вытягивает он на полной мощности, это так страшно? Или у вас там труба аэродинамическая, клиенты улетают?))))
да шумит, просто. Дома стоит, на кухне. Мощность избыточная. К нему есть в продаже регулятор оборотов от производителя с крутилкой, но это не кошерно рукой двигать. Я же не зря ардуин накупил.
Уважаемый, так вы уж определитесь - "напрямую без библиотеки" или "на стандартной ардуиновской либе".
определяюсь :) - речь о разных библиотеках
Вот тут:
И еще DS18B20 - если читать его напрямую, без библиотеки
имел в виду без библиотеки DallasTemperature.h
А вот тут
не, полагаю если сделать на стандартной ардуиновской либ
DallasTemperature сама по себе прерывания не запрещает, а вот OneWire запрещает. Так что неиспользование DallasTemperature ситуацию с прерываниями не улучшает никак.
Крутилку, сервой крутить.)))) Или наберите "Частотный преобразователь", на такие маленькие мощности, не уверен.
Вот инфа от производителя:
"Вентилятор управляется при помощи комнатного выключателя освещения. Выключатель в комплект поставки не входит.
Регулировка скорости может осуществляться с помощью тиристорного регулятора РС-1-300 или РС-1-400 (для моделей, не
оборудованных таймером). Регулировка скорости для моделей вентиляторов ВЕНТС Квайтлайн 100 Дуо, ВЕНТС Квайтлайн 125 Дуо, ВЕНТС Квайтлайн 150 Дуо, ВЕНТС Квайтлайн 150 Экстра также может осуществляться с помощью переключателя скоростей П2-1-300 (см. раздел «Электрические принадлежности»)"
Может просто димер не тот?
собери сам на BTA16-600 + Моська + не забудь поставить снаббер параллельно нагрузке, такак она индуктивная. У меня Домовент (22Вт) прекрасно работает на 100% и 70% (ночью) мощности, не гудит и не греется. Важно понимать, что таким диммером асинхронник прям с 0% мощности не регулируется, с 0 и примерно до 50% мощности вентилятор не крутится, только угрожающе гудит и греется, и только потом начинает нехотя вертеца. Без снаббера движок не крутится и греется примерно до 75% мощности, так что ставить его обязательно. А в твоем модуле, я как раз снаббера и не вижу, зато вижу нах не нужный диодный мост. Это не для мотора диммер, а для простой чесной лампочки, не являющейся индуктивной нагруской.
На данном этапе моих познаний мне проще купить готовое решение. Вот заказал: https://github.com/serhiy23412/AC_dimmer-dmr-0.2.1/blob/master/AC_Dimmer_Docum.docx?raw=true
Утверждают, что работать будет. Не вводят в заблуждение?