Цифровые пины работают не корректно
- Войдите на сайт для отправки комментариев
Втр, 10/04/2018 - 15:36
После долгих экспериментов на дуине, появилась проблема: самопроизвольное нажатие кнопки подключенной к цифровому пину (вроде 7 не важно). Долго размышляя над проблемой и меняя прошивку, пришел к выводу , что с моей дуиной, что то не так. Написал тестовую прошивку :
unsigned long butt; void setup() { Serial.begin(9600); pinMode(8, OUTPUT); Serial.println("Привет Александр");} void loop() { butt = analogRead(8); if (butt > 0) { Serial.println(butt);} delay(250);}
И выяснилось, что все цифровые пины от 2 до 13 (1 не проверял) выдают высокое значение данных:
374
348
372
343
370
339
368
348
364
381
387
379
380
Но при таком же тесте аналоговых пинов (с А0 по А5) значения равны нулю, а при закорачивании на +5 вольт выдает высокое значение.
Пожалуйста скажите, что с моей дуиной не так или что не так со мной :)
При том же тесте аналогового пина А0 значение = 0 , при закорачивании на +5 вольт = 1018 +\- , а при закорачивании на +3.3 вольт = 650 +\-
Пожалуйста скажите, что с моей дуиной не так или что не так со мной :)
Вам тоже в комплект резисторов не положили? См. https://www.arduino.cc/en/Tutorial/button
Изначально кнопку подключал через резистор 10 килоом подтянутый к земле.
Значит замыкание где-то происходит. Или скетч неправильный.
Предваряя вопросы: analogRead() в данном случае на самом деле меряет напругу не на 8-м диджитальном, а пытается подключить АЦП к 8-му аналоговому.
Да уж, жертвушки ЕГЭ, analogRead(8) это чтение температурного датчика внутри микросхемы. Поздравляю. Температура померяна.
Не понял, Вы прочитали текущую температуру (не уверен, что так её читать можно, но, похоже, что можно). И что? Проблема-то в чём?
ТС пишет, что проверял так все пины до 13-ого. Ну пусть аналоговый 8 - температура. а что такое аналоговый пин 9, 10, 11?
ТС пишет, что проверял так все пины до 13-ого. Ну пусть аналоговый 8 - температура. а что такое аналоговый пин 9, 10, 11?
Вообще-то ТС не написал что у него за ардуина, потому и температура и всё остальное - кофейная гуща,
Но пины №№ 9, 10, 11 (равное как и 100500) - берутся младшие три бита (pin & 0x07); - а что там будет - сами считайте.
Ну так померяйте напряжение прям на пине контроллера,если причина не в вышеуказаном.
Друзья, спасибо, что указали на мою тупость и помогли узнать чутка больше про дуину.
Тему можно закрыть ))