Устранение неисправностей/диагностика схемы Arduino
Я собрал прилагаемую схему со следующими изменениями:
- Я использовал Arduino Nano.
- Я использовал 10К калий.
- 12 В подключено к выводу VIN (вместо RAW).
- 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);
У меня есть следующие вопросы:
- Схема работала пару минут, но затем я почувствовал знаменитый запах барбекю от электронных компонентов, поэтому я отсоединил провод питания GND. Когда я это сделал, я почувствовал, что провод GND горячий. Думаю, я спалил Arduino. Есть идеи, что может сжечь Arduino?
- Потенциометр (10 кОм) оказался нечувствительным. Он работал только в определённом диапазоне вращения ручки. Какое сопротивление мне следует использовать?
Спасибо.
@Takata, 👍2
Обсуждение1 ответ
В какой-то момент движок потенциометра был установлен так, что на вход A0 попало напряжение выше 5 В, которое удерживалось достаточно долго, чтобы повредить устройство. Полный поворот движка в одном из направлений быстро вывел бы вход из строя.
Чтобы удобно было использовать 12 В и обеспечить безопасность входного сигнала, полученного от него, между выводом 12 В и верхней ножкой потенциометра необходим резистор с постоянным сопротивлением, такой, чтобы: Rpot/(Rpot + Rfixed) <= 5/12 (~0,42). То есть, это безопасный делитель напряжения. Для потенциометра 10 кОм сопротивление постоянного резистора составит 13,8 кОм.
- Уменьшить яркость светодиода с помощью NPN-транзистора
- Как прочитать значение PIN PWM-выхода?
- Выполнить регулировку громкости на динамике arduino
- Ускорение двигателя постоянного тока с помощью ШИМ
- Управление несколькими вентиляторами с помощью Arduino Uno
- Невозможно установить рабочий цикл на 0% с помощью пользовательского PWM
- Плохие показания сигнала тахометра вентилятора 12 В pwm
- ШИМ-управление, как остановить мерцание светодиода?
вы подключили 12 В к А0, @jsotola