Управление вентилятором 5 В ШИМ с помощью потенциометра
Итак, я хотел сделать себе Deskfan с помощью Arduino и потенциометра. Причина использования Arduino в том, что я хочу отображать текущую температуру и скорость вращения вентилятора либо через об/мин, либо с %. В настоящее время, кажется, все работает нормально, используя потенциометр для управления ШИМ. Но либо я просто не верю, что он работает правильно, либо это действительно не так. Моя единственная проблема в том, что, как мне кажется, вентилятор не выдает 100% своей мощности с помощью сигнала ШИМ. Может быть, на несколько % меньше. Но я действительно не знаю, есть ли что-то, что я упускаю, или он действительно выдает 100%. Вентилятор, о котором идет речь, будет Noctua NF-A14 5V PWM (+-1500 MAX).
Изменить: Возможно ли, что я не использую все 100% мощности вентилятора? Если да, то что мне нужно было бы изменить, если бы это было так. Я что-то слышал о переходе на 25 кГц ШИМ, но да...
Вот мой код без ЖК-дисплея.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(9, OUTPUT);
}
void loop() {
int potValue = analogRead(A5);
int newpotValue = map(potValue, 0, 1023, 0, 255);
Serial.println(newpotValue);
analogWrite(9, newpotValue);
}
@Tom Huberty, 👍0
Обсуждение1 ответ
Согласно техническому описанию вашего вентилятора, его мощность составляет 1,3 Вт/5 В... Это означает, что он потребляет ток около 3 А, который невозможно подать напрямую с контактов Arduino... поэтому вам придется использовать ШИМ-преобразователь... это почти решит ваши проблемы...
Как вы получили 3А из 1,3Вт и 5В? И я предполагаю, что он использует выделенный вход управления ШИМ, поэтому он не должен использовать большой ток., @gre_gor
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Генерация частоты ШИМ выше 125 кГц с помощью Arduino Uno
- Увеличить разрядность PWM
- Как вывести истинное аналоговое напряжение на выходной контакт
- ПИД-регулятор для управления скоростью двигателя
- Как управлять 6 шаговыми двигателями с помощью Arduino?
- Синусоидальный инвертор
у вас есть вопрос? ....вы сделали несколько заявлений о том, что вы делаете, но не задали вопрос., @jsotola
Извините, я не ясно выразил свой вопрос, я немного устал. Я просто отредактировал его :), @Tom Huberty
«Я думаю» — это не очень научно... Почему вы думаете, что он ведет себя неправильно? В любом случае, сделайте измерения. Используйте осциллограф и проверьте выход ШИМ. Если выход представляет собой постоянную волну +5 В, вы не можете ускориться больше. Если это не так, возможно, потенциометр не находится на максимальном значении. Попробуйте с
analogWrite(9,255);
и посмотрите, изменится ли что-нибудь., @frarugi87Кажется, я получаю около 240-250, так что около 96% вентилятора используется. Думаю просто использовать оператор if, чтобы поднять его до 255, если выше определенного уровня. Извините, я новичок в этом деле, но все равно хотел попробовать., @Tom Huberty
Попробуйте распечатать значение analogRead, которое вы получаете на последовательной консоли, и проверьте диапазон потенциометра. Если вы не дошли полностью до 1023, то уменьшите 1023 в функции map до чего-то меньшего., @Gerben
Пришлось крутить потенциометр очень сильно, чтобы хотя бы дойти до 1020. Я решил эту проблему, используя несколько операторов if, чтобы гарантировать, что он использует 255 при достижении определенного значения. Спасибо вам, ребята, за советы!, @Tom Huberty