Нужно получить данные о состоянии выключателя
- Войдите на сайт для отправки комментариев
Вс, 08/11/2020 - 11:26
Мне нужно получить данные о состоянии выключателя.
Для этого собираю элементарную схему:
Код:
int volumePin = A0; void setup() { pinMode(volumePin, INPUT); Serial.begin(9600); } void loop() { Serial.println(analogRead(volumePin)); delay(100); }
При замкнутом выключателе на порту - значение 1023.
А вот при разомкнутом - получается какое-то циклическое значение:
0
0
0
0
0
0
0
0
0
0
713
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
30
299
649
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
637
0
0
0
0
0
0
0
0
Объясните пожалуйста, почему так?
Что нужно сделать, что бы при разомкнутом выключателе был 0?
Потому что ты полез собирать приборы не читая учебника?
halfliffe, Вы измеряете напряжение на контакте, который либо соединен с питанием, либо ни с чем не соединен. В первом случае, очевидно, Вы получаете 5 В, а что Вы надеетесь получить во втором случае?
Вам следовало бы подтянуть измеряемый контакт резистором к земле, чтобы на нем было 0 В.
Хотя, обычно делают наоборот: подтягивают контакт к питанию, а кнопкой замыкают на землю.
И какой смысл цеплять его на аналоговый вход?
И какой смысл цеплять его на аналоговый вход?
Но обычно сначала нужно добиться работоспособности и только потом думать об оптимизации.
Аналоговый порт используют в том случае, если данные надо получать с многопозиционного устройства, к примеру матрица кнопок, в вашем случае логичнее использовать цифровой порт
А я так название темы прочёл, что вроде как нужно знать (включено/выключено) о выключателе, который к дуне вообще не относится.
ТС - это Вам препод задание такое дал или сами пытаетесь ардуино «познать»?
Но обычно сначала нужно добиться работоспособности и только потом думать об оптимизации.
В данном случае изначально выбрано неправильное решение. Подтяжка к массе нужна в любом случае, но использовать аналоговый порт и аналоговое же считывание в данном случае глупо ))
Но обычно сначала нужно добиться работоспособности и только потом думать об оптимизации.
В данном случае изначально выбрано неправильное решение. Подтяжка к массе нужна в любом случае, но использовать аналоговый порт и аналоговое же считывание в данном случае глупо ))
Понимаете, байты или микросекунды, сэкономленные в одной прошивке, никак нельзя использовать в другой.
То, что "сразу надо писать правильно" - это, конечно, так. Только, чтобы написать правильно, нужно знать, как писать правильно, а это от рождения не приходит.
Поэтому приоритет усовершенствования кода именно таков:
- сначала добиваемся работоспособности,
- потом - оптимизируем по тем или иным критериям.
Вот так заработало :-)
Так правильно?
Или нет?
То, что выключатель одной ногой замкнут на +5В, это нормально?
Троллинг однако )))
Троллинг однако )))
На всякий случай посмотрел раздел. "Песочница. Раздел для новичков". Да, вроде всё правильно.
Что не так?
Есть стандартный пример "Arduino button". Вы его методом тыка переизобретаете?
Что не так?
Либо ты выложил не ту схему подключения, либо не тот код (сообщение #9). Или что в твоём понимании "заработало"? То, что оно выдаёт в мониторе порта одни единицы?
Выражение "Темно как у негра в шопе" возникло после того, как неграм дали свободу и они стали открывать магазиньчики (шопы по ихнему). А поскольку они экономили даже на освещении, то в этих шопах было темно.
Так и тут - как у негра в шопе. Темно че-то.
Вот так заработало :-)
Так правильно?
Или нет?
То, что выключатель одной ногой замкнут на +5В, это нормально?
И даже, если вдруг показалось, что работает, то это ненадолго.
Выключатель нужно переключить с +5В на землю.
Троллинг однако )))
На всякий случай посмотрел раздел. "Песочница. Раздел для новичков". Да, вроде всё правильно.
Что не так?
ты же пишешь код осмысленно?
В одной строчке кода подтягиваешь пин к +5 вольт и кнопку подключаешь к +5вольт, смотрится это как троллинг в чистом виде )))