Авторизация
Регистрация

Напомнить пароль

Управление компьютерными вентиляторами при помощи ESP8266 - теория и практика.

Небольшой топик в DIY сообщество который нацелен на раскрытие темы управления компьютерными вентиляторами (3Pin и 4Pin) при помощи контроллера Esp8266. В статье изучим алгоритм управления шим сигналом напрямую и через мосфет, считывание оборотов вентилятора, а так же добавление девайса в умный дом силами HomeAssistant. 

Если тема интересна то добро пожаловать под кат.  

Начнем статью со спецификаций. Компьютерные вентиляторы стандартизированы, и если обозначить рамки моделей в пределах обычных домашних пк, то можно взять документ от Intel который описывает требования для этих девайсов. 

(может не открываться в Рф и Белоруссии, используйте впн)

https://www.intel.com/content/dam/support/us/en/documents/intel-nuc/intel-4wire-pwm-fans-specs.pdf

Сразу добавлю сюда ссылки на свои даташиы от крупных производителей таких как NCOTUA 

https://noctua.at/pub/media/wysiwyg/Noctua_PWM_specifications_white_paper.pdf

и DELTA 

https://www.delta-fan.com/Upload/PWM/Delta_PWM.pdf

 

Открыв документ от интела, станет понятно что стандарт очень старый и датирован аж 2003 годом а его последнее обновление было в 2005 и видимо стандарт настолько идеален что его изменение с тех лет не потребовалось. 

Если говорить про стандарт кратко то 4пин стандарт максимально прост и требует выполнение таковых условий: 

  • Питание вентилятора в пределах 12в +-5%
  • Ток вентилятора не должен превышать 1,5А при напряжении вплоть но 12,6в но при этом разрешаются пики 2,2А но не более 1 секунды. 
  • Тахометр должен выдавать 2 импульса на 1 оборот крыльчатки
  • Шим сигнал для управления вентилятором должен иметь частоту 25кгц (допускается 21-28кгц, с логическим уровнем от 0,8 до 5,25в, а максимальный ток по этому контакту может составлять 5мА. 

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

 

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

Управление вентилятором не сильно сложнее, на вход подается ве та же квадратная волна разной скважности от которой будет зависеть скорость вращения вентилятора. Заполнение может быть от 0 до 100% но никто не обещает что вентиляторы будут останавливаться, а так же без ШИМ сигнала, все компьютерные вентиляторы будут крутиться на 100% оборотах так как не инвертирован.

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

Стоит игнорировать 5в и 24в вентиляторы так как это более редкие вариант которые не просто встретить в обычном пк. 

Правда 12в вариант никак не отличается по распиновке от других, и вот как она выглядит:

  1. Черный — земля
  2. Желтый — питание 12в 
  3. Зеленый — Тахометр 
  4. Синий — Шим сигнал

 

Для вентиляторов 3пин ситуация идентичная но из уравнения убирается четвертый (синий) контакт шим управления. При этом дизайн разьема выполнен так что в 4пин можно установить вентилятор с 3пин подключением, и наоборот. 

Для тестов я буду использовать вентиляторы XPG Vento PRO, так как они есть у меня в наличии, они поддерживают PWM а главное то что я делал обзор на них и прекрасно знаю их характеристики дабы сравнить их с тем что я получаю от микроконтроллера. https://mysku.club/blog/russia-stores/88421.html 

Практика

Управление ШИМ

Начнем с самого простого, а именно управление вентилятора по ШИМ сигналу. 

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

Для начала надо выбрать пины которые поддерживают ШИМ модуляцию. Все сильно зависит от того какое исполнение у вайшей платы с ESP8266, но зачастую нет никаких проблем поискать рапиновку по запросу «esp8266 вашаплата pinout». 

Вот так для примера выглядит распиновка Wemos D1 mini, а пины с шим сигналом легко определить по небольшой загогулине вместо ровной линии от платы до номера контакта в инфографике. 

Так же советую выбирать пины которые минимально заняты в сервисной жизни контроллера,  например не лучшей идеей будет занимать пины Serial порта, пины общения с памятью или I2c который может понадобиться в будущем. 

Подробнее про пины, шим и прерывания на ESP8266 можно почитать тут: https://arduino-esp8266.readthedocs.io/en/latest/reference.html

Для управления вентилятором я решил взять пин 6 (GPIO 12) так как он ничем не занят, а так же поддерживает PWM выход.  

В начале кода я объявляю переменную для указания пина который будет использоваться под управление вентилятором.  Можно делать это напрямую в коде но проще и удобнее заранее определить переменные дабы не искать их по коду если их понадобится изменить.

#define Fan_Pin_PWM 12

 

После чего надо настроить выбранный нами пин на выход. 

pinMode(Fan_Pin_PWM, OUTPUT);

 

А теперь важный момент. В стандартном виде частота PWM выходов составляет всего 1кгц и она нам не подходит, ее нужно изменить до 25кгц в соответствии со стандартами для PWM вентиляторов. ЕSP8266 поддерживает частоту от 100гц до 40Кгц, но как говорит документация, чем выше частота и больше портов на высокой частоте, тем выше нагрузка на центральный процессор и меньше циклов процессора на выполнение нашего кода. 

Для установки частоты заедем еще одну переменную настроек на 25000 и применим ее к шим выходам. 

#define Fan_PWM_FRQ 25000
analogWriteFreq(Fan_PWM_FRQ);

 

Для управления сделаем небольшую функцию которая принимает проценты и устанавливает значение на пин. Я использовал простую функцию MAP которая превращает диапазон 0-100 до 0-1024.

void SetFanLevel(int percent) {
  analogWrite(Fan_Pin_PWM,  map(percent, 0, 100, 0, 1024));
}

 

А теперь все вместе. Я завел .h файл дабы не захламлять основной скетч функциями которым не требуется постоянная модификация.

//Fan.h
//Settings 
#define Fan_Pin_PWM 12
#define Fan_PWM_FRQ 25000

//Functions
void InitFan(){
 pinMode(Fan_Pin_PWM, OUTPUT);
 analogWriteFreq(Fan_PWM_FRQ);
}

void SetFanLevel(int percent) {
  analogWrite(Fan_Pin_PWM,  map(percent, 0, 100, 0, 254));
}

 

Подсчет оборотов

Теперь код немного усложняется. Но логика очень простая. Мы будем использовать аппаратные прерывания на пине, выставим условие при котором будет вызываться функция, которая будет считать обороты. 

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

//Data
volatile int Fan_InterrupCount;

 

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

#define Fan_Pin_Tach 14

 

Для пина тахометра включим аппаратную подтяжку как это требует спецификация вентиляторов, напряжение контроллера как раз 3,3в.

pinMode(Fan_Pin_Tach, INPUT_PULLUP);

 

Теперь начинается самое интересное. Нам надо подписаться на изменение состояния пина. Для этого мы пишем данную строку, в ней м указываем какой пин будет вызывать прерывание, какая функция будет вызвана, а так же при каком условии вызывать прерывание. Состояний для вызова всего 3:

  • FALLING — при падение напряжения на пине
  • RISING — при поднятии напряжения на пине
  • CHANGE — при каком либо изменении на пине
attachInterrupt(digitalPinToInterrupt(Fan_Pin_Tach), HandleInterrupt, FALLING);

 

Далее надо написать функцию которая будет обрабатывать прерывание, в моем случае это простейший счетчик который считает +1 если произошел импульс.  Для того что бы функция могла быть вызвана прерыванием, она должна иметь атрибут IRAM_ATTR

void ICACHE_RAM_ATTR HandleInterrupt() { 
  Fan_InterrupCount++;
}

 

Таким образом контроллер уже будет считать импульсы от вентилятора, но теперь надо пересчитать их в обороты/секунда. 

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

#define Fan_RPM_Update_Period 1000
unsigned long Fan_PrevMills =0;
int Fan_RPM =0;

 

А так же заведем функцию подсчета оборотов.  Она каждые 1000мс (или то как мы настроили) берет последнее кол-во прерываний, пересчитывает в обороты/сек, умножает результат на 60 (тк мы считаем обороты/минута, а получаем обороты за 1 секунду), обнуляет счетчик прерываний и записывает данные в переменную. 

Данная функция должна работать в Loop и абсолютно не дружит с большими Delay(x) а так же зависаниями контроллера. Тут есть свои минусы и плюсы разных решений подсчета, но мне нравится именно это, когда каждую секунду ты просто получаешь данные от вентилятора. 

void CalcFanRPM(){
  if ((millis() - Fan_PrevMills) > Fan_RPM_Update_Period) {
    Fan_PrevMills = millis();
    int count = Fan_InterrupCount;
    Fan_RPM =  count / 2 * 60;
    Fan_InterrupCount=0;
  }
}

 

Для удобства в функцию расчета я добавил вызов функции  DisplayFanRPM(), и теперь каждую 1сек в сериал порт выводятся данные об оборотах вентилятора.

void DisplayFanRPM() {
  Serial.print(Fan_RPM, DEC);
  Serial.print(" RPM\r\n");
}

 

Немного доработаем тестовый скетч и проверим результат.

#include "Fan.h"

int brightness = 0;    // how bright the LED is
int fadeAmount = 1;    // how many points to fade the LED by


void setup() {
  InitFan();
}


void loop() {
  CalcFanRPM();
  SetFanLevel(brightness);
  brightness = brightness + fadeAmount;

  if (brightness <= 0 || brightness >= 100) {
    fadeAmount = -fadeAmount;
  }
  
  //Добавим вывод данных об уровне для удобства. 
  Serial.print(brightness, DEC);
  Serial.print(" Level\r\n");
  
  delay(300);
}

 

Максимальные обороты как и ожидалось оказались на уровне 2300об/мин, минимальные обороты аж 260, что немного больше чем должно быть но в целом в рамках нормы. 

На графике видно что при понижении напряжения можно добиться еще меньше оборотов но об этом дальше.

 

А так выглядит наша импровизированная библиотека:


//Settings 
#define Fan_Pin_Tach 14
#define Fan_Pin_PWM 12
#define Fan_PWM_FRQ 25000
#define Fan_RPM_Update_Period 1000

//Data
volatile int Fan_InterrupCount;
unsigned long Fan_PrevMills;
int Fan_RPM;

void ICACHE_RAM_ATTR HandleInterrupt() { //This is the function called by the interrupt
  Fan_InterrupCount++;
}

void InitFan(){

 Fan_InterrupCount=0;
 Fan_RPM=0;
 Fan_InterrupCount=0;

 //Fan Controls
  analogWriteFreq(Fan_PWM_FRQ);
  pinMode(Fan_Pin_PWM, OUTPUT);


 //Fan data
 pinMode(Fan_Pin_Tach, INPUT_PULLUP);
 attachInterrupt(digitalPinToInterrupt(Fan_Pin_Tach), HandleInterrupt, FALLING);
}

void SetFanLevel(int percent) {
  analogWrite(Fan_Pin_PWM,  map(percent, 0, 100, 0, 255));
}

void DisplayFanRPM() {
  Serial.print(Fan_RPM, DEC);
  Serial.print(" RPM\r\n");
}

void CalcFanRPM(){
  if ((millis() - Fan_PrevMills) > Fan_RPM_Update_Period) {
    Fan_PrevMills = millis();
    int count = Fan_InterrupCount;
    Fan_InterrupCount=0;
    Fan_RPM =  count / 2 * 60;
 
   DisplayFanRPM();
  }
}

 

Теперь опробуем управлять сразу двумя вентиляторами. На этом пункте придется убрать функционал замера оборотов, так как он начинает выдавать полную ерунду. 

Дорабатываем функции инициализации вентилятора и применении уровня оборотов. 

Теперь каждая из функций будет принимать сначала пин на котором находится вентилятор. 

//Settings 
 #define Fan_PWM_FRQ 25000


void InitFan(int fanpin){
 //Fan Controls
 analogWriteFreq(Fan_PWM_FRQ);
 pinMode(fanpin, OUTPUT);
}

void SetFanLevel(int fanpin,int percent) {
  analogWrite(fanpin,  map(percent, 0, 100, 0, 255));
}

 

Заменим код тестового скетча, теперь вентиляторы меняют свою скорость относительно друг друга. 

#include "Fan.h"

int brightness = 0;    
int fadeAmount = 1;    

void setup() {
  Serial.begin(115200);
  InitFan(14);
  InitFan(12);

}

void loop() { 
  brightness = brightness + fadeAmount;

  if (brightness <= 0 || brightness >= 100) {
    fadeAmount = -fadeAmount;
  }

  Serial.print(brightness, DEC);
  Serial.print(" Fan level\r\n");

  SetFanLevel(14, brightness);
  SetFanLevel(12, 100-brightness);
  delay(300);
}

 

Для более наглядной демонстрации я поставил статичные обороты, левый крутится на 100% а правый на 1%

#include "Fan.h"
void setup() {
  Serial.begin(115200);
  InitFan(14);
  InitFan(12);
  SetFanLevel(14, 1);
  SetFanLevel(12, 1);
}

void loop() { 
}

 

Подключение к умному дому HomeAssistant

Теперь перейдем к более практичному примеру управления вентилятором. 

 

Первым делом конечно же создаем прошивку в ESPHOME и прошиваем ее в контроллер. 

И теперь можно начать писать YAML файл для управления вентилятором. 

fan:
  - platform: speed
    output: Vento_Pro_PWM
    name: "XPG Vento PRO Test"

output:                                                                                                                                                                             
  - platform: esp8266_pwm
    id: Vento_Pro_PWM
    #Пин вентилятора
    pin: 14      
    #Частота шим для управления вентилятором                                                                                                                                                                       
    frequency: "25000 Hz"                   
    #Диапазон оборотов вентилятора                                                                                                                                              
    min_power: 1%
    max_power: 100%

 

Для управления вентилятором я добавил карточку на тестовую страницу, это Mushrom карточка которой нет в обычном HomeAssistant.

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

Решить проблему выключения вентилятора можно двумя возможными вариантами. 

1 — Поставить мосфет. Достаточно любого мосфета на ток 2+А и с управлением от 3в, в коде ESPHOME добавить автоматизацию которая будет следить за выставленным уровнем вентилятора и если он более 0 то включить мосфет, а если 0 то выключить. Тем самым можно полностью выключать вертушку. В теории можно управлять питанием вентилятора через этот мосфет, но на практике я пробовал разную частоту контроллера но периодически вентиляторы пищали и сильно роняли обороты (хотя некоторые вентиляторы работают нормально), в общем не везде подойдет этот вариант. 

 

 2 — Поставить не мосфет а транзистор, за счет чего можно получить плавную регулировку напряжения (подавать шим сигнал не на вентилятор а на транзистор который управляет питанием вентилятора). С таким вариантом управления можно не только останавливать вентилятор, но и получить более низкие обороты чем заявлены производителем !

Cхема еще проще чем с мосфетом если взять не просто транзистор а сборку Дарлингтона (например TIP122). 

Например вентилятор XPG VENTO PRO имеет заявленный диапазон от 450 до 2150 оборотов, при управлении сигналом PWM самые низкие обороты составили 242!

Но если регулировать его входное напряжение то можно добиться еще меньших оборотов, вплоть до 141!

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

При желании можно добавить еще один вентилятор в конфиг и управлять уже парой PWM вертушек, но не забываем ограничения PWM из документации, высокая частота требует много производительности от столь малого чипа, поэтому если вы хотите управлять несколькими вертушками то стоит взять контроллер помощнее (например ESP32)

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

На этом я закончу данный материал. Всем удачных самоделок и самых умных домов!

Добавить в избранное
+143 +222
свернутьразвернуть
Комментарии (173)
RSS
+
avatar
0
А если работать через PWM c двигателем напрямую (а не через прокладку + поставив кондер для сглаживания импульсов и обратный диод для гашения самоиндукции, если в ключе этого нет) и регулирая напряжение не нужно будет городить огород со схемой его отключения — есть сигнал — работает, нет сигнала — отключен, да и диапазон регулировки чуть расширится.

(Это можно очень просто сделать отключив электронику вентилятора — выпаяв из нее один контактов мотора и подключив свой ключ к нему и к оставшемуся контакту).

А взяв биполярник, можно сделать все еще круче)
+
avatar
+4
Я тоже не понял зачем нужен полевик в разрыв питания. По идее если сделать скважность pwm равную нулю, то вентилятор не должен крутиться.

Про регулировкой напряжением от StainlessSoul, не согласен. Есть же специально обученный вывод для управления и автор им воспользовался. Зачем городить огород из конденсатора и тд и тп?

Пы.сы. Ну и как вы правильно написали у esp8266 нет аппаратного pwm, и ему тяжело. Лучше взять esp32, у него от 6 до 16 аппаратных pwm (в зависимости от модификации чипа)
+
avatar
+7
  • TheLamer
  • 14 сентября 2023, 19:38
Я тоже не понял зачем нужен полевик в разрыв питания. По идее если сделать скважность pwm равную нулю, то вентилятор не должен крутиться.
Есть два типа вентляторов: которые при замыкании PWM-контакта на землю останавливаются и те, которые при этом крутятся с определенными (минимальными) оборотами. Компьютерные, в большинстве своем, относятся ко вторым.
+
avatar
0
  • kiv69
  • 15 сентября 2023, 06:07
Сколько ни перепробовал вертушек — все они при замыкании pwm на gnd останавливаются.
+
avatar
+3
  • TheLamer
  • 14 сентября 2023, 19:36
А если работать через PWM c двигателем напрямую (а не через прокладку + поставив кондер для сглаживания импульсов и обратный диод для гашения самоиндукции, если в ключе этого нет) и регулирая напряжение не нужно будет городить огород со схемой его отключения — есть сигнал — работает, нет сигнала — отключен, да и диапазон регулировки чуть расширится.
Это будет эквивалент регулировки напряжением питания. И далеко не каждый вентилятор нормально так рулится.
+
avatar
0
Я не встречал обычных двигателей, которые бы так не крутились. А как встроенный контроллер делает? Разве не также?
+
avatar
+6
  • TheLamer
  • 14 сентября 2023, 23:55
У тех вентиляторов, в которых драйвер обмоток с таходатчиком — отдельная микросхема (или вообще схема на дискретных компонентах), а PWM-управление — другая микросхема (или участок схемы на дискретных транзисторах) — да, так. Но у тех, у кого драйвер обмоток имеет прямой ввод PWM, управление идет регулировкой заполнения импульса на обмотки. Это позволяет не сильно снижать момент со снижением оборотов (при регулировке по первой схеме момент со снижением мощности падает настолько, что обороты ниже 100об/мин невозможно сделать стабильными, поэтому нижнюю границу оборотов по PWM ставят не ниже нескольких сотен в минуту), и работать вентилятору в суровых условиях пыли, загустения смазки и т.д. Но такие вентиляторы не сильно популярны в быту, потому что издают явно слышимый стрекот на низких оборотах. И вентиляторы с такими драйверами, если им понизить напряжения питания, до некоторого предела либо вообще не изменяют скорость вращения, либо ведут себя непредсказуемо (бывало, что обороты начинали «плавать», бывало даже просто повышались), а потом выключаются (причем бывало, что навсегда). Так что с этими ничего, кроме штатного управления PWM, не поделаешь. Ну разве что драйвер менять на попроще.
+
avatar
+45
  • Beer100
  • 14 сентября 2023, 17:15
Управление компьютерным вентилятором с помощью дополнительного компьютера! «До чего дошел прогресс!» ©
Ни каких претензий, просто восторг. ))
+
avatar
+11
  • tirarex
  • 14 сентября 2023, 17:26
А внутри вентилятора еще один микроконтроллер для управления двигателем, а вентилятор ставится в пк где стоит мульти контроллер который управляет вентиляторами и снимает с них обороты, а он подключен к хабу который тоже контроллер, а он уже к процессору. целая цепочка )
+
avatar
+9
Я вот жду, когда мы начнем прошивки в утюгах обновлять. Вангую, это не за горами. Запомните этот твит ©.
+
avatar
+15
  • tirarex
  • 14 сентября 2023, 17:55
Уже настало это время
+
avatar
+14
Я так отстал, что временем настигнут.
+
avatar
+29
  • andrejt
  • 14 сентября 2023, 18:46
Если бы мне кто то сказал в конце 90 — х годов, что я буду прошивать выключатели света в квартире, что бы отвязать их от китайского облака… Я бы в лучшем случае покрутил пальцем у виска. Однако же…
+
avatar
+29
  • vadim72
  • 14 сентября 2023, 19:52
Если бы в 80-е годы рассказали про программирование паяльника… На ЭПСН 100 новую прошивку «накатить»…
+
avatar
+32
  • Morokon
  • 14 сентября 2023, 21:02
зарядить книгу и сигарету…
+
avatar
+3
  • vadim72
  • 14 сентября 2023, 21:25
Это да, тогда был бы полный маразм: На зарядку поставить «Беломор канал». Хотя в те годы, даже " поставить на зарядку" ни кому понятно не было. Я ни разу в магазинах города не видел аккумуляторов. Батарейки да, периодически были, аккумуляторов и зарядных- не было совсем.
+
avatar
+14
  • Beer100
  • 14 сентября 2023, 21:33
Были фонарики, которые в розетку 220 вставлялись для зарядки. Заряжался через резистор и диод. А вы тут, контроллер, контроллер! )))))))))))
+
avatar
+1
  • vadim72
  • 14 сентября 2023, 22:02
Эти фонарики и сейчас в продаже есть: там основная деталь, гасящий конденсатор. Если такой фонарь включенным поставить на зарядку, то лампочке (светодиоду) «трандец».
+
avatar
+1
  • sav1812
  • 14 сентября 2023, 22:05
Там «из коробки» запланирован «трындец» аккумулятору: схема не предусматривает никакого ограничения напряжения батареи при зарядке…

Я несколько таких переделал на литий. Получился фонарь-powerbank с зарядкой от USB. Удобно… :)
+
avatar
+16
  • smos
  • 14 сентября 2023, 21:48
У меня в 80-ых был калькулятор на аккумуляторах. Я ради интереса разбирал зарядное к ним. Схема у него была шикарная — резистор и диод (или что-то типа того, точно уже не помню), и всё это — в 220.
Ещё встречал аккумулятор типа кроны, был он в виде цилиндра.
Вот, картинку нашёл:
+
avatar
0
  • vadim72
  • 14 сентября 2023, 22:07
Да, видел такой аккумулятор. Только «убитый». Не было к ним зарядных-автоматов. И такие и им подобные аккумуляторы «умирали» раньше времени.
+
avatar
+8
  • muraveiX
  • 15 сентября 2023, 07:21
Только «убитый».
Вы упустили свой шанс! :)
Был отличный способ их восстановления: каждый диск зажимался в тиски через изолирующие прокладки, и сжимался, в разумных пределах. После чего, аккумулятор работал лучше нового.(внутреннее сопротивление уменьшалось) Причиной выхода из строя, были плоские пружины внутри, они «сгнивали», а сжатие восстанавливало контакт.
+
avatar
0
  • vadim72
  • 15 сентября 2023, 22:32
Тот аккумулятор не в тиски а сразу в мусор: все семь аккумуляторов шарообразной формы были. Хоть под пресс клади, результат нулевой будет…
+
avatar
0
  • mmasco
  • 15 сентября 2023, 10:04
Были, были, но не у всех :) См. мой ответ smos
+
avatar
+2
  • mmasco
  • 15 сентября 2023, 09:56
Эти аккумуляторы использовались в армейских миниатюрных рациях Р147, был еще «вечный» вариант в этом же формате но в серебряно-цинковом исполнении, но то было чисто военка, а этот еще продавался и в быту. Также в одном из вариантов внешних блоков питания этой рации использовались серебряно-цинковые аккумуляторы формата АА, тоже были практически вечными. Ну и военная зарядка для них была достаточно навороченной, запитывалась практически от всего чего угодно, что могло быть у вояк и выдавать электричество, внутрь правда не лазил, но точно там дело не ограничивалось диодом с резистором, т.к. была индикация заряда, в смысле, что аккумулятор заряжен и можно вынимать.
+
avatar
0
На заводах юзали.
+
avatar
0
  • vadim72
  • 15 сентября 2023, 22:37
Был у нас дома похожий на этот (размерами и формой): их на железной дороге применяли и если не ошибаюсь на шахтах. В магазине только такой купить нельзя было — отец с работы принёс (и туда же носил для зарядки). Мы с этим фонарём, извиняюсь за подробности, ночью в туалет ходили…
+
avatar
0
  • mmasco
  • 16 сентября 2023, 00:36
Ээээ… вы о чем?
+
avatar
0
  • vadim72
  • 16 сентября 2023, 02:02
это я о фонаре, в похожем корпусе…
+
avatar
+1
  • mmasco
  • 16 сентября 2023, 02:37
Ааа… Только на фото не фонарь а миниатюрная УКВ радиостанция — венец творения военной электронной промышленности СССР, начала 70х годов прошлого века. :)
+
avatar
0
рц были в то время мощью.
+
avatar
0
  • sav1812
  • 14 сентября 2023, 22:03
У нас Д-0,25 бывали…
+
avatar
0
  • Colobock
  • 14 сентября 2023, 22:38
Аккумуляторы точно были. Как минимум АА, я для плеера «Квазар» купил.
+
avatar
0
  • vadim72
  • 14 сентября 2023, 22:46
В больших городах — были, а в маленьких с этим проблема. Может товары «налево» продавали, как чёрную икру…
+
avatar
+1
  • mmasco
  • 15 сентября 2023, 10:27
да всех форматов были, даже D, где то до сих пор дома валяется парочка.
+
avatar
+7
  • iraa
  • 15 сентября 2023, 06:01
А управлять компьютерным вентилятором с помощью другого компьютера, притом 32-битного, 180 МГц… — не маразм?
+
avatar
0
Ну, можно прикрутить туда что-нибудь нативное на 555 (наверное, всё-таки 556 — нам ведь два таймера нужно?), с обвязкой.
А теперь подсчитайте стоимость в деньгах и трудозатраты во времени на применение этих двух вариантов. И прошу не забывать, что в случае Arduino/ESP мы, помимо собственно управления, получаем ещё миллиард плюшек.

В конце-концов, вас же не смущают наручные стрелочные часы, которые синхронизируются с радиостанцией?
+
avatar
+5
  • sav1812
  • 15 сентября 2023, 06:53
в случае Arduino/ESP мы, помимо собственно управления, получаем ещё миллиард плюшек.
Да ничего вы не получаете, кроме гипотетических «возможностей», которые в реальности никогда не будут использованы.
Это как карьерный самосвал грузоподъёмностью в 100 тонн, на котором вы решили возить только детское ведёрко с песком…
+
avatar
0
  • mooni73
  • 15 сентября 2023, 12:58
Автомобили.
+
avatar
+1
не забывайте автолюбителей с аккумуляторами. для них «поставить на зарядку» вполне знакомое выражение и в 80-е и много раньше.
аккумуляторы малогабаритные для электронных приборов встречались, не часто, не для всех. но применялись. не говоря уж о военной технике, где широко использовались.
да и обычные батарейки кто заряжал, кто варил, кто еще как извращался.
+
avatar
0
  • vadim72
  • 15 сентября 2023, 22:49
Согласен, про автомобильные аккумуляторы. Также аккумулятор мотоцикла ставили на зарядку. И батарейки заряжал «373» элемент: вытаскивал графитовый стержень и заливал туда воду. Дистиллированной воды под «рукой» не было, заливал обычную, с колодца. На пару часов работы магнитофона «Весна» хватало.
+
avatar
0
  • sav1812
  • 16 сентября 2023, 00:11
Обычные солевые элементы «373» заряжались асимметричным током: диод Д226 с подключенным параллельно ему электролитическим конденсатором микрофарад на 10, кажется, подключенные к вторичной обмотке понижающего трансформатора ТВК, последовательно с элементом.
Заряжались они (элементы) достаточно успешно, позволяя сильно экономить на батарейках в магнитофонах, используя элементы питания до начала разрушения цинкового стаканчика.
+
avatar
+1
«Я буду в лесу, но ты мне позвони. Или напиши в телегу.»
+
avatar
+2
  • vadim72
  • 19 сентября 2023, 16:02
Та, да… Даже, если бы Вы в 80-е годы сказали: Сейчас достану телефон — сфотографирую… Точно бы подумали, что с Вами что-то не так. Кстати, был у меня в 2000-м году случай: я зашёл в автобус. К телефону (которых у народа было совсем мало) под курткой была подключена проводная гарнитура (её и телефон не видно было). Мне позвонили, сработало автоподнятие трубки, я поговорил и одна бабушка сказала другой: жалко парня, ещё молодой, а наголову дурной, сам с собой разговаривает…
+
avatar
+1
Как в том анекдоте — «Или блютуз, или придурок» :)
+
avatar
0
  • Gena_p
  • 19 сентября 2023, 16:51
Вьішлю маячок, приходи! :)
+
avatar
+5
А я их и сегодня не прошиваю, представляете?
Поэтому не нужно обобщать. В конце 90х некто Абдул Латиф Джандали уже выпускал дизайнерские техновещи, держа в голове «тыкать пальцем в экран». Но это не значит, что все должны идти таким путём — мне стилус долгое время был гораздо удобнее, и только когда резистивные экраны убили полностью — я был вынужден смириться с ёмкостным.
+
avatar
+3
  • Phanex
  • 15 сентября 2023, 09:09
Резистивные никто не убивал. Вместе со стилусом они отправились вслед за конными повозками а дебри истории, оставшись узкоспециализированным решением в некоторых областях типа промышленных устройств, да и то. Будь они удобны хоть сколько, сейчас смартфоны продолжали бы поставляться с резистивными. Нокия долго держалась, пытаясь их делать в своих телефонах, пока не померла.

До того была проблема набора текста и интерфейсов. По выходу первого Айфона эта проблема решилась. Тогда и Гугл и МС очень быстро отправили свои наработки в мусор и выпустили ОС, заточенные под пальцы. Да и на Windows Mobile появились PocketCM Keyboard и Contacts, которые я с удовольствием использовал.

Китайцы кстати девайсы на Андроиде с резистивными экранами клепали ещё долго — для удешевления. Но это было полное дно.

В общем, вымерли они не из-за заговора производителей, а просто потому, что альтернатива в виде ёмкостного экрана кроет как бык овцу и не оставляет шансов в конкурентной борьбе.
+
avatar
+5
Только вы как те любители электромобилей, которые кивают на Калифорнию — забываете, что у нас 9 месяцы в году зима. И тыкать в телефон заиндевевшим пальцем — тот ещё квест. А ещё пальцы бывают не очень чистыми, да.

Телефон на Windows Mobile у меня прекрасно работал в любое время года, и пальцем нажимался прекрасно. Только я там мог рисовать тонкие линии, в отличие от -и поэтому половина моих заметок была графическими и/или рукописными. При экране в 3 дюйма, замечу.

В общем, вымерли они не из-за заговора производителей, а просто потому, что альтернатива в виде
Видимо, причина прекращения выпуска новых бензиновых моторов европейскими производителями в этом же — «пипл против бензина, и требует прекращения их выпуска» да?
+
avatar
0
  • Phanex
  • 15 сентября 2023, 13:08
Только я живу тоже не в тропиках и нормально тыкаю пальцем в перчатке. И перчатки сейчас легче найти приспособленные к телефонам, чем не приспособленные. Ещё есть такое смешное изобретение для емкостного экрана, как стилус. Которым тоже никто не мешает пользоваться хоть в мороз, хоть хоть в жару. Или брать девайсы с вакомовским стилусом, где линии будут писаться и рисоваться в разы и разы лучше — с наклоном и нажатием. Но, опять-таки, они рекорды по популярности не бьют.

Видимо, причина прекращения выпуска новых бензиновых моторов европейскими производителями в этом же — «пипл против бензина, и требует прекращения их выпуска» да?
А что, на экраны были какие-то законодательные ограничения? Если так, передёргивать не надо. Впрочем, замечу, что электромобили, хоть и имеют ряд недостатков, типа запаса хода или длительности зарядки, также обладают кучей преимуществ, благодаря которым ДВС вполне могут остаться там же, где и резистивные экраны и конные повозки — чисто нишевым решением.
У вас есть много живых знакомых, которые хотели бы вернуться к резистивным экранам? Готовые обменять все эти гориллагласы на царапучий пластик, доставать стилус, чтобы тупо сделать поиск по книге контактов или чтобы набрать сообщение в мессенжере? Я таких не знаю, а те времена вспоминаю с лёгким содроганием.
+
avatar
+1
Вы знаете, я люблю перчатки из хорошей кожи — а такие перчатки не уродуют накладками «для экрана».

Законодательные ограничения на бензиновые двигатели без поддержки населения там продавить не получится — знаете ли, демократия.
+
avatar
0
Скорость и точность набора текста на КПК с резистивным экранчиком 320х240 размером меньше пачки сигарет у меня была выше, чем на десятидюймовом планшете, про 7 дюймов вообще не говорю. И для заметок такой форм-фактор был идеален — как карманный блокнотик, хочешь — рисуй, хочешь — печатай. После отмирания КПК ни с планшетами ни с телефоном так не получалось — клавиатура неудобная, рисовать пальцем на экранчике — вообще издевательство какое-то.

Эх, вот о чём реально жалею, так это о КПК. Где-то в середине 00-х некоторое время был у меня единственным личным компьютером, я на нём даже умудрялся работать в карманных версиях Ворда и Экселя. Не говоря уже о музыке, книгах, словарях, инженерном калькуляторе… Окончательно году в 12-м на планшет перешёл, и до сих пор иногда включаю, поностальгировать и в Героев погонять.
+
avatar
+5
  • Siroc-co
  • 14 сентября 2023, 21:02
Я вот жду, когда мы начнем прошивки в утюгах обновлять.
А кого ждёте? Купите да и обновляйте, хоть в утюгах, хоть в паяльниках, в чайниках, в лампочках.
Если сарказм, то лет десять как устарел этот сарказм.
+
avatar
0
  • Myp
  • 16 сентября 2023, 18:20
Я лет 5 назад обновлял прошивку в чайнике, там звук пищания при завершении нагрева изменился на более приятный)))
+
avatar
0
  • yushkin
  • 18 сентября 2023, 17:00
Т.е. обновление зубной щетки уже не удивляет?
+
avatar
+1
  • ksiman
  • 14 сентября 2023, 22:06
А внутри вентилятора еще один микроконтроллер для управления двигателем
Там просто контроллер
+
avatar
0
  • vad321
  • 15 сентября 2023, 18:04
А чем отличается просто контроллер от микроконтроллера? Размером чего?
+
avatar
+5
  • ksiman
  • 15 сентября 2023, 20:53
Под микроконтроллером обычно понимают микропроцессор + память + периферия в одном корпусе (на одном кристалле)
Под контроллером обычно понимают специализированное управляющее устройство.
+
avatar
0
  • mr_X
  • 15 сентября 2023, 11:02
Нет внутри вентилятора никакого микроконтроллера.
+
avatar
+4
  • Sanja
  • 14 сентября 2023, 17:34
с помощью дополнительного компьютера
Притом 32-битного, 180 МГц…
+
avatar
0
  • muraveiX
  • 15 сентября 2023, 07:27
Вы что-то путаете, МГц там меньше, раза в два.
+
avatar
+3
  • vad321
  • 15 сентября 2023, 09:59
В 2000 году делал управление на к157уд1 и диоде, даже денег на пиво дали. Где мы не туда свернули? Вопрос, естественно не Вам…
+
avatar
0
Так рассчитать и настроить всякие там наклоны кривых и максимум-минимум для УД1 смогут единицы людей (а найти подходящие резисторы У СЕБЯ ДОМА ещё меньше число людей), а вписать готовую цифру в программу сможет даже ребёнок.
+
avatar
+7
+
avatar
+47
  • Sanja
  • 14 сентября 2023, 17:37
в коде не хватает первичного трёхсекундного «пинка» кулеру в виде 100% PWM, чтобы раскрутился, затем чтения тахометра, и только потом выход на тихие обороты. Кулер со временем зарастёт пылью и малого напряжения может перестать хватать для старта на низких оборотах.

Ещё, чтобы два раза не вставать, можно buzzer прикрепить и сигнализировать о сбоях.
+
avatar
+5
  • tirarex
  • 14 сентября 2023, 17:41
в коде не хватает первичного трёхсекундного «пинка» кулеру в виде 100% PWM, чтобы раскрутился, затем чтения тахометра, и только потом выход на тихие обороты. Кулер со временем зарастёт пылью и малого напряжения может перестать хватать для старта на низких оборотах.
Полностью согласен, а еще первоначальный резкий старт может помочь избавиться от пыли которая налипла на низких оборотах за большой промежуток времени. Так же поступают в некоторых ноутбуках называя это чисткой от пыли =)

В коде на ардуине сделать не проблема, в HA можно так же в коде либо автоматизацию сделать.
+
avatar
+3
  • jakki
  • 15 сентября 2023, 20:22
Вы мне сейчас глаза на мир открыли, без сарказма. Никогда об этом не задумывался, но сейчас осознал, почему у меня кулеры с самодельным пвм со временем переставали стартовать с низких оборотов. И, судя, по количеству полюсов — не только мне.
+
avatar
+4
  • Kabron
  • 14 сентября 2023, 18:15
на вход подается ве та же квадратная волна разной частоты от которой будет зависеть скорость вращения вентилятора
Поправьте: не от частоты а от скважности.
+
avatar
0
  • tirarex
  • 14 сентября 2023, 18:17
Спасибо, пофиксил
+
avatar
+5
  • PVG
  • 14 сентября 2023, 19:46
Ну тогда уж надо было указать что «квадратная волна» называется меандр.
(Меа́ндр — периодический сигнал прямоугольной формы, широко используемый в радиотехнике и электронике.)
+
avatar
0
не пойдет, у меандра фиксированная скважность 2
+
avatar
0
  • ksiman
  • 16 сентября 2023, 13:09
Ну тогда уж надо было указать что «квадратная волна» называется меандр.
Лучше сказать прямоугольные импульсы
+
avatar
0
Тогда уж и макрос называть переменной тоже не стоит.
+
avatar
+8
таком виде 2 вентилятора и контроллер отправились в серверную стойку где они управляются через NodeRed в зависимости от температуры воздуха в стойке
зачем в серверной стойке управлять оборотами вентилей? что вы там тише хотите сделать?
+
avatar
+6
  • xonixer
  • 14 сентября 2023, 18:51
Знаю людей, которые ставили серверную стойку (полноценный шкаф 19*42) на балкон в жилой квартире, и в коридоре жилой квартиры. Безумству безумных поём мы песни :-)
+
avatar
+4
капец
+
avatar
+12
  • kiv69
  • 15 сентября 2023, 06:45
Эти люди 100% не покупали эту серверную стойку, а просто слямзили на работе, когда её списали.
+
avatar
+6
  • Phanex
  • 15 сентября 2023, 09:18
А с каких пор забрать списанное — «слямзить»?

Мой друг стойку поставил на чердаке своего дома, для этого пришлось долго мониторить Kleinanzeigen (аналог Авито или OLX), чтобы найти по хорошей цене. Несмотря на то, что в Германии очень много отдают в дар, стойки пришлось брать за деньги.

Так что уже не 100%, а меньше.
+
avatar
0
я покупал на Авито, работа у меня совсем не из той оперы, 42 юнита как раз, стоит в спальне, громкое там, конечно, только эпизодически включается

выглядит стрёмно, но мне пофиг)
+
avatar
+3
  • Sanja
  • 15 сентября 2023, 19:58
+
avatar
+1
чтобы мою изобразить, таких штук 5 нужно друг на друга водрузить)

а, и ещё по глубине всё будет торчать, он же квадратный, а у стойки глубина почти метр и ленточная библиотека всё равно торчит сантиметров на 10 ещё

то есть надо 5 в высоту и два в глубину скручивать — 10 столиков наверно будут дороже, чем я стойку купил))
+
avatar
0
Логотип у IKEA спёрли.
+
avatar
0
  • Chaosito
  • 17 сентября 2023, 17:36
Этож так задумано.
+
avatar
0
А у меня есть знакомые, которые покупали стойку, через нашу контору.
История ее сборки на лоджии и компоновка серверами и СХД эпична, лоджия достаточно маленькая и вдвоем там было не развернутся, но с помощь. молотка и какой-то матери удалось все собрать, разместить и подключить. Правда по итогу было сказано — Не трогать, ибо переделывать не будем. :)
+
avatar
0
У меня так сервер на балконе жил
+
avatar
+3
  • tirarex
  • 14 сентября 2023, 19:04
У меня серверная cтойка дома, правда маленькая, на 12 юнитов, и это не огромный стремный шкаф а аккуратная короткая стойка из массива дерева в которой живет роутер, свич, ибп, несколько серверов, и даже мой когда то настольный пк.
Даже при полной нагрузке она почти бесшумна, везде топовые вертушки включая ноктуа и XPG из статьи.
В итоге места занимает мало, красиво, и огромные возможности.
+
avatar
0
ну по назначению тогда это другое)
+
avatar
+2
  • iraa
  • 15 сентября 2023, 06:04
Ну это как коллекционирование ножей. Предела нет
+
avatar
+1
  • hanzo
  • 15 сентября 2023, 08:01
при полной нагрузке она почти бесшумна, везде топовые вертушки
Посоветуйте, плиз, что бы сделать с завыванием стокового кулера dell 7050usff.
Хоть и негромко работает, но его таки слыхать, особенно когда изменяются обороты, в зависимости от нагрузки на проц.
Вент вот такой:
+
avatar
+1
  • tirarex
  • 15 сентября 2023, 12:39
У меня юнитовое железо и с ним все проще, в случае этого мини пк я бы гонял его без крышки для более простого поступления свежего воздуха, а так же изучил бы тему, возможно вентилятор поврежден/изношен и новый будет тише?
+
avatar
+3
  • sav1812
  • 15 сентября 2023, 13:31
в случае этого мини пк я бы гонял его без крышки для более простого поступления
… пыли…
+
avatar
0
Иногда открытие крышки приводит не к уменьшению, а к увеличению нагрева.
+
avatar
+2
  • mooni73
  • 15 сентября 2023, 13:06
Можно поместить dell в более крупный корпус. Снять штатный вентилятор и радиатор, прилепить крупный радиатор с крупным вентилятором взамен.
+
avatar
0
Да даже просто крупный вентилятор (120мм) поверх штатного радиатора подойдет, если несложный воздуховод сделать, чтобы загонял воздух внутрь радиатора (штатный вентилятор убрать). Ну и на вход какой-нибудь фильтр, хотя бы кусок ткани (колготки :)), чтобы пыли поменьше было.

В самом простом случае (если «совсем лень/некогда/не умею») даже штатный вентилятор можно не убирать и не отключать — поступление свежего холодного воздуха приведет к снижению температуры, оборотов и их скачков. Да, это тот случай, когда два вентилятора работают тише, чем один :).
+
avatar
0
  • mooni73
  • 16 сентября 2023, 13:19
Ошибаетесь. Крупный вентилятор не может, особенно в тихом режиме, продуть мелкий радиатор. А поступление свежего холодного воздуха и так имеется. Выйгрыш будет в пару градусов. Только замена радиатора позволит убрать шум.
+
avatar
0
В идеале да, замена радиатора. Но это не всем под силу.
+
avatar
0
  • andruxxx
  • 14 сентября 2023, 20:19
не помню как в 8266, в 32 есть встроеный термометр, можно температуру до кучи снимать )
+
avatar
0
  • Siroc-co
  • 14 сентября 2023, 21:08
не помню как в 8266, в 32 есть встроеный термометр
Точно есть? Или был?
Я как-то копал эту тему, и вроде его выпилили, так как он коряво работал.
+
avatar
0
  • kiv69
  • 15 сентября 2023, 06:48
А в чем проблема повесить копеечный датчик на свободный AI?
+
avatar
0
  • dkim7
  • 14 сентября 2023, 20:26
Хочу сделать контроллер вентиляторов для ПК. Какой недорогой микроконтроллер потянет штук шесть вентиляторов (считывание оборотов и управление по ШИМ)? Как я понял у китайской NANO на LGT8F328P только два пина аппаратного прерывания?
+
avatar
0
  • Komandir
  • 14 сентября 2023, 20:56
PCINT есть почти на всех пинах!
+
avatar
0
  • dkim7
  • 14 сентября 2023, 21:19
чем PCINT отличается от INT?
+
avatar
0
  • Komandir
  • 14 сентября 2023, 21:37
Тем что работает с группой пинов и надо проверять в прерывании где именно было изменение уровня…
+
avatar
0
  • dkim7
  • 15 сентября 2023, 13:31
А где можно пример кода посмотреть? Я не нашёл.
+
avatar
0
  • Komandir
  • 15 сентября 2023, 13:59
Так и запрашивайте в поисковике PCINT AVR EXAMPLE
+
avatar
+1
  • Siroc-co
  • 14 сентября 2023, 21:06
А вы готовы заняться камасутрой с китайской нано? Просто если вы в теме, то игнорируйте моё сообщение. Если ни разу её в руки не брали, то и не советую.
Берите ESP32, всё может, не дорого стоит.
+
avatar
+4
  • kiv69
  • 15 сентября 2023, 06:57
Можно сделать вообще без мк. Пара транзисторов и дроссель. Подключается на 4-пиновый разъём вентилятора процессора, питание от молекс или сата, на выход 2-х и 3-хпиновые вентиляторы по необходимости(экономия на вентиляторах).
Минус только в том, что все крутилляторы будут привязаны к температуре процессора(если на разъем цп садить).
Лично я считаю такой вариант оптимальным. Спаял, опробовал и заказал ещё десяток таких платок заводского изготовления.
Даже странно, что китаёзы не додумались такие делать и продавать.
+
avatar
+2
  • dkim7
  • 15 сентября 2023, 08:12
Считывание оборотов и отправку данных в пк без мк не сделать. А у вас как мне показалось получился разветвитель на транзисторах.
+
avatar
0
  • kiv69
  • 21 сентября 2024, 16:57
А смысл считывать обороты со всех вентиляторов, достаточно с одного. Задача не обороты считывать, а охлаждать, не выкидывая денег на ветер за 4-пиновые вертушки.
Куда и зачем нужны обороты вентиляторов, если в корпусе их, допустим, 7 штук стоит?
Можно, конечно, дополнить МК и передавать данные в ПК или поставить противный буззер на обнаружение отказа вентилятора, но это сразу неимоверно усложнит конструкцию, так как каждый подключенный вентилятор надо будет каким-то образом «прописывать», чтобы МК знал, за какими разъёмами следить.
Дебильная конструкция для гика, на которую посторонний человек просто забъёт и не будет пользоваться?
И зачем оно?
P.S. Это не разветвитель на транзисторах, а схема, по сигналу шим меняющая напряжение на выходе. Потому как и 2-пиновые, и 3-пиновые, и даже 4-пиновые шим вентиляторы прекрасно меняют обороты при изменении питающего напряжения.
+
avatar
0
  • mooni73
  • 15 сентября 2023, 13:10
А почему дроссель, а не кондер с диодом и резюком?
+
avatar
0
  • kiv69
  • 21 сентября 2024, 17:02
И каким образом кондёр с диодом и резюком будет преобразовывать сигнал шим (NPN) в DC для вентиляторов, обороты которых регулируются напряжением?
+
avatar
+1
  • tirarex
  • 15 сентября 2023, 14:05
Забейте и купите готовый, кроме прошивки, контроллера, железа, вам еще придется написать достаточно непростое программное решение для сбора данных с пк и отправку на контроллер.
+
avatar
0
  • dkim7
  • 18 сентября 2023, 02:22
Для ПК я сделал плагин для FanControl, он готов на 90 процентов. Осталось подобрать микроконтроллер. А что есть из готового с данным функционалом?
+
avatar
+5
  • Komandir
  • 14 сентября 2023, 20:55
Приставка volatile говорит микроконтроллеру что данная переменная должна храниться в RAM а не постоянной памяти.
Интересная трактовка :-). Что тогда означает const ???
+
avatar
0
Нашли к чему придраться, ну ошибся человек про регистры, бывает.
+
avatar
+1
  • Komandir
  • 14 сентября 2023, 21:35
Ещё одна трактовка :-)))
Может загуглите?
+
avatar
-1
сканает за авторитет?)

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

Но все зависит от конкретного компилятора и платформы.
Самый распространенный вариант я описал выше.

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

Так что не в курсе что там у вас за вариант. Просвятите)))
+
avatar
0
в защиту предыдушего оратора, в некоторых архитектурах микроконтроллеров (в частности 8-битные AVR) регистры (речь про те которые общего назначения) действительно memory mapped. но обычно памяти обычно всегда больше чем регистров, так есть ненулевой шанс что переменная будет недоступна из регистров напрямую.
все зависит от компилятора и кода.
для такого простого случая, где посути лишь счетчик прерываний и еще пару переменных, скорее всего оно могло действительно остаться доступным из какого-то регистра.

с ESP не сталкивался, там может быть иначе. (а что такое volatile, static, const и прочие скушные вещи вовсе неохото обсуждать)
+
avatar
+5
  • yualeks
  • 14 сентября 2023, 22:09
Зачем вся эта байда, если современные материнки на ура справляются с охлаждением компа.
+
avatar
-1
А они справляются с низкооборотными вентиляторами? Ну процессорный ещё как-то можно настроить: провести около 15 замеров скорости с разными %, выбрать 4-5 точек, и вписать «свой график управления скорости в зависимости от температуры».

А для корпусных вентиляторов есть такая функция в свежих мамках? (я и правда уже 10 лет ни разу не держал в руках свежую мамку)
+
avatar
+3
  • yualeks
  • 15 сентября 2023, 13:14
В свежих мамках полно разных разъёмов под вентиляторы и в БИОСЕ куча регулировок и алгоритмов управления.
+
avatar
+3
  • tirarex
  • 15 сентября 2023, 09:36
Затем что вентиляторы от компьютера можно ставить не только в компьютер.
Сосбтвенно у меня в ванной комнате трудится Noctua a14, уже несколько лет, в ближайшее время его ждет апгрейд с управлением оборотами тк сейчас он шпарит на 100% времени всегда.
+
avatar
0
  • yualeks
  • 15 сентября 2023, 13:18
Да для ванной он слабый, у меня два стоят гораздо мощней и то в притык справляются. Правда я люблю воду погорячей, пару много. Без вытяжки всё моментально запотевает. С вытяжкой нормально. Я сперва поставил один, мало. Поставил второй.
+
avatar
+4
  • tirarex
  • 15 сентября 2023, 13:32
Да для ванной он слабый,
Ага слабый))) 133,7 m³/h, пошел в леруа, там большинство 70-90, модели 130+ есть но шум от 40дб, когда мой ноктуа аж 26дб.
При том свой я купил на авито с отрезанным проводом рублей за 300, к нему компактный блок на 12в тоже рублей за 250-300, провода и корпус не считаю но пусть будет 1к рублей.

Он мало того что тихий, так уже много лет работает без перерывов, ибо он настолько тихий что его можно вообще не вырубать и проблем нет! В том же леруа у большинства вытяжек отзывы очень негативные и связаны с ненадежностью.
А судя по датчику в уборной, даже когда моешься, влажность выше 61% не поднимается ( датчик в 10см от вентилятора стоит)
+
avatar
0
  • yualeks
  • 15 сентября 2023, 15:35
Я же вроде написал что у меня повышенная влажность. И в леруа я обычно такие вещи не покупаю. Покупаю в интернете причём в разных странах. Сейчас конечно похуже стало, но возможности есть. Те что у меня стоят в ванной я купил в Турции. Вполне себе тихие и производительные. Причём доставка из Турции беспроблемная, там работают наши транспортные компании.
+
avatar
+2
  • tirarex
  • 15 сентября 2023, 15:43
Напишите хоть характеристики то =) Повышенная влажность ни о чем не говорит, как и место их покупки.
+
avatar
+1
Думаю, для многих других проще будет прикрутить компьютерный вентилятор с БП, чем купить качественный на 220В не «в леруа». 99% того, что у нас продается в оффлайне — или барахло, или неразумно дорого.

И да, поаккуратнее с производительностью, если не в частном доме…
+
avatar
+13
  • dimats
  • 14 сентября 2023, 22:10
Не, ну ESP на кулер это конечно весело.
Но зачем?
Особенно в комп, где есть вход для контроля обротов, даже ели нет управления оными…

Есть же куча решений без переусложнения, а следовательно дешевле и надежнее.
В то числе и mysku.club/blog/aliexpress/80959.html

+
avatar
0
  • kiv69
  • 15 сентября 2023, 07:03
Пример неудачен, на блок нужен персональный датчик температуры. То есть вместо борьбы с лишними проводами получаем лапшу по всему системнику.
+
avatar
0
  • tirarex
  • 15 сентября 2023, 09:37
Есть же куча решений без переусложнения, а следовательно дешевле и надежнее.
4 провода от контроллера за 150р к вентилятору, куда уж дешевле. Если постараться то 8266 можно и дешевле 100р оформить.
+
avatar
0
  • givattal
  • 17 сентября 2023, 21:17
Особенно в комп
Это исключительно ваши фантазии. Про «в комп» речи не было. Умение видеть интригу между строк — зашеаливает.
+
avatar
+3
Просто отличная статья. Тоже нужно кулерами управлять для одной темы. Вовремя очень.

Большое спасибо.
+
avatar
+3
  • sunpp
  • 14 сентября 2023, 22:30
а не вредно ли вентилятору с гидродинамическим подшипником крутиться на сверхнизких оборотах?
+
avatar
0
  • yualeks
  • 14 сентября 2023, 22:49
У каждого вентилятора есть характеристики, и там есть ясные цифры, минимальных и максимальных оборотов. Что вне этого коридора, однозначно негативно сказывается на продолжительности работы вентилятора.
+
avatar
0
  • iraa
  • 15 сентября 2023, 06:07
Ну если смогли сделать такой регулятор, то для вас не будет проблемой менять раз в месяц убитые вентиляторы. Хобби есть хобби.
+
avatar
+1
Отрываем транзистором минус от вентилятора, а +12 оставляем подключенным… Внимание, вопрос: а что же будет на выходе таходатчика при этом?)

Проделайте эксперимент. Возьмите источник питания, тестер и вентилятор. Плюс вентилятора подключите к плюсу источника питания. Минус тестера — к минусу источника питания. Плюс тестера — к выходу таходатчика вентилятора.
Возможно, ждет вас удивление…
+
avatar
+1
  • RomaL
  • 15 сентября 2023, 10:07
Что будет на выходе таходатчика зависит от того, находится он в «воздухе» (подключен только к тестеру, имеющему высокое входное сопротивление порядка 10 мегаом) или подключен к контроллеру, в котором
Для пина тахометра включим аппаратную подтяжку как это требует спецификация вентиляторов, напряжение контроллера как раз 3,3в.
Сопротивление резистора подтяжки — десятки килоом. Если измерить выходной ток с пина тахометра при оборванном минусе, можно рассчитать напряжение на входе микроконтроллера.
+
avatar
0
Встроенная подтяжка — это не мифический могучий резистор в вакууме. Это элемент топологии кристалла, такой же как прочие. А еще он очень-очень маленький.
Рано или поздно ему может надоесть получать 12-вольтовые импульсы.

И, кстати, при «ШИМе снизу» таходатчик имеет полное право показывать всякий бред: магнит вентилятора пролетает напротив датчика Холла, а мы в этот момент оторвали минус, и как же вентилятор «прижмет» сигнал к минусу, если минуса — нет?

Вот как минимум две причины, почему вентиляторы с более чем двумя проводами можно ШИМить только сверху.

Себе, чтобы получить обороты ниже минимальных, я сделал так: обычный китайский модуль stepdown на LM2596 настроен на 7 вольт. И ногу входа обратной связи я прижимаю ключом к минусу, когда нужны полные 12 вольт.
+
avatar
+14
  • fifonik
  • 15 сентября 2023, 02:47
CalcFanRPM у вас нехорошая.
1. Мелочь: millis вызывается дважды без необходимости (вызов обычно дороже обращению к переменной, а т.к эта функция вызывается в цикле, то её лучше писать пооптимальнее)
2. Баг: вы определили Fan_RPM_Update_Period c 1000 ms, но вычисление Fan_RPM не использует это значение, а сама формула подразумевает, что функция CalcFanRPM вызывается раз в секунду. По факту в цикле она вызывается раз в 300 ms (delay(300)), т.е вызовы будут в 0, 300, 600, 900, 1200 ms. И только в 1200 будет произведёт расчёт (1200 > 1000). Правда он даст неверный (завышенный) результат, т.к. будет основан на количестве подсчитанных тиков произошедших за 1200 ms, а в формуле подразумевается, что это количество тиков за секунду (2).

Я бы написал так:
void CalcFanRPM(){
  int ms =  millis();
  int delta = ms - Fan_PrevMills;
  if (delta > Fan_RPM_Update_Period) {
    Fan_PrevMills = ms;
    Fan_RPM =  Fan_InterrupCount / 2 * 60 * (Fan_RPM_Update_Period / delta);
    Fan_InterrupCount = 0;
  }
}
Не проверял (надеюсь не накосячил), но логика того, что и как я исправляю должна быть понятна.

Максимальные обороты как и ожидалось оказались на уровне 2300об/мин, минимальные обороты аж 260, что немного больше чем должно быть но в целом в рамках нормы.
Скорее всего после правки обороты станут более правильными.
Без переделки функции можете попробовать поменять delay на 250 (чтобы стало кратно 1000) — тоже должно помочь. Правда из-за «гонок» иногда могут быть выбросы, например когда реально прошло 999.9999 — обороты ещё не будут посчитанны, а следующий вызов будет в 1249.9999 и результат будет завышен.
В общем правильнее исправить функцию.

P.S. Возможно я ошибаюсь, опыт программирования микроконтроллеров стремится к нулю.
+
avatar
0
  • tirarex
  • 15 сентября 2023, 09:43
Скорее всего после правки обороты станут более правильными.
Без переделки функции можете попробовать поменять delay на 250 (чтобы стало кратно 1000) — тоже должно помочь
Они завышены так как во время тестов и написания статьи, я вентилятор положил выдувом на стол, от чего он без сопротивления воздуха крутится быстрее стоя и прокачивая воздух.

По факту в цикле она вызывается раз в 300 ms (delay(300)),
По факту код " if ((millis() — Fan_PrevMills) > Fan_RPM_Update_Period) {", функцию можно вызывать сколько угодно раз но сработает она только после того как прошел Fan_RPM_Update_Period который был настроен в 1000мс те 1 секунду. алгоритм косячит если вызывать функцию реже чем в 1 секунду, собственно вы это попытались пофиксить.
+
avatar
0
  • fifonik
  • 15 сентября 2023, 10:41
Вы кажется не поняли сути проблемы.

Ещё раз: с вашим кодом (delay = 300, Fan_RPM_Update_Perio = 1000) математика функции (то, что внутри if) первый раз запустится через 1200 ms после начала работы цикла. В этот момент у вас прерываниями насчитается тиков за 1200 ms, но формула посчитает так, как будто это было насчитано за 1000 ms. Показания будут завышены на 20%.
+
avatar
+1
  • tirarex
  • 15 сентября 2023, 10:54
В этот момент у вас прерываниями насчитается тиков за 1200 ms,
алгоритм косячит если вызывать функцию реже чем в 1 секунду,
Все я понял =) просто для проверки работоспособности и так пойдет, а в реальном проекте delay никто не использует, и там код будет работать нормально.
+
avatar
+1
К сожалению delay в Arduino esp8266 использовать надо. Получите хорошую экономию энергии. При условии включенного wifi. Если выключен, то задержка не нужна.

Подробности тут — elchupanibrei.livejournal.com/47610.html
+
avatar
+13
  • 50AC
  • 15 сентября 2023, 05:55
Ругаться буду…
квадратная волна
Это что?
Поставить не мосфет а транзистор,
Я Вам тайну открою. То что Вы «мосфетом» обозвали это транзистор.
+
avatar
+5
  • muraveiX
  • 15 сентября 2023, 07:30
Cхема еще проще чем с мосфетом
Но резистор в базу стоит добавить…
+
avatar
+2
  • rednikov
  • 15 сентября 2023, 08:09
Отличный мануал!
И близкая мне тема.
Нижайший вам поклон и благодарность.
Возможно благодаря вам я таки погружусь в мир микроконтроллеров… Благо уже и задачи начинают под это появляться… И Home Assistant уже есть…
Спасибо!
+
avatar
+1
  • smim
  • 15 сентября 2023, 09:28
Распиловку коннектора так же лучше взять из документов NOCTUA так как их документ выполнен значительно нагляднее.
Распиловку коннектора лучше не делать.
+
avatar
+2
  • tirarex
  • 15 сентября 2023, 10:37
Спасибо, уже 2 распилил!
+
avatar
0
  • ksiman
  • 15 сентября 2023, 10:41
Вдоль или поперёк?
+
avatar
0
под углом…
+
avatar
0
Уже очень давно все мат платы поддерживают регулировку и можно рисовать кривые зависимости оборотов от Т. Нафига городить огород для мне загадка.
+
avatar
+2
  • tirarex
  • 15 сентября 2023, 20:14
У меня это добро управляет двумя вертушками в серверной стойке, в зависимости от температуры целой кучи железа а не одного пк. Сейчас вторая пойдет в ванную комнату где будет управление по влажности. В обоих вариантах можете предложить какую мат плату поставить, особенно над ванной и с датчиком влажности, я подожду.
+
avatar
0
В серверных комнатах есть охлаждение воздуха окружаещего. В ванную 12в компьютерный куллер когда есть готовые решения на 220? Ну или если нуже «умный» вентилятор то можно купить сонофф, опять же всё из коробки
+
avatar
+5
  • tirarex
  • 16 сентября 2023, 10:48
В серверных комнатах есть охлаждение воздуха окружаещего.
Серверной стойкой может быть Ikea lack столик на балконе, или как у меня дома, 12U деревянная стойка, и кондея тут нет.

В ванную 12в компьютерный куллер когда есть готовые решения на 220?
Читайте обсуждение выше, нокута 140мм с производительностью 130+кубометров/в час и шумом аж в 26дб, когда в магазинах почти все в районе 70-80 и с шумом до 45-50дб. В чем смысл ставить шумный и слабый мусор когда компьютерный вентилятор настолько лучше? (особенно за 300р с барахолки ?)

Ну или если нуже «умный» вентилятор то можно купить сонофф, опять же всё из коробки
нашел его, SONOFF iFan03, 2000руб, управляет только 220в вертушками ( напоминаю что моя в разы ТИШЕ и ПРОИЗВОДИТЕЛЬНЕЕ в отличии от 220в решений), а главное для работы в умном доме все еще надо использовать кривое китайское облако с токеном для разработчика, что бы хоть как то этим чудом управлять.
Максимальные траты + худший исход. Гениально.
+
avatar
0
производительностью 130+кубометров/в час и шумом аж в 26дб, когда в магазинах почти все в районе 70-80 и с шумом до 45-50дб. В чем смысл ставить шумный и слабый мусор когда
Вы забываете ещё один важный параметр — давление которое создаёт вентилятор.
+
avatar
0
  • tirarex
  • 16 сентября 2023, 14:08
Это вентиляция, собственно вопрос давления минимален с учетом наличия приточки которая в теории должна пассивно справляться с движением воздуха в вентиляцию.
Ну и судя по гуглу, давление для своих вентиляторов в ванну никто не указывает.
+
avatar
0
Вы видно не поняли или школу прогуливали. Давайте на примерах.

Если вы перед вашим нокута 140мм поставите препятствия (например фильтр или длинную изгибающую трубу) то ваших 130+кубометров/в час ничего не остаётся. На выходе будет пшик.

А вот магазиный с 70-80 и с шумом до 45-50дб даже не подавится и выдаст в конце ветерок.

Вот в чем смысл. Понимаете?
+
avatar
+1
  • tirarex
  • 16 сентября 2023, 19:25
Вот в чем смысл. Понимаете?
Я ваше сразу понял а вы мое нет, я прекрасно понимаю что такое давление и обьем воздуха который гоняет вентилятор.

Для ноктуа f14 redux это 1,91 mm H₂O или 250Па.
Для домашних вытяжек найти эту характеристику почти нереально но тут нашлась — аж 50Па, но тут вентилятор качает почти вдвое больший обьем воздуха lipetsk.poryadok.ru/catalog/ventilyatory_vytyazhnye/7697/

А в мой коммент ранее был вообще про новостройки где тяга такая что даже выключенная вертушка хорошо тянет, а включенная просто ускоряет осушение комнаты в разы.
+
avatar
0
тогда прошу прощения. извините.
+
avatar
0
  • dikiman
  • 18 сентября 2023, 13:12
Ваша включенная вертушка будет осушать комнату в квартиру соседа а не на улицу!.. Я уже задолбался ругаться с соседкой снизу, когда она свое курево из туалета вентиллятором ко мне в квартиру гонит. Вентилляция в доме уже просчитана — открывайте ворточки!
+
avatar
0
  • tirarex
  • 18 сентября 2023, 13:27
Ваша включенная вертушка будет осушать комнату в квартиру соседа а не на улицу!..
Для решения этой проблемы ставят обратные клапаны, собственно у нас в доме в каждой квартире они стоят от застройщика.
+
avatar
0
  • dikiman
  • 18 сентября 2023, 17:59
Да дело то не в клапанах, а в том что мощи у вашего махонького вентиллятора не хватит чтобы подтолкнуть вверх всю массу воздуха в канале… ну если только вы не на последнем этаже живете. Ладно, это немного не в тему вопрос…
+
avatar
0
  • tirarex
  • 18 сентября 2023, 18:47
Да дело то не в клапанах, а в том что мощи у вашего махонького вентиллятора не хватит чтобы подтолкнуть вверх всю массу воздуха в канале…
Я понимаю некоторые люди слепые но буквально 2 комментария вышe…
Мой «махонький» вентилятор имеет почти в 5 раз больше статического давления чем дженерик вентилятор из хозмага.
mysku.club/blog/diy/97421.html#comment4352449
+
avatar
0
  • dikiman
  • 18 сентября 2023, 19:22
ну зачем сразу слепым обзывать… видел я это. Только сколько надо-то… в 5 или в 10 больше? Как то в ревите пытался разобраться как энту вентиляцию просчитывать — не хватило терпения у меня… :)
+
avatar
+2
  • givattal
  • 17 сентября 2023, 21:18
Отличная статья. Тоже нужно кулерами управлять. Почти вовремя.

Большое спасибо ТС и всем креативно-коментирующим.
+
avatar
0
  • and361
  • 18 сентября 2023, 15:33
а такое на ардуине можно? youtube.com/shorts/pdXeOwhjwhY?si=2GPq0jSflA8vCE31
+
avatar
0
  • tirarex
  • 18 сентября 2023, 15:47
Без проблем, самый простой способ Esp8266 + wled audio reactive, в подсветке пк используются стандартные совместимые с ws2812 диоды.
Я думаю над еще одной статьей про управление подсветкой пк с esp8266
+
avatar
0
  • and361
  • 18 сентября 2023, 16:02
кулера надо argb чтобы можно было управлять отдельно каждым светодиодом, да и у них разная распиновка и управление, к каждому варианту надо свой контроллер или управлять встроенным в материнскую плату, если таковой там есть. Как минимум 3 варианта argb припоминаю.

зы: чуть не в тему — эти wovibo бомбезные вентиляторы, очень тихие и производительные, я подсветку включаю очень редко, кота развлекать. Он надолго залипает как на текущую воду.
+
avatar
0
  • tirarex
  • 18 сентября 2023, 16:27
кулера надо argb
Собственно Argb — adressable.

да и у них разная распиновка и управление,
не совсем, большинство имеют стандартный порт под аргб ленты, но даже там гже не стандартный, я\ еще не видел каких то чудо лент со своим протоколом, все они на старом добром ws2812 совместимом протоколе.
+
avatar
0
  • maxcoff
  • 19 сентября 2023, 17:20
По поводу не возможности полного выключения я, когда подобное делал, поступил просто — добавил один мосфет на выключение питания на отдельный пин 8266. А в HA автоматизировал их синхронную работу.
+
avatar
0
А есть где то подробный гайд по написанию своих прошивок для ESP и дальнейшей интеграции в HASS. А то в статье пример выглядит как гайд по рисованию совы. Не понятно — устанавливается ESPHome поверх уже залитого скетча, или конечная реализация только силами конфига ESPHome?
+
avatar
0
  • tirarex
  • 20 сентября 2023, 15:12
В статье буквально 2 варианта работы, один при написании своей прошивки, а второй это esphome + конфиг для работы с вентилятором.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.