Перейти к содержанию

Рекомендуемые сообщения

1 минуту назад, VALKNUT сказал(а):

Если те, которые я показал - не нужно. Если колхозить, то нужно опторазвязку делать - потеря времени.
Лучше готовые сборки, на нужное количество каналов.

Ой вей. Для чего колхозить если есть готовый модуль. Я спросил, потому что в голове засело 20 мА макс ток с пина. 

Поделиться сообщением


Ссылка на сообщение
8 минут назад, Haaans сказал(а):

Ой вей. Для чего колхозить если есть готовый модуль. Я спросил, потому что в голове засело 20 мА макс ток с пина. 

Эти модули специально сделаны для Arduino/ESP... Надо учесть при выборе напряжение. У контроллеров Arduino "логика" 5В, а у ESP 3.3В.
Но как правило, эти модули управляются и Arduino  и ESP. Просто читать в спецификациях...

Поделиться сообщением


Ссылка на сообщение
В 22.08.2024 - 07:58, VALKNUT сказал(а):

модули управляются и Arduino  и ESP

Гляньте эту схемку - https://duino4projects.com/audio-input-using-an-arduino-board/

Я немного не пойму - они здесь, похоже пишут звук методом измерения напряжения на входе, но по вашему коду и читал где-то - max скорость на таймере 1/1000 сек.

Это для звука не подходит, но там если почитать, речь идет об сканировании 31000 Hz и выше. Кому верить или там железо другое?

Поделиться сообщением


Ссылка на сообщение
27 минут назад, Lx671 сказал(а):

Я немного не пойму - они здесь, похоже пишут звук методом измерения напряжения на входе

Попробуйте готовый микрофонный модуль - MAX9814 Незнаю, что еще посоветовать, со звуком никак не пересекался, если не считать 8 битный на пьезике (не заинтересовался, не применяю).

 

Спойлер

 

MAX9814 - Микрофонный модуль состоит из электронного микрофона (20-20кГЦ) и специального усилителя на чипе MAX9814. MAX9814 - это высокопроизводительный, низкошумящий микрофонный усилитель, идеально подходящий для проектов, требующих качественной аудиозаписи. Его основные характеристики обеспечивают универсальность и производительность, делая его полезным элементом в многих аудио-приложениях.

Главные особенности Модуля MAX9814

  • Автоматический уровень усиления (AGC): MAX9814 имеет встроенную функцию автоматического контроля усиления, которая помогает поддерживать постоянный уровень звукового сигнала, даже при значительных изменениях входного сигнала.
  • Низкий уровень шума: Модуль обеспечивает низкошумящее усиление благодаря своему особому дизайну и применяемым технологиям.
  • Возможность выбора режима усиления: MOD MAX9814 имеет 3 дискретных уровня усиления - 40dB, 50dB и 60dB, позволяя пользователю выбрать наиболее подходящий в зависимости от потребностей.
  • Простота в использовании: Модуль можно легко подключить к большинству микроконтроллеров, включая ESP32 и Arduino, что делает его идеальным для DIY проектов.
  • Экономичен: MAX9814 работает от одного источника питания от 2,7 до 5,5 В.

Поделиться сообщением


Ссылка на сообщение
30 минут назад, VALKNUT сказал(а):

микрофонный модуль - MAX9814 Незнаю, что еще посоветовать

Это просто аналоговый модуль для подключения к обычному аналоговому входу.)) А вопрос о стабильной максимальной скорости опроса входа ардуино.

Ну это единственный интерфейс между контроллерами и телефоном (планшетом).

Поделиться сообщением


Ссылка на сообщение
28 минут назад, Lx671 сказал(а):

А вопрос о стабильной максимальной скорости опроса входа ардуино.

Прошу прощения, не в теме.

Поделиться сообщением


Ссылка на сообщение
В 02.09.2024 - 20:48, VALKNUT сказал(а):

Прошу прощения, не в теме

По другому придумал)) Есть входы... Если запустить сканирование любого дискретного входа по таймеру ( типа: setInterval('scan1()',1) ), в процедуре scan1 писать в массив  bool данные 0/1. Есть возможность, например 50 bool записать, потом выйти из этой процедуры и анализировать данные?

Поделиться сообщением


Ссылка на сообщение

Игарь Сергеич @VALKNUT. Хочу получить подтверждение своим размышлениям. Извините, что без схемы, нет ПК под рукой накидать. Я немного наперед думаю, что хочу в итоге получить и вышел такой список:

1. Контроль температуры с выводом на экран.

2. Вкл/Выкл вентилятора охлаждения.

3. Вкл/Выкл света с рассветом и закатом. 
 

Вариант 1. Цель сделать тихое устройство (без щелчков реле).

Питание платы через БП как вы показали.

Питание вентилятора 3-pin 12В 0.2А можно сделать через такой же БП как выше, только думается что как выключатель  отсутствие частотного сигнала плохая идея с точки зрения , PWM = регулирование, а не вкл/выкл. Значит сюда надо реле с сухими контактами, либо твердотельное и потом БП 220 на 12В постоянки.

Вариант 2

Внешний БП на ленту 24В света взять с запасом по А.

От него запитать через понижайку плату. 
Через сухие реле все остальное.

В случае варианта 2 получится мне кажется более компактно, но очень шумно, канонада из реле по началу только не напрягает. 
 

Ход размышления правильный? Преследую цель не иметь несколько БП болтающихся под аквасом

 

Поделиться сообщением


Ссылка на сообщение
6 часов назад, Haaans сказал(а):

Вариант 1. Цель сделать тихое устройство (без щелчков реле).

До работы доберусь, напишу свои размышлизмы... =)

Поделиться сообщением


Ссылка на сообщение

Начнем с питания..
- Есть потребители, которым питание нужно постоянно - контроллер и куллер. Для этого хватит адаптера 12В 2А.
- Есть потребители более требовательные к току - "LED люстра". /Хоть собственная сборка, хоть наклеенная лента. Для "люстры" надо подбирать БП в зависимости от предполагаемой нагрузки.

Какой мощности (по току/напряжению) планируется люстра?

Куллер:
Для наших целей лучше всего подходят не 3-х пиновые, а 4-х пиновые. Т.к. у 3пин куллеров 3 провода - "плюс", "минус" и "датчик холла". То есть третий провод трехпинового куллера не при делах и можно взять обычный 2-х пиновый и управлять его скоростью снижением/увеличением напряжения через ШИМ, но тут при всей кажущейся простоте есть проблема: писк обмоток куллера при низком уровне ШИМ. Этот писк неизбежен и проявляется уже на половине рабочего напряжения куллера от 12В до 7-8В. То есть, управление таким способом очень "узкое".
Если брать 4-х пиновый куллер, то программирование контроллера на пару строк больше, а результат лучше, т.к. 4пин куллер имеет на борту собственный ШИМ и управляет этот шим не всем питанием куллера, а только лишь частотой подачи питания на обмотки. Здесь уже у нас появляется ДИАПАЗОНИЩЕ для регулирования. Но для себя я вывел всего 5 значений, которые мне были нужны. (Минимум, 30%, 50%, 80%, Максимум). Ночью у меня куллер работает на 50% (т.к. модель тихая), а днем на максимум. Более того, к одному управляющему проводу можно подцепить целую группу куллеров 4пин и все они будут управляться по одному сигналу с контроллера. (можно сделать и раздельное управление каждым куллером, но это не имеет практического смысла). Так же, 4пин куллер можно плавно разгонять, а не сразу на полную (указанную) мощность. Например утром, когда все еще спят, а на контроллере наступило утро, можно разгонять куллер хоть моментально, хоть час. Всех этих ништяков лишены 2-х и 3-х пиновые куллера.

Вывод на экран:
Можно использовать дисплеи с шиной I2C (всего 2 провода) но такие дисплеи как правило не цветные и мелкие и это медленная шина для общения с дисплеем. Если стоит задача вывести только текущую температуру, без всяких "бантиков", то вполне сгодится I2C дисплей, который зацепится параллельно с каким-то еще устройством.. ну там.. датчиком влажности или что-то еще, что использует SCL/SDA.
Можно использовать дисплеи с IPS шиной и тут уже дело вкуса какой именно... хоть 10". Но такие дисплеи задействуют минимум 4 пина контроллера, а обычно 7.
По этому я дисплей выношу в отдельное устройство (контроллер + дисплей), а не цепляю дисплей к управляющему контроллеру.

 

Блочно если представить, то вот к такому варианту пришел, методом проб и ошибок.
Зеленый - питание потребителя. Синий - управление потребителем.
image.jpg.06dbcd484ab0d665fc7ce95cbec10b85.jpg

Кстати, собираюсь вернуться к блоку питания АТХ, т.к. и токи и напряжения там очень удобные и запускается такой блок с контроллера очень просто.
Сейчас у меня на большом аквасе стоит не плохой БП, но он не вытянет дополнительный канал (зеленый), который я планирую внедрить в конструкцию. И управление (вкл/выкл) этим БП осуществляется через твердотельное реле.

 

Поделиться сообщением


Ссылка на сообщение

Кстати, есть некоторые изменения для контроллеров ESP32. Несколько изменился LEDC (управление ШИМ).
 

Спойлер

 

Раньше простейший (при включении устройства включить куллер на минимум и через 10сек на максимум) код выглядел бы так:
 


const int FanPin = 17;           //  Пин куллера
const int PWM_Freq = 25000;      //  Частота канала ШИМ куллера
const int PWM_TMR = 0;           //  Таймер контроллера 0
const int PWM_RES = 8;           //  0-255

void setup() {
  Serial.begin(115200);
  ledcSetup(PWM_TMR, PWM_Freq, PWM_RES);
  ledcAttachPin(FanPin, PWM_TMR);
  ledcWrite(PWM_TMR, 1);         //  Куллер на минимум
  delay(1000);                   //  Задержка выполнения 10 сек
  ledcWrite(PWM_TMR, 255);       //  Куллер на максимум
}

void loop() {
  
}

А теперь вот так:
 


const int FanPin = 17;              //  Пин куллера
const int PWM_Freq = 25000;         //  Частота канала ШИМ куллера
const int PWM_TMR = 0;              //  Таймер контроллера 0
const int PWM_RES = 8;              //  0-255

void setup() {
  Serial.begin(115200);
  ledcAttachChannel(FanPin, PWM_Freq, PWM_RES, PWM_TMR);
  ledcWrite(FanPin, 1);             //  Куллер на минимум
  delay(1000);                      //  Задержка выполнения 10 сек
  ledcWrite(FanPin, 255);           //  Куллер на максимум
}

void loop() {
  
}

...неудобства, но прогресс =)))

 

 

Поделиться сообщением


Ссылка на сообщение

Самоделкины!!! Когда уже будет фото готового продукта запущенного в серию?!!))

Поделиться сообщением


Ссылка на сообщение
13 минут назад, AlexLi сказал(а):

Когда уже будет фото готового продукта запущенного в серию?!!))

У меня не будет =)) Да и какая уж тут серия? Для серии не так делают. Это эксклюзив.
Он (контроллер) у меня в постоянной доработке и я никуда не спешу. На данный момент поставленные задачи выполняет, но есть задачи на перспективу.
Для малого акваса выйдет готовое устройство быстрей, чем для большого. В малом уже все придумано, а в большом надо еще 5-й (зеленый) канал ввести, поменять БП на АТХ и управление им.. ну и по мелочи =)))
И скорее всего, управлятор маленьким аквасом некоторое время будет работать на большом аквасе.. пока я буду переделывать конструкцию, а тот управлятор, который сейчас управляет маленьким.. пока так и будет управлять маленьким =))

Поделиться сообщением


Ссылка на сообщение
2 часов назад, VALKNUT сказал(а):

Какой мощности (по току/напряжению) планируется люстра?

 

24В до 60Вт это если на все деньги

@VALKNUT , хорошо конечно, но немного в сторону как мне показалось, но ок. Мысль уловил

Поделиться сообщением


Ссылка на сообщение
24 минут назад, Haaans сказал(а):

но немного в сторону как мне показалось, но ок

Значит вопросы (направления) не понял.
И на заметку.. драйверы светодиодные работают по току, а не по напряжению. То есть стабилен только ток, а напряжение может скакать.
Чем планируется диммировать люстру с таким источником питания? И главное, как?

Поделиться сообщением


Ссылка на сообщение
10 часов назад, VALKNUT сказал(а):

Начнем с питания..
- Есть потребители, которым питание нужно постоянно - контроллер и куллер. Для этого хватит адаптера 12В 2А.
- Есть потребители более требовательные к току - "LED люстра". /Хоть собственная сборка, хоть наклеенная лента. Для "люстры" надо подбирать БП в зависимости от предполагаемой нагрузки.

Какой мощности (по току/напряжению) планируется люстра?

Куллер:
Для наших целей лучше всего подходят не 3-х пиновые, а 4-х пиновые. Т.к. у 3пин куллеров 3 провода - "плюс", "минус" и "датчик холла". То есть третий провод трехпинового куллера не при делах и можно взять обычный 2-х пиновый и управлять его скоростью снижением/увеличением напряжения через ШИМ, но тут при всей кажущейся простоте есть проблема: писк обмоток куллера при низком уровне ШИМ. Этот писк неизбежен и проявляется уже на половине рабочего напряжения куллера от 12В до 7-8В. То есть, управление таким способом очень "узкое".
Если брать 4-х пиновый куллер, то программирование контроллера на пару строк больше, а результат лучше, т.к. 4пин куллер имеет на борту собственный ШИМ и управляет этот шим не всем питанием куллера, а только лишь частотой подачи питания на обмотки. Здесь уже у нас появляется ДИАПАЗОНИЩЕ для регулирования. Но для себя я вывел всего 5 значений, которые мне были нужны. (Минимум, 30%, 50%, 80%, Максимум). Ночью у меня куллер работает на 50% (т.к. модель тихая), а днем на максимум. Более того, к одному управляющему проводу можно подцепить целую группу куллеров 4пин и все они будут управляться по одному сигналу с контроллера. (можно сделать и раздельное управление каждым куллером, но это не имеет практического смысла). Так же, 4пин куллер можно плавно разгонять, а не сразу на полную (указанную) мощность. Например утром, когда все еще спят, а на контроллере наступило утро, можно разгонять куллер хоть моментально, хоть час. Всех этих ништяков лишены 2-х и 3-х пиновые куллера.

Вывод на экран:
Можно использовать дисплеи с шиной I2C (всего 2 провода) но такие дисплеи как правило не цветные и мелкие и это медленная шина для общения с дисплеем. Если стоит задача вывести только текущую температуру, без всяких "бантиков", то вполне сгодится I2C дисплей, который зацепится параллельно с каким-то еще устройством.. ну там.. датчиком влажности или что-то еще, что использует SCL/SDA.
Можно использовать дисплеи с IPS шиной и тут уже дело вкуса какой именно... хоть 10". Но такие дисплеи задействуют минимум 4 пина контроллера, а обычно 7.
По этому я дисплей выношу в отдельное устройство (контроллер + дисплей), а не цепляю дисплей к управляющему контроллеру.

 

Блочно если представить, то вот к такому варианту пришел, методом проб и ошибок.
Зеленый - питание потребителя. Синий - управление потребителем.
image.jpg.06dbcd484ab0d665fc7ce95cbec10b85.jpg

Кстати, собираюсь вернуться к блоку питания АТХ, т.к. и токи и напряжения там очень удобные и запускается такой блок с контроллера очень просто.
Сейчас у меня на большом аквасе стоит не плохой БП, но он не вытянет дополнительный канал (зеленый), который я планирую внедрить в конструкцию. И управление (вкл/выкл) этим БП осуществляется через твердотельное реле.

 

Я еще раз перечитал и кажется понял Вас, но для меня вопрос немного глубже лежит, то чего на ваших блоках не показано. Хочется обсудить.

66e30e578b418_2024-09-1217-48-18.jpg.e3ed7d13dc7c0c036d412bda6e391c59.jpg

Тут как по мне все просто. Твердотельным реле мы включаем БП люсты и через PWM модуль (вы выше в этой теме предлагали), крутим вертим яркость.

Но если добавить сюда же вентилятор для охлаждения воды, то получается, что его выключение, будет сделано через PWM пин. Что мне кажется не совсем правильным.

66e310d0e26be_2024-09-1218-01-02.jpg.b883aafe1d4a619b11f3b110b258b558.jpg

ТО есть надо ставить реле и на его ВКЛ/ВЫКЛ.  А так как вентилятор 12В то реле будет "клацать", что не может не раздражать.

И самое как мне кажется неудобное, то что будет нужно два БП на 12 и на 24В.

Чем больше думаю, тем больше кажется, что я основательно не о том думаю.

Поделиться сообщением


Ссылка на сообщение
53 минут назад, Haaans сказал(а):

Тут как по мне все просто.

Да, тут все просто. Но есть одно НО. Я ни разу не пробовал диммировать нагрузку, которая висит на блоке питания, с напряжением, плавающим в зависимости от силы тока. По этому "на Ваш страх и риск". И не мешало учесть ток потребления БП-24В... твердотельные реле коммутируют максимум 2А. Скорее всего в цпецификации к БП это указано, надо просто обратить внимание.

55 минут назад, Haaans сказал(а):

Но если добавить сюда же вентилятор для охлаждения воды, то получается, что его выключение, будет сделано через PWM пин. Что мне кажется не совсем правильным.

Вентилятор питается от 12В и ему не нужно реле, достаточно силового ключа, такого же, как планируется для диммирования ЛЭДов.
image.jpg.d5f11d8f0779348376bea3151681a716.jpg

Он работает не только как ШИМ, но и как силовой ключ. То есть, для управления вентилятором, будет использовано 2 пина.
1. Скорость - "ledcWrite(FanPin, 1);"
2. Питание - "digitalWrite(CoolPower, LOW);". Силовой ключ просто отключит питание на куллере.

Такшта, щелкать некому будет.
 

1 час назад, Haaans сказал(а):

И самое как мне кажется неудобное, то что будет нужно два БП на 12 и на 24В.

Это неудобно только с одной стороны. Что их 2. =))
Для меня это очень удобно, т.к. один БП должен быть всегда в работе, а второй эпизодически - только для питания люстры. Не вижу особого смысла держать под питанием БП24В, если нет нагрузки?

Поделиться сообщением


Ссылка на сообщение
27 минут назад, VALKNUT сказал(а):

Но есть одно НО. Я ни разу не пробовал диммировать нагрузку, которая висит на блоке питания, с напряжением, плавающим в зависимости от силы тока. По этому "на Ваш страх и риск". И не мешало учесть ток потребления БП-24В... твердотельные реле коммутируют максимум 2А. Скорее всего в цпецификации к БП это указано, надо просто обратить внимание.

Это сложно. Уточнящие вопросы. Вот есть 1 метр ленты светодиодной 24В 0.83 А то есть 20 Вт. От розетки запитан БП 24В 5А. От БП в PWM модуль идет плюс. Минус к ленте. В зависимости от сигнала с ЕСП на PWM модуль меняется яркость. Это так не работает?

Поделиться сообщением


Ссылка на сообщение
8 часов назад, Haaans сказал(а):

@VALKNUT , все перечитал. Все понял. Благодарю 

Выводы есть?

Полагаю, что вполне подойдет "LRS-100-24 MEAN WELL Источник питания AC-DC 24В, 4.5А, 108Вт"
У него постоянные и ток и напряжение.
- Выходное напряжение номинальное, В24
- Выходной ток макс., А4.5

В смысле, что нужен не просто "Драйвер светодиодной ленты", а источник постоянного напряжения 24В.
Но они все "свистят", это неизбежно. Если брать не открытого типа, а IP65, то они как правило залиты компаундом и писк не пробивается наружу.
image.jpg.b2d68e5cd3150b508c7ae2d606b53fff.jpg

ЗЫ. Если использовать источник постоянного напряжения, то можно убрать из схемы "первый" блок питания на 12В и питать устройство через "DC-DC понижайку"*... и не выключать этот БП совсем.
*image.jpg.9a2e88283a71dc99da258824c74aa943.jpg

Поделиться сообщением


Ссылка на сообщение

1 час назад, VALKNUT сказал(а):

Выводы есть?

Да. Доберусь до компа напишу.

Поделиться сообщением


Ссылка на сообщение
4 часов назад, VALKNUT сказал(а):

Выводы есть?

До того как прочел сообщение то что выше было.

- начал искать БП на 12В 2А чтобы компактно было и теплилась надежда либо в его корпус засунуть ЕСП либо его "выдрать" и прилепить в другой корпус.

- не укладывалось в голове, почему БП для СД ленты (куплен в том же магазе, что и лента) нельзя использовать для диммирования, при том что у меня ручной диммер использовался с таким БП и лентой в другом проекте. Решил кинуть глаз в спецку на БП.

- попытался прикинуть вопрос в голове для тех поддержки магазинчика с СД лентами.

После прочтения

Спойлер
4 часов назад, VALKNUT сказал(а):

Выводы есть?

Полагаю, что вполне подойдет "LRS-100-24 MEAN WELL Источник питания AC-DC 24В, 4.5А, 108Вт"
У него постоянные и ток и напряжение.
- Выходное напряжение номинальное, В24
- Выходной ток макс., А4.5

В смысле, что нужен не просто "Драйвер светодиодной ленты", а источник постоянного напряжения 24В.
Но они все "свистят", это неизбежно. Если брать не открытого типа, а IP65, то они как правило залиты компаундом и писк не пробивается наружу.
image.jpg.b2d68e5cd3150b508c7ae2d606b53fff.jpg

ЗЫ. Если использовать источник постоянного напряжения, то можно убрать из схемы "первый" блок питания на 12В и питать устройство через "DC-DC понижайку"*... и не выключать этот БП совсем.
*image.jpg.9a2e88283a71dc99da258824c74aa943.jpg

 

 

 

4 часов назад, VALKNUT сказал(а):

Полагаю, что вполне подойдет "LRS-100-24 MEAN WELL Источник питания AC-DC 24В, 4.5А, 108Вт"
У него постоянные и ток и напряжение.

Понял, что мы говорим просто о БП, а не о БП для СД ленты. Разница в стабилизации тока. Я ведь правильно Вас понял?

На сайте магазина есть два раздела. Типа БП по вольтажу и БП для диммирования. Но с набега разницу не уловил, но тех поддержка отвечает быстро, так что там все прояснят. Хотя как по мне, я же собираюсь менять скажность (так вроде называется) ШИМа уже после БП. БП в этом случае должно быть наплевать.

 

4 часов назад, VALKNUT сказал(а):

не открытого типа, а IP65,

Как раз такой и хотел, потому что водичка все таки рядом. А как не крутись один шар залить можешь все. Да и по ТБ нежелательно, домочадцы же все таки есть.

4 часов назад, VALKNUT сказал(а):

ЗЫ. Если использовать источник постоянного напряжения, то можно убрать из схемы "первый" блок питания на 12В и питать устройство через "DC-DC понижайку"*... и не выключать этот БП совсем.

Такая задумка и была.

Самый главный вывод, отложить на денек мех часть и заняться программной частью.

Поделиться сообщением


Ссылка на сообщение
34 минут назад, Haaans сказал(а):

БП в этом случае должно быть наплевать.

Хорошо, пусть так.
Но чисто гипотетически:
- БП со стабилизацией по току, варьирует напряжением, чтоб удерживать ток в заданном пределе.
- Что будет делать такой БП, когда нагрузка начнет снижаться? (я не знаю, а Вы?)

Для управления яркостью ленты надо иметь постоянное напряжение, а не ток, т.к. ШИМ, это не про ток, а про напряжение.

Поделиться сообщением


Ссылка на сообщение
4 минут назад, VALKNUT сказал(а):

- БП со стабилизацией по току, варьирует напряжением, чтоб удерживать ток в заданном пределе.

Не пойму, что вы заморачиваетесь с питанием? У меня много лет работает на таких трансах - 

 

 

ba1267.jpg

Они на холстом практически не потребляют (cos ф большой). Нагрузку держат бешеную, напряжения есть сразу все))

В 12.09.2024 - 09:43, AlexLi сказал(а):

Когда уже будет фото готового продукта запущенного в серию?!!))

Могу выставить, поржете))

В 11.09.2024 - 23:49, Haaans сказал(а):

Питание вентилятора 3-pin 12В 0.2А можно сделать через такой же БП как выше, только думается

Там подходит 2-х пиновый с БП диаметр 120мм ставится на 100-150мм от воды, он у меня на 250л удерживает <+24C всегда, термодатчик для него - контактный термометр - он не глючит и не зависает. Вентилятор такой бесшумный даже ночью, включается не с реле, а с КТ817, база-эмиттер, база - контакт "+" резисторы подобрать только...

///реле очень качественные и мощные от стиральных машин и микроволновок.

Поделиться сообщением


Ссылка на сообщение
6 минут назад, Lx671 сказал(а):

У меня много лет работает на таких трансах

У Вас для него отдельная комната со сплитом для диодного моста или нагрузка не высокая и нужна только отдельная комната для размещения такого "малыша"? :ap:
/если что, это конечно шутка/
Хочется сделать что-то такое, что не требует бригады "высоко-квалифицированных иностранных специалистов ручной тяги" для перемещения готового устройства.

13 минут назад, Lx671 сказал(а):

Там подходит 2-х пиновый с БП диаметр 120мм ставится на 100-150мм от воды, он у меня на 250л удерживает <+24C всегда, термодатчик для него - контактный термометр - он не глючит и не зависает. Вентилятор такой бесшумный даже ночью, включается не с реле, а с КТ817, база-эмиттер, база - контакт "+" резисторы подобрать только...

А кто на ночь/день резисторы переключает? Есть еще один момент.. например 4-пин куллер можно почти в 0 загасить и он после этого нормально стартанет, а в случае с подобранными резисторами получится, что на минимуме (на котором куллер не останавливался) он при подаче питания не запустится, а если минимум выбрать по напряжению запуска, то он не будет работать на минимуме, когда запустится, а будет крутить несколько "энергичней".
Зачем этот "массаж деревянной ноги", если в 4-х пиновых всё предусмотрено "из коробки" и не надо обвешивать устройство дополнительными компонентами = "соплемонтаж"? =)

Щетайу, что устройство должно быть не только практично, но и красиво. Как снаружи, так и внутри. Далеко ходить не надо: наш ВПК. Самолеты, корабли, танки - произведения искусства (по сравнению с западными образцами) и при этом надежны и совершенны. Представьте там навесные транзисторы... которые случайно можно жопой оторвать в "сложной ситуации"

... я такое не представляю и по этому, еще в 5 лет отказался от трансформаторов с собачью будку и навесных деталей на проводках =))))
Это я сейчас утрировал, для понимания отношения к такому "лютому колхозу". (без обид, у меня особые требования к прекрасному) :ap:

Поделиться сообщением


Ссылка на сообщение
3 часов назад, VALKNUT сказал(а):

А кто на ночь/день резисторы переключает? Есть еще один момент.. например 4-пин куллер можно почти в 0 загасить и он после этого нормально стартанет, а в случае с подобранными резисторами получится, что на минимуме (на котором куллер не останавливался) он при подаче питания не запустится, а если минимум выбрать по напряжению запуска, то он не будет работать на минимуме, когда запустится, а будет крутить несколько "энергичней"

Вы вообще не поняли тему. Я про регулировку здесь вообще не писал. Там чистая коммутация вкл/выкл. Для правильной работы транзистора в ключевом режиме надо правильно подобрать среднюю точку. А то, что поняли вы - это можно так-же реализовать и довольно стабильно, но тогда я бы написал еще подбор резистора ОС база-коллектор.

3 часов назад, VALKNUT сказал(а):

высоко-квалифицированных иностранных специалистов ручной тяги

Да, кой чего знать надо, но коробка небольшая, отдельная, схема не сложная, прячется куда угодно, не шумит, по квартире в кабель-канал укладываются нужные провода...

Запитать можно не только 5 и 12 в, но и обогреватель для аквы на пониженном напряжении и он никогда не сгорит.

Очень удобно, 1 пульт на все аквы, и от такого блока запитка автомагнитолы с динамиками в шкафу на кухне - места не занимает, ну и еще по мелочи, удобно.

3 часов назад, VALKNUT сказал(а):

Представьте там навесные транзисторы... которые случайно можно жопой оторвать в "сложной ситуации"

Нет, это все просчитано. И предохранители ни кто не забыл)) Сложная ситуация может быть при зависании контроллера при управлении отоплением))

Поделиться сообщением


Ссылка на сообщение
4 часов назад, Lx671 сказал(а):

Не пойму, что вы заморачиваетесь с питанием?

О_о меня выгонят из дома если я такой БП "кину" рядом с аквасом. А по теме, заморочки нет, есть непонимание, потому не кончал учебных курсов по типу радиомастер.

Поделиться сообщением


Ссылка на сообщение

Мож им просто желтый градусник подарить один аквариумный. У меня есть.

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Темная Сущность сказал(а):

Мож им просто желтый градусник подарить один аквариумный. У меня есть.

Гыг. Ты его себе оставь, пока, и давай сделай электронный, я как-то предлогал.

Поделиться сообщением


Ссылка на сообщение

Вообще чтобы резистор на резистор не паять, можно нормальную печатную плату спроектировать, тока схему надо электрическую принципиальную. И проблемм нет. Все крепим в стойки, ставим охлаждение, загоняем все это в военный урал и получаем мобильный комплекс. Тока надо еще грузовичок-генератор для подачи питания. время развертывания не более 5 минут. все.

Поделиться сообщением


Ссылка на сообщение

В 14.09.2024 - 08:58, Темная Сущность сказал(а):

Вообще чтобы резистор на резистор не паять, можно нормальную печатную плату спроектировать, тока схему надо электрическую принципиальную. И проблемм нет. Все крепим в стойки, ставим охлаждение, загоняем все это в военный урал и получаем мобильный комплекс. Тока надо еще грузовичок-генератор для подачи питания. время развертывания не более 5 минут. все.

Месье знает толк в извращениях. 

Поделиться сообщением


Ссылка на сообщение
В 16.08.2024 - 07:13, VALKNUT сказал(а):

Предлагаю вот такой скетч в качестве основы

Я наконец добрался попробовать скетч. Он работает, но наоборот. Диод включен когда температура ниже 30. И выключается при превышении.

Поделиться сообщением


Ссылка на сообщение
48 минут назад, Haaans сказал(а):

Я наконец добрался попробовать скетч. Он работает, но наоборот. Диод включен когда температура ниже 30. И выключается при превышении.

Проверил и перепроверил сам скетч. Думаю дело не в нем. А в том как запитан светодиод на плате. Внешние диоды есть, но они требуют высокие токи. А сжечь плату не охота. Ждем посылку из Китая. Не знаю на что хватит того что приедет. Но будем чет думать.

Да, думал, что история как-то связана с переменными bool или int. Но нет. Дело не в них. Попробую кратковременно внешний диод включить.

Поделиться сообщением


Ссылка на сообщение
56 минут назад, Haaans сказал(а):

Попробую кратковременно внешний диод включить.

При использовании внешнего диода вот этот вариант скетча работает

Спойлер


//СКЕТЧ считывает температуру с датчика, сравнивает с заданой и ВКЛ/ВЫКЛ диод на плате
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 0              // Назначем пин OneWare

//============						// Данные для счетчика времени для опросов
unsigned long previousMillis = 0;   // Нулевое значение для начала отсчета
const long interval = 3000;         // Длительность паузы между опросами
byte DSResolution = 13;             // Разрешение датчика температуры
float tempC;                        // Задаем переменную текущей температуры
float tempNado = 30.0;              // Температура после превышения которой включается диод
const int ledPin = 16;              // Указываем пин на котором у нас висит внешний диод, указать цифру после GPIO.
//int ledState = LOW;               // Задаем изначальное положение диода ВЫКЛ. Она будет перезаписываться в зависимости от температуры
bool ledState = false;              // Задаем изначальное положение диода ВЫКЛ. Она будет перезаписываться в зависимости от температуры
//=============

OneWire oneWire(ONE_WIRE_BUS);      // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
DallasTemperature sensors(&oneWire);// Pass our oneWire reference to Dallas Temperature.
DeviceAddress insideThermometer;    // arrays to hold device address

void setup(void) {
  Serial.begin(115200);
  Serial.println("Запуск устройства...");
  //=================
  pinMode(ledPin, OUTPUT);          // Назначение пина светодиода в ВЫХОДНОЙ режим
  //=================

  Serial.print("Поиск датчиков...");
  sensors.begin();
  Serial.print("Найдено ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" датчиков.");

  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0");

  //================
  void opros (); //функция для перезапуска счетчика времени
  //================
}

void opros() {
  sensors.setResolution(insideThermometer, DSResolution);       // Задаем разрешение датчика из переменной
  sensors.requestTemperatures();                                // Посылаем датчику запрос температуры

  tempC = sensors.getTempC(insideThermometer);                  // В переменную пишем полученные данные от датчика(такого-то)
  if (tempC == DEVICE_DISCONNECTED_C) {                         // Если адрес/датчик не обнаружены, сообщаем об ошибке
    Serial.println("Error: Could not read temperature data");   // Сообщение об ошибке
    return;                                                     // Возвращаемся
  } else {                                                      // Если же адрес/датчик обнаружены, пишем данные в терминал
    Serial.print("Temp C: "); Serial.println(tempC);            // Данные в терминал
  }

  if (tempC >= tempNado) {                                      // Сравниваем данные датчика и контролируемой температуры
    ledState = HIGH;                                            // Если текущая температура больше или равна нужной
  } else {                                                      // Или
    ledState = LOW;                                             // Если текущая температура не больше и не равна нужной
  }
  digitalWrite(ledPin, ledState);                               // Зажигаем или тушим светодиод
}

void loop (void) {
  //счетчик на Millis для повторения опроса через заданый промежуток в interval
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    opros ();
  }
}

 

Встроенный диод работает только если "перевернуть" значения в условиях. Это для справки.

 

Итак. Получается на данный момент скетч сможет включить или включить то что висит на заданном пине. Пока что это светодиод ВНЕШНИЙ.

Поделиться сообщением


Ссылка на сообщение

Вот и добрался я до юстировки датчиков температуры.

Без вводной, не обойтись.
В комплекте аквариума, входила наклейка-термометр. Решил, что эта наклейка не может быть достаточно точной для измерения температуры (как мне казалось). Прикупил желтый термометр от Sera. Наклейка и Sera показывали одинаковые значения. Место установки одно, немного разнесены между собой.
Для измерения температуры воздуха из Китая есть еще два термометра. На данный момент два китайца и sera лежат рядом. Расстояние не более 0,5 метра. Расхождение по ним 0,5 градуса.

Не сильно искал информацию о калибровке этих датчиков. Отзывы по датчикам не плохие. Допустимый разброс до 7%. С учетом имеющих измерительных приборов предел точности измерений в 1 градус меня устроит. Тем более, что датчик в гильзе, а это добавляет инерцию, в общем кто будет вникать тот сам поймет ход мысли.
Решил устроить вот такие варианты измерения:
Т0. Просто воздух. Разложить все датчики рядом на салфетку и кинуть рядом серовский термометр
Т1. Налить воду в стакан, уровень позволяет погрузить гильзу целиком и не касаться дна.
Т2. Заморозить воду и в момент таяния измерить температуру. Все (5 штук)  датчики стянуты резинками для денег.
Т3. После образования некоторого количества воды попробовать измерить температуру снова.
Т4. После Т3 образовалось еще больше холодной воды. Погрузить каждый датчик отдельно стараясь максимально покрыть гильзу водой.

Примечание: во время Т2 отслеживал данные по изменению температуры и понимаю, что в воде только сам кончик гильзы, что не годится. Температура в это время не упала до нуля градусов.

Подготовка к измерениям. На каждый кабель наклейка с порядковым номером. Вот этот скетч использовал. Это пример из OneWire библиотеки, просто расширен до моих 5 датчиков.

Спойлер

// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 0
#define TEMPERATURE_PRECISION 9

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// массив для хранения адресов устройств
DeviceAddress insideThermometer_index1, outsideThermometer_index2, index3, index4, index5;

// Assign address manually. The addresses below will need to be changed
// to valid device addresses on your bus. Device address can be retrieved
// by using either oneWire.search(deviceAddress) or individually via
// sensors.getAddress(deviceAddress, index)
// DeviceAddress insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
// DeviceAddress outsideThermometer   = { 0x28, 0x3F, 0x1C, 0x31, 0x2, 0x0, 0x0, 0x2 };

//============						// Данные для счетчика времени для опросов
unsigned long previousMillis = 0;   // Нулевое значение для начала отсчета
const long interval = 3000;         // Длительность паузы между опросами
//============

void setup(void)
{
  // start serial port
  Serial.begin(115200);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();

  // locate devices on the bus
  Serial.print("Locating devices...");
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");

  // report parasite power requirements
  Serial.print("Parasite power is: ");
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");

  // Search for devices on the bus and assign based on an index. Ideally,
  // you would do this to initially discover addresses on the bus and then
  // use those addresses and manually assign them (see above) once you know
  // the devices on your bus (and assuming they don't change).
  //
  // method 1: by index
  if (!sensors.getAddress(insideThermometer_index1, 0)) Serial.println("Unable to find address for Device 0");
  if (!sensors.getAddress(outsideThermometer_index2, 1)) Serial.println("Unable to find address for Device 1");
  if (!sensors.getAddress(index3, 2)) Serial.println("Unable to find address for Device 2");
  if (!sensors.getAddress(index4, 3)) Serial.println("Unable to find address for Device 3");
  if (!sensors.getAddress(index5, 4)) Serial.println("Unable to find address for Device 4");

  // method 2: search()
  // search() looks for the next device. Returns 1 if a new address has been
  // returned. A zero might mean that the bus is shorted, there are no devices,
  // or you have already retrieved all of them. It might be a good idea to
  // check the CRC to make sure you didn't get garbage. The order is
  // deterministic. You will always get the same devices in the same order
  //
  // Must be called before search()
  //oneWire.reset_search();
  // assigns the first address found to insideThermometer
  //if (!oneWire.search(insideThermometer)) Serial.println("Unable to find address for insideThermometer");
  // assigns the seconds address found to outsideThermometer
  //if (!oneWire.search(outsideThermometer)) Serial.println("Unable to find address for outsideThermometer");

  // show the addresses we found on the bus
  Serial.print("Device 0 Address: ");
  printAddress(insideThermometer_index1);
  Serial.println();

  Serial.print("Device 1 Address: ");
  printAddress(outsideThermometer_index2);
  Serial.println();

  // set the resolution to 9 bit per device
  sensors.setResolution(insideThermometer_index1, TEMPERATURE_PRECISION);
  sensors.setResolution(outsideThermometer_index2, TEMPERATURE_PRECISION);

  Serial.print("Device 0 Resolution: ");
  Serial.print(sensors.getResolution(insideThermometer_index1), DEC);
  Serial.println();

  Serial.print("Device 1 Resolution: ");
  Serial.print(sensors.getResolution(outsideThermometer_index2), DEC);
  Serial.println();

  Serial.print("Device 2 Resolution: ");
  Serial.print(sensors.getResolution(index3), DEC);
  Serial.println();

  Serial.print("Device 3 Resolution: ");
  Serial.print(sensors.getResolution(index4), DEC);
  Serial.println();

  Serial.print("Device 4 Resolution: ");
  Serial.print(sensors.getResolution(index5), DEC);
  Serial.println();

  //=============
  void opros();      //Функция перезапуска счетчика врмеени
}

// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    // zero pad the address if necessary
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if(tempC == DEVICE_DISCONNECTED_C) 
  {
    Serial.println("Error: Could not read temperature data");
    return;
  }
  Serial.print("Temp C: ");
  Serial.print(tempC);
  //Serial.print(" Temp F: ");
  //Serial.print(DallasTemperature::toFahrenheit(tempC));
}

// function to print a device's resolution
void printResolution(DeviceAddress deviceAddress)
{
  Serial.print("Resolution: ");
  Serial.print(sensors.getResolution(deviceAddress));
  Serial.println();
}

// main function to print information about a device
void printData(DeviceAddress deviceAddress)
{
  Serial.print("Device Address: ");
  printAddress(deviceAddress);
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

/*
   Main function, calls the temperatures in a loop.
*/
void opros()
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures();
  Serial.println("DONE");

  // print the device information
  printData(insideThermometer_index1);
  printData(outsideThermometer_index2);
  printData(index3);
  printData(index4);
  printData(index5);
}

void loop (void) {
  //счетчик на Millis для повторения опроса через заданый промежуток в interval
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    opros ();
  }
}

 

Постепенно добавлял по одному датчику, получил адрес каждого.

Итог измерений свел в таблицу

66edee6a97e8f_1820.jpg.ed21af53a6c456598136a320fae9a68a.jpg

Так как базового точного (поверенного термометра нет), считать погрешность не вижу смысла. Считаю, что все датчики (кроме 4-го, и то на низких температурах).

Посмотрел на серовский термометр. Он оказывается 0 может измерить. Охладил воду. Сера показала +2С. Повторил тест с погружением датчиков отдельно. Колонка Т5.

66edf83eab192_21820.jpg.925bae22282983f17c8105cb6db607bd.jpg

Так же как и раньше выбивается только 4-ый датчик.

Вывод прям сейчас напрашивается один: Отметить погрешность 4ого датчика как занижает Т на 0,87 градуса и отложить в сторону. Остальные использовать без внесения корректировки в скетч.

@VALKNUT, что думаешь об этом всем?

P.S. @Темная Сущность, приходи. Я тут по твоим любимым градусникам чекал темпу.

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×