Использование аналогового входа как цифрового
- Войдите на сайт для отправки комментариев
Вс, 19/06/2022 - 17:46
Здравствуйте гуру Arduino.
Возможно вопрос глупый, но всё же: приспичило мне использовать аналоговый вход, как цифровой, кнопку на него повесить. Порылся в первоисточниках и для пробы(!) склепал скетч:
int N_ValN; // Состояние порта последнее int N_ValO = 0; // Состояние порта предыдущее (исходное 0) void setup() { Serial.begin(9600); // Подключаем последовательный порт со скоростью 9600 pinMode(14, OUTPUT); // Назначаем 14-й порт (А0) цифровым выходом и ... digitalWrite(14, HIGH); // ... подаём на него высокий уровень } void loop() { N_ValN=digitalRead(14); // Читаем цифровой вход 14 if (N_ValN != N_ValO) // Проверяем старое и новое состояние на НЕсовпадение { // Если состяние НЕ совпадают Serial.print("Состояние: "); // Выводим текст и ... Serial.println(N_ValN); // ... текущее состяние N_ValO = N_ValN; // Запоминаем текущее состяние } delay(50); // Задержка в 50 мс для исключения дребезга контактов }
Всё работает, спору нет, но меня смутило вот что: решил проверить ток на разрыве кнопки и немножко обожрался ухи ;-), ибо ток получился 82 мА.
Итак вопрос: а не слишком ли большой это ток для Arduino?
Кнопка это INPUT, а не OUTPUT!
А вы замкнули пин на gnd и подали на него высокий уровень - так у вас пин запросто сгорит.
Учите языки, чтобы не путать вход с выходом, а мужской сортир с женским...
Он щас ещё спросит «а почему ж тогда работает»)))))