Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты

Компоненты и материалы

Программное обеспечение

О проекте

Проект посвящён управлению 4-пиновыми PWM-вентиляторами с помощью Arduino Uno. Автор использовал пять имевшихся вентиляторов и реализовал генерацию ШИМ-сигнала с частотой 25 кГц (регулируемой в диапазоне 125 Гц – 8 МГц) и переменным коэффициентом заполнения.

Схема построена на таймере 1 в режиме 10 (фазокорректный ШИМ) с использованием выводов OCR1A (Pin 9) и ICR1 (Pin 10). Для отладки применялся портативный осциллограф, что позволило точно контролировать форму сигнала.

Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты
Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты

Важные замечания

Программный код

const byte OC1A_PIN = 9;
const byte OC1B_PIN = 10;
const word PWM_FREQ_HZ = 25000; // Частота ШИМ в Гц (текущее значение 25 кГц)
const word TCNT1_TOP = 16000000 / (2 * PWM_FREQ_HZ);

void setup() {
  pinMode(OC1A_PIN, OUTPUT);
  TCCR1A = 0; TCCR1B = 0; TCNT1 = 0;
  // COM1A = 0b10 (очистка при совпадении, установка вниз)
  // WGM = 0b1010 (фазокорректный ШИМ)
  // CS = 0b001 (предделитель = 1)
  TCCR1A |= (1 << COM1A1) | (1 << WGM11);
  TCCR1B |= (1 << WGM13) | (1 << CS10);
  ICR1 = TCNT1_TOP;
}

void loop() {
  setPwmDuty(0);   delay(5000);
  setPwmDuty(25);  delay(5000);
  // setPwmDuty(50); delay(20000);
  // setPwmDuty(75); delay(20000);
  // setPwmDuty(100); delay(20000);
}

void setPwmDuty(byte duty) {
  OCR1A = (word)(duty * TCNT1_TOP) / 100;
}

Схема подключения

Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты

Производственный процесс

  1. Управление яркостью LED с ШИМ через кнопку на Arduino Mega
  2. Управление потолочным вентилятором через Alexa: пошаговое руководство
  3. Часы реального времени на Arduino с расчётом времени намаза
  4. Умная копилка: управление монетоприёмником на Arduino Nano
  5. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  6. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  7. Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO
  8. Мастерство 8×8 LED-матрицы с Arduino Uno: Пошаговое руководство
  9. Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld
  10. ThimbleKrox: управление мышью с пальца на Arduino Micro и MPU-6050