Обработка аппаратных ошибок на Arduino IDE
- Войдите на сайт для отправки комментариев
Втр, 10/04/2018 - 03:47
Привет!
Такой вопрос. Когда пишешь приложение на Swift или на Object C, всегда при подключении любого модуля устройства - гироскопа или GPS - всегда в начале проверяешь, доступен ли модуль. Если модуль доступен, то программа выполняет дальнейшее условия, если нет, то выдает ошибку. Можно ли на Ардуино перед выполнением куска кода программно проверить, подключен ли, например, потенциометер к A1 и подключен сервомотор к D9? Ардуино понимает вообще, подключено ли что-то к ее пинам или нет?
Нет. Судить о том, подключено ли шото, можно только по косвенным признакам. На I2C шине, например, это можно сделать точно, запустив пустой цикл чтения и получив ответ/неответ устройства по определенному адресу. А узнать подключен ли патанцометр или сервомотор в общем случае невозможно.
Элементарно, Ватсон! Тот же резистор должен работать - ну, хотя бы, по уже упомянутому протоколу I2C.
Другими словами, возможность или невозможность определения, подключена та или иная периферия, зависит не от управляющего устройства, а от свойств самой периферии. Т.е. вопрос некорректен изначально: нужно спрашивать не "может ли Ардуино", а "может ли модуль".
Хотя, во многих случаях что-то можно сделать и програмно-аппаратными средствами Ардуино, например, подключить верхнрий вывод потенциометра не напрямую к 5 Вольтам, а к выходу Ардуино.
Ну, правильным, пожалуй будет такой ответ: возможность проверки - это дополнительная функция (за которую в том или ином виде надо платить), поэтому будет ли данная функция в конкретном устройстве (скажем, собранном на Ардуино), зависит от разработчика этого устройства. Ардуино - достаточно универсальный элемент, поэтому может служить основой для разного типа устройств: как с проверкой подключения, так и без.
Более правильный вопрос "может ли разработчик?".
Хм, на английском форуме пишут, что можно, например, подключить pull-down резистор и смотреть на показания аналогового входа. Если напряжение там равно нулю, то значит подключени нет, а если больше нуля, то есть. Там даже схемы есть. Поэксперементирую, отпишусь. А вопрос был правильно задан. Я спросил конкретно про потенциометер и сервомашинку. Если потенциометер при максимальном сопротивлении дает хоть какое-то напряжение на входе, то работать будет.
Хм, на английском форуме пишут, что можно, например, подключить pull-down резистор и смотреть на показания аналогового входа. Если напряжение там равно нулю, то значит подключени нет, а если больше нуля, то есть.
Ага, особенно если предполагается работа с инвертированными значениями на каком-нибудь PH-датчике, где наличие 0В подразумевает под собой овердохера pH. И как ты определишь, есть подключение или нет, в этом случае? Подтянешь к питанию? Ну вот и ладушки - выяснили, что универсального рецепта не существует, да и неуниверсального - тоже. Всё зависит сугубо от конкретики.
Я написал конкретику же)))
Ну, подключили вы резистор. А провод оторвался после него. Что делать с такой диагностикой?
У Ардуины есть встроенный резистор)
У Ардуины есть встроенный резистор)
Который слабенький и pull-up, а ты писал про pull-down. Где логика, брат? Ты не запутался уже?
И что, серву тоже можно так определить? А ея модель?
И что, серву тоже можно так определить? А ея модель?
А Вы жмотьтесь - покупайте plug-and-play стерву! Вот и определится!
Не знаете, в общем))
Не знаете, в общем))
сволочи! - от ещё одного, обезображенного печатью интеллекта, скрываете знания. О_О
Не скрываете, а дёшево выпендриваетесь. Вот, что я нашёл: https://arduino.stackexchange.com/questions/14647/how-can-i-detect-a-disconnected-pin
Не скрываете, а дёшево выпендриваетесь. Вот, что я нашёл: https://arduino.stackexchange.com/questions/14647/how-can-i-detect-a-disconnected-pin
Ты попробуй, попробуй. Когда не получится таким образом гарантированно определить - отпишись, плз. Всё, что там написано - не даёт 100%-ной гарантии, всего лишь. Почему - можешь подумать сам, на досуге.