Не читаются порты Arduino
- Войдите на сайт для отправки комментариев
Всем привет!
У меня возникла проблема с чтением портов (pin), на моём Arduino. Ни один цифровой (и аналоговый) порт почему-то не читается, и стабильно выдаёт мне 0. На запись все цифровые порты работают (проверял программой для мелькания светодиодом), но на чтение никак. Вооружившись статьёй о работе с кнопкой на этом форуме и логикой собрал первую схему из статьи, только вместо выключателя просто замкнул провода (по идее это тоже самое, что и нажать на выключатель), только провод который идёт на считывающий порт подключил не к A0, а к цифровому порту №1.
Программу взял из стандартных примеров:
/* DigitalReadSerial Reads a digital input on pin 2, prints the result to the serial monitor This example code is in the public domain. */ // digital pin 2 has a pushbutton attached to it. Give it a name: int pushButton = 2; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // make the pushbutton's pin an input: pinMode(pushButton, INPUT); } // the loop routine runs over and over again forever: void loop() { // read the input pin: int buttonState = digitalRead(pushButton); // print out the state of the button: Serial.println(buttonState); delay(1); // delay in between reads for stability }
По идее, в Монитор Порта он мне должен постоянно писать "1", но этого не происходит, а пишет мне всё время "0".
Подскажите, пожалуйста в чём может быть дело. На запись порты вроде же работают.
Спасибо!
Давайте по порядку.
Куда идет провод из пина 2? На землю или на питание? Через резистор или напрямую?
Плюсовой провод, провод ко второму пину и резистор (на 10 кОм), соединяются в одной точке, другим концом резистор подключён к земле. Вот и вся схема.
Добавьте в setup()
и перемычкой на землю потыкайте (замкнули - 0, разомкнули - 1)
вот схема подключения для вашего примера
Всем спасибо, всё заработало! Проблема оказалась в проводе идущего от "+" питания - он не работал под определённым углом.
Для меня остаётся загадкой, почему когда я проверял порты на запись - он работал, а когда проверял для чтения он переставал работать. Видимо трагическое стечение обстоятельств.
>а к цифровому порту №1.
А еще проблема может быть в том, что D0 и D1 используются для заливки скетчей и Serial. Поэтмоу их не желательно использовать для других нужд (без четкого понимание во что это выльется).
При этом в коде вы используете D2, а не "цифровому порту №1". Могло быть еще и поэтому. Банально не тот пин пытались мучать.
вот схема подключения для вашего примера
Вау!!! Теплые аналоговые иллюстрации ;)
>а к цифровому порту №1.
А еще проблема может быть в том, что D0 и D1 используются для заливки скетчей и Serial. Поэтмоу их не желательно использовать для других нужд (без четкого понимание во что это выльется).
При этом в коде вы используете D2, а не "цифровому порту №1". Могло быть еще и поэтому. Банально не тот пин пытались мучать.
Прошу прощения, я опечатался, подключён я был к порту №2
вот схема подключения для вашего примера
Только в своей собранной схеме, я замкнул ножки выключателя. Сделал это для проверки работоспособности портов.