Подключение вентиляторов 12V 1.8A (4 wire)

Тема в разделе "Силовая электроника", создана пользователем MaXi, 3 сен 2017.

  1. b707

    b707 Гуру

    Вам rkit писал. что все не так просто, а вы не слушали. Управляющий ШИМ сигнал нужен 25КГц, а стандартный ардуиновский ШИМ даже до одного килогерца не дотягивает.
     
  2. MaXi

    MaXi Нуб

    Что же делать?)))Может быть есть другие контроллеры? Или готовые примочки)))
     
  3. MaXi

    MaXi Нуб

    // For Arduino Uno, Nano, Micro Magician, Mini Driver, Lilly Pad and any other board using ATmega 8, 168 or 328**

    //---------------------------------------------- Set PWM frequency for D5 & D6 -------------------------------

    //TCCR0B = TCCR0B & B11111000 | B00000001; // set timer 0 divisor to 1 for PWM frequency of 62500.00 Hz
    //TCCR0B = TCCR0B & B11111000 | B00000010; // set timer 0 divisor to 8 for PWM frequency of 7812.50 Hz
    TCCR0B = TCCR0B & B11111000 | B00000011; // set timer 0 divisor to 64 for PWM frequency of 976.56 Hz (The DEFAULT)
    //TCCR0B = TCCR0B & B11111000 | B00000100; // set timer 0 divisor to 256 for PWM frequency of 244.14 Hz
    //TCCR0B = TCCR0B & B11111000 | B00000101; // set timer 0 divisor to 1024 for PWM frequency of 61.04 Hz

    Согласно этой таблице я поднимал частоту до 62,5КГц и опускал до 61.04 Hz
    Эффекта НЕТ.
    Получается проблема не в частоте? =(
     
  4. MaXi

    MaXi Нуб

    По моим расчетам это должно быть 25КГц
    analogWrite(FAN,0 );
    delayMicroseconds (10);
    analogWrite(FAN,255 );
    delayMicroseconds (30);
    Тоже не сработало =(
     
  5. MaXi

    MaXi Нуб

    // Fan sens (tach) wire connected to digital_8 port
    int fanSens = 8;
    // Fan PWM wire connected to digital_9 port
    int fanPWM = 5;
    // Middle pin of LM35 connected to analog_A1 port
    int tempPin = 1;

    void showRPM() {
    unsigned long pulseDuration = pulseIn(fanSens, LOW);
    double frequency = 1000000/pulseDuration;
    }

    void setup()
    {
    TCCR0B = TCCR0B & B11111000 | B00000001;
    pinMode(fanSens, INPUT);
    digitalWrite(fanSens,HIGH);
    }

    void loop()
    {
    float val = analogRead(tempPin);
    float mv = val/4;
    float cel = mv/1; // this is the celcuis
    if (cel <= 27.0)
    analogWrite(fanPWM, 70); // write value 70 to the fan
    else if (27.0 < cel)
    analogWrite(fanPWM, 220); // write value 220 to the fan

    showRPM();
    delay(500);
    }
     
  6. MaXi

    MaXi Нуб

    Кто может подсказать как использовать это?
    TCCR2A = 0;//initialize timer registers
    TCCR2B = 0;

    // Set the timer to mode 7... Fast PWM to OCR2A
    // Set output on Channe2B Pin3
    // Clear on compare match
    TCCR2A |= (1 << WGM21) | (1 << WGM20); // part of mode 7 setting
    TCCR2B |= (1 << WGM22); //third bit of mode 7
    TCCR2A |= (1 << COM2B1); //Pin 3, Clear on compare match

    //Set fast pwm to 25 khz
    TCCR2B |= (1 << CS21); //Prescaler 8 .5us per tick
    OCR2A = 79; //80 ticks = 40us = 25khz
     
  7. b707

    b707 Гуру

    ждите rkit я этого не знаю
     
  8. MaXi

    MaXi Нуб

    Добрый вечер! Я все так и не смог запустить вентиль =) Теперь задача хотя бы просто его включить))))))
    Подключил по такой схеме [​IMG]
    Код (C++):
    int fan = 3; // выходы на драйвер вентилятора D3
    void setup() {
      // установка частоты PWM на 32кГц (примерно)
    TCCR2B = (TCCR2B & 0xF8) | 0x01; // timer 2 (pins 11,3)
      pinMode(fan, OUTPUT);

    }
    void loop() {
      analogWrite(fan, 255); // полные обороты
    }
     
    Но вентилятор лишь подергивается раз в 2 секунды, если помочь пальцами, то начинает немного раскручиваться и затухает. Напряжение на пине скачет от 4,5 до 4,9.
     
  9. MaXi

    MaXi Нуб

    Дело было в шляпе.... Китайской шляпе... Оказывается были перепутаны провода на вентеле...

    + | тахометр | pwm | - . вентель ( BFB1012VH - 7P03 ) Теперь все работает, обороты регулируются.
     
  10. b707

    b707 Гуру

    В итоге по какой схеме и с каким скетчем запустилось?
     
  11. Mifodiay

    Mifodiay Нуб

    Подскажите в чем может быть проблема? Я подключаю 4 wires вентилятор в ардуино мега . Регулирую обороты при помощи фотоэлемента. Но когда по условию вентилятор должен выключится , то он продолжает очень медленно крутиться. Вентилятор подключен через мосфет


    Код (C++):
    const int pwmPin = 6;      // digital pin 6
    const int PIN_PHOTO_SENSOR = A14; // фотосенсор
    const int burFan = 38; // вентилятор горелки

    void setup() {
      Serial.begin(9600);
      pinMode(pwmPin, OUTPUT);   // sets the pin as output
      pinMode(burFan, OUTPUT);   // sets the pin as output
    }

    void loop() {
      int val = analogRead(PIN_PHOTO_SENSOR);
      Serial.println(val);
      delay(1000);
      if (val < 300) {
        analogWrite(pwmPin,LOW);
         digitalWrite(burFan, LOW);
          }
         else {
          val = map(val,300,600,0,255);
    val = constrain(val,0,255);
    analogWrite(pwmPin,val);
    digitalWrite(burFan, HIGH);
    }

    }
     
  12. asam

    asam Гик

    Схему в студию!
     
  13. Mifodiay

    Mifodiay Нуб

    1.PNG
    Стандартное подключение через МОСФЕТ.
     
  14. asam

    asam Гик

    Стандартное подключение предусматривет резистор 5-10К между затвором и землей, да и R8 раз в 5-10 побольше.

    А если весь код из лупа убрать и оставить только

    Код (C++):
    digitalWrite(burFan, LOW);
    Все равно будет крутиться?
     
  15. Mifodiay

    Mifodiay Нуб

    Поставил другой вентилятор и тот останавливается. Думаю проблема в первом, там что-то внутри запаяно. Немогли бы вы подсказать как 25 Гц сделать на таймерах у Ардуино Меги. Ни как не могу сам разобраться а очень интерестно
     
  16. asam

    asam Гик

    25Гц или 25КГц? Просто постоянную частоту?
     
  17. Mifodiay

    Mifodiay Нуб

    25КГц извеняюсь описался
     
  18. asam

    asam Гик

    А чем tone(pin, 25000); не устраивает?
     
  19. Mifodiay

    Mifodiay Нуб

    я не пробывал и даже не думал что так можно, в виду того что как писали выше, люди используют таймеры. И мне просто интерестно самому узнать как это работает. Но моих познаний тут не хватает :(
     
  20. asam

    asam Гик

    Еще раз повторяю вопрос - Нужена просто частота 25КГц (меандр) или ШИМ с частотой 25КГц?