Управление вентилятором 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);
}

, 👍0

Обсуждение

у вас есть вопрос? ....вы сделали несколько заявлений о том, что вы делаете, но не задали вопрос., @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


1 ответ


-3

Согласно техническому описанию вашего вентилятора, его мощность составляет 1,3 Вт/5 В... Это означает, что он потребляет ток около 3 А, который невозможно подать напрямую с контактов Arduino... поэтому вам придется использовать ШИМ-преобразователь... это почти решит ваши проблемы...

,

Как вы получили 3А из 1,3Вт и 5В? И я предполагаю, что он использует выделенный вход управления ШИМ, поэтому он не должен использовать большой ток., @gre_gor