P-channel Mosfet не пойму...

Тема в разделе "Arduino & Shields", создана пользователем greiverff, 6 апр 2013.

  1. greiverff

    greiverff Нерд

    Не могу понять, правильно ли я подключил P-канальный полевик? Почему-то не управляется с pwm.
    [​IMG]

    Вот код:

    Код (Text):

    int x=0;
     
    void setup()
    {
      pinMode(9,OUTPUT);
      pinMode(A2,INPUT);
     
      Serial.begin(9600);
    }
     
    void loop()
    {
      x=analogRead(A2);
      x=map(x, 0, 1024, 0, 255);
      analogWrite(9,x);
     
      Serial.println(x);
      delay(250);
    }
     
  2. Unixon

    Unixon Оракул Модератор

    Нагрузка не с той стороны. У вас Vgs будет считаться от мотора и плавать. Вообще, зачем вам именно P-канальный транзистор и какой он модели?
     
  3. greiverff

    greiverff Нерд

    P нужен для Нмоста, в верхние плечи(Q1 Q3).
    Модель SUP75P03-07-E3(http://www.vishay.com/docs/71109/supsub75.pdf).
    Делал по этой схеме:
    [​IMG]

    Принцип включения Р и N полевиков читал тут. Все верно?
    [​IMG]

    Исходя из схемы подключения Р канальных полевиков, соеденил так:

    [​IMG]

    Все равно не управляется. Просто крутится в одну сторону. Может я не привильно понимаю как управлять Р транзистором?
     
  4. greiverff

    greiverff Нерд

    Есть подозрение, для управления полевиком нужно генерировать отрицательное напряжение. от -5 до 0 вольт. Не знаю как проверить догадку, где брать -v.
     
  5. Unixon

    Unixon Оракул Модератор

    Полярность сигналов неправильная. Нужно Vgs<0, Vds<0.
     
  6. Unixon

    Unixon Оракул Модератор

    Т.к. все потенциалы относительны, то можно положить Vcc = Vs, тогда GND будет -5V относительно Vs, ну и сигналы ардуины тоже станут отрицательными. Осталось разобраться с батареей.
     
  7. greiverff

    greiverff Нерд

    C Vds<0 кажется понятно, надо выходы с батарейки поменять местами. Сейчас попробую.
     
  8. Unixon

    Unixon Оракул Модератор

    Соответственно, чтобы обеспечить Vds<0, нужно Vs = Vbat+ = Vcc, M+ = Vbat-, M- = Vd .
     
  9. greiverff

    greiverff Нерд

    Извините за непонятливость, но могли бы вы линиями ан картинке отметить как нужно соединить элементы:
    [​IMG]
     
  10. greiverff

    greiverff Нерд

    Так?
    [​IMG]

    Все равно не управляется. Просто крутится в одну сторону.
     
  11. greiverff

    greiverff Нерд

    Немного поэкспериментировав понял, при подключении как в предыдущем посте транзистор вссе таки управляется, но контроллер может только стартануть мотор. А вот выключить его уже не в состоянии. видимо не получается дать отрицательного напряжения.

    По хорошему ШИМ на этом полевике не нужен. Он должен работать в двух режимах- полностью открыт и полностью закрыт. Может можно по другому реализовать это?
     
  12. Unixon

    Unixon Оракул Модератор

    Нет, не так, Vcc это +5V, их нужно соединить с Source и Vbat+, землю нужно отключить! т.е. Vbat- и GND не соединять.
     
  13. greiverff

    greiverff Нерд

    Соединил +5V с Source и Vbat+ вот так:

    [​IMG]

    Управлять транзистором пытаюсь так:

    Код (Text):

    int x=0;
     
    void setup()
    {
      pinMode(9,OUTPUT);
      Serial.begin(9600);
    }
     
    void loop()
    {
      analogWrite(9, x);
      Serial.println(x);
      if (x>950)
      {
        x=0;
      }
      x=x+50;
      delay(300);
    }
    Не управляется, просто крутится.
     
  14. greiverff

    greiverff Нерд

    Извините, наврал. Теперь управляется. Спасибо.
    Вот только встает другой вопрос. Если не соединять gnd с Vbat- то как управлять N канальным полевиком? Нужна вторая линия питания?
     
  15. Unixon

    Unixon Оракул Модератор

    Хм, интересно. Поэкспериментировать что ли тоже...
     
  16. Unixon

    Unixon Оракул Модератор

    Посмотрите как это сделано в готовых мостах.
     
  17. greiverff

    greiverff Нерд

    Правильно ли я понимаю, что если еще GND и Vbat- соединить, то получится что мы подсоединили батарею к ардуиновским 5V и GND напрямую. Ток ведь спалит контроллер когда транзисторы закроются.
     
  18. Unixon

    Unixon Оракул Модератор

    Так, конечно, нельзя делать. Это с одним транзистором можно точку отсчета так привязывать, а с целым мостом не выйдет. Правда, посмотрите как это реализовано у других.
     
  19. greiverff

    greiverff Нерд

    Да попробую, спасибо.