Устранение неисправностей/диагностика схемы Arduino

Я собрал прилагаемую схему со следующими изменениями:

  1. Я использовал Arduino Nano.
  2. Я использовал 10К калий.
  3. 12 В подключено к выводу VIN (вместо RAW).
  4. Arduino был подключен к ПК через USB для использования последовательной связи.

Я использовал вентилятор 12 В 4Pin (C25704-002).

Вот код, который я использовал:

const int analogInPin = A0;  // Аналоговый входной контакт, к которому подключен потенциометр
    
    int sensorValue = 0;        // значение, считанное из горшка
    int outputValue = 0;        // значение выводится на ШИМ (аналоговый выход)
    
    void setup() {
       // Настраиваем таймер 1 для ШИМ с частотой 25 кГц.
        TCCR1A = 0;           // отменить конфигурацию, выполненную...
        TCCR1B = 0;           // ...базовая библиотека Arduino
        TCNT1  = 0;           // сбросить таймер
        TCCR1A = _BV(COM1A1)  // неинвертированный ШИМ на канале A
               | _BV(COM1B1)  // то же самое на ch; B
               | _BV(WGM11);  // режим 10: ф. корр. ШИМ, TOP = ICR1
        TCCR1B = _BV(WGM13)   // то же самое
               | _BV(CS10);   // предделитель = 1
        ICR1   = 320;         // ТОП = 320
    
        // Установить выводы ШИМ как выход.
        pinMode( 10, OUTPUT);
     
    }
    
    // Выход ШИМ с частотой 25 кГц, только на контактах 9 и 10.
    // Выходное значение должно быть от 0 до 320 включительно.
    void analogWrite25k(int value)
    {
    
        OCR1A = value;
        
    }
    
    void loop() {
        // считываем аналоговое значение:
        sensorValue = analogRead(analogInPin);
    
        // сопоставляем его с диапазоном аналогового выхода:
        outputValue = map(sensorValue, 0, 1023, 0, 320);
    
        analogWrite25k(outputValue);

У меня есть следующие вопросы:

  1. Схема работала пару минут, но затем я почувствовал знаменитый запах барбекю от электронных компонентов, поэтому я отсоединил провод питания GND. Когда я это сделал, я почувствовал, что провод GND горячий. Думаю, я спалил Arduino. Есть идеи, что может сжечь Arduino?
  2. Потенциометр (10 кОм) оказался нечувствительным. Он работал только в определённом диапазоне вращения ручки. Какое сопротивление мне следует использовать?

Спасибо.

, 👍2

Обсуждение

вы подключили 12 В к А0, @jsotola


1 ответ


1

В какой-то момент движок потенциометра был установлен так, что на вход A0 попало напряжение выше 5 В, которое удерживалось достаточно долго, чтобы повредить устройство. Полный поворот движка в одном из направлений быстро вывел бы вход из строя.

Чтобы удобно было использовать 12 В и обеспечить безопасность входного сигнала, полученного от него, между выводом 12 В и верхней ножкой потенциометра необходим резистор с постоянным сопротивлением, такой, чтобы: Rpot/(Rpot + Rfixed) <= 5/12 (~0,42). То есть, это безопасный делитель напряжения. Для потенциометра 10 кОм сопротивление постоянного резистора составит 13,8 кОм.

,