Управление 4pin-вентилятором ШИМ 25 Khz
- Войдите на сайт для отправки комментариев
Чт, 16/03/2017 - 09:30
Возникла необходимость регулировки оборотов 4-х пинового вентилятора с помощью ардуино.
По даташиту http://www.formfactors.org/developer/specs/4_Wire_PWM_Spec.pdf
требуется ШИМ с частотой от 21 до 28 кГц.
Нашел пример получения 25 кГц https://forum.arduino.cc/index.php?topic=415167.0
Загрузил скетч :
#include <Wire.h> word VentPin = 3; void setup() { Wire.begin(); pinMode(VentPin, OUTPUT); pwm25kHzBegin(); } void loop() { pwmDuty(19); // 25% (range = 0-79 = 1.25-100%) delay(5000); pwmDuty(39); // 50% (range = 0-79 = 1.25-100%) delay (5000); pwmDuty(59); // 75% (range = 0-79 = 1.25-100%) delay (5000); pwmDuty(79); // 100% (range = 0-79 = 1.25-100%) delay (5000); } void pwm25kHzBegin() { TCCR2A = 0; // TC2 Control Register A TCCR2B = 0; // TC2 Control Register B TIMSK2 = 0; // TC2 Interrupt Mask Register TIFR2 = 0; // TC2 Interrupt Flag Register TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20); // OC2B cleared/set on match when up/down counting, fast PWM TCCR2B |= (1 << WGM22) | (1 << CS21); // prescaler 8 OCR2A = 79; // TOP overflow value (Hz) OCR2B = 0; } void pwmDuty(byte ocrb) { OCR2B = ocrb; // PWM Width (duty) }
Работает, но получена ли требуемая частота в реале, проверить не могу - к сожалению, не имею доступа к соответствующей измерительной аппаратуре.
Если счастливые обладатели осциллографа помогут - буду благодарен.
А кто мешает запустить в том же скетче частотомер? Соедините два пина и экспериментируйте, пока 25к не побежит.
Спасибо за идею, Волшебник!
Загрузил на вторую ардуинку скетч, взятый с этого форума, законнектил платки.
На скрине результат - искомые 25 кГц.