Uno, вопрос по пинам
- Войдите на сайт для отправки комментариев
Приветствую, совсем недавно заинтересовался ардуиной и в настоящее время балуюсь всякой элементарщиной. Вот как раз сегодня было потрачено несколько часов и много матерных слов в попытках подключить 4-разрядный 7-сегментный индикатор, который выдавал все что угодно, только не то что от него хотят, при казалось бы нехитром и правильном подключении. Как оказалось странно себя ведут пины 9-11, и при использовании других все прошло успешно.
В силу моей неопытности, я лучше для наглядности опишу как они себя ведут при подключении к ним диода и попытке им поморгать (переключение high-low в цифровом режиме и плавное зажигание/затухание (0-255) в режиме шим. Скетч не выкладываю, там все совсем просто, но если нужно - прикреплю). Диод катодом в землю, анодом в исследуемый пин через резистор 220Ом . Плата: какой то клон UNO на mega328p.
Результат:
pin9 - диод всегда горит, на digitalWrite и analogWrite не реагирует.
pin10 - диод не горит, на digitalWrite и analogWrite не реагирует.
pin11 - тут интереснее. При переключении в HIGH вроде все как и должно быть, но вот при переключении в LOW диод не гаснет, лишь становится тусклее. При использовании analogWrite диод так же не гаснет полностью.
Собсно вопрос: у этих пинов какой то свой особый путь и это как то настраивается или это нетипичное поведение и, возмножно, неисправность? Спасибо за уделенное внимание.
Никакого нетипичного поведения у этих пинов нет.
Проверьте, что настраиваете на выход. (Вот для этого и трубуется публикация скетча, чтобы не гадать на кофйейной гуще, что именно Вы делаете не так)
Скетч:
Схема:
Для каждого проверяемого пина меняю первую строку в скетче и переподключаю диод соответствующим образом.
На всех пинах кроме 9, 10 и 11 все работает как и ожидается: если пин с pwm, то диод плавно загорается, пару раз моргает и плавно тухнет. Если без pwm, то просто мигает.
Как же себя ведет диод при подключении к 9-11 я уже написал в первом посте:
9 - диод горит постоянно, ни гаснет, ни мигает. Т.е. на нем постоянно HIGH, другое напряжение установить на нем не выходит. Кроме того даже если в скетче пин 9 не используется, то на нем все равно HIGH.
10 - диод не горит, вообще.
11 - диод изначально уже слабо светится, затем плавно разгорается, мигает (опять же не high/low, а как будто high/почти_high), затем плавно гаснет не в ноль, а в свое изначальное бледное свечение. Короче скетч выполняется, но будто нижний порог напряжения у пина не нулевой.
Вроде бы достаточно подробно объяснил происходящее, если нужны еще какие то детали, то сообщите. Еще раз уточню, что при подключении к другим разъемам диод моргает как и полагается согласно скетчу, а такое странное поведение только с пинами 9, 10 и 11. Собсно поэтому и интересуюсь: это какая то фича о которой я еще не успел узнать или же неисправность платы и нужно задуматсья о заказе новой?
В скетче установлен пин 4, а на картинке 9. Должно работать?
А вообще, Вы сказали, что соединение у Вас правильное (верим на слово, т.к. фото нет) и что пины таки соответсвуют скетчу (тоже верим на слово, т.к. приведённые картинка и текст этому противоречат) и при этом не работают пины (не верим на слово, так не бывает).
Никаких особенностей у этих пинов нет. Если всё, как Вы говорите, правильно, и плата исправна, должны работать.
Только что проверил.
Все работает согласно вашему алгоритму на 9, 10, 11 пине. Шляпа где-то в подключениях ваших.
https://youtu.be/414fariUQNE
На макетке нарисовано красиво, а по факту может у вас контакты залиты флюсом, все это лежит в куче проводков и обрезках жилок.
Как показывает практика, в большинстве случаев в информации для размышлений дано одно, подключение другое, а скетч вообще третье.
Хотя, у меня есть ардуинка, которая ведет себя странно каждый раз при включении. Может и такое быть :)
В скетче установлен пин 4, а на картинке 9. Должно работать?
Я на всех пинах проверял, видимо при копипасте забыл поправить на 9 для наглядности. При проверке естественно пин в скетче совпадал с реально подключенным.
Макет: https://a.radikal.ru/a40/1802/84/0a150b5cd5a3.jpg
Как проводились тесты:
1) в первой строке скетча меняю номер пина на N. Остальное содержимое скетча неизменно.
2) зеленый провод подключаю к пину N. Остальная схема неизменна.
3) заливаю скетч.
При N = 2...8 и N = 12...19 светодиод ведет себя ровно так как ожидается согласно скетчу.
А при N = 9...11 поведение отличается. (Поведение диода на этих пинах я в постах ранее описал. Могу добавить, что если, например в скетче указан какой либо пин отличный от 9, то на пине 9 все равно есть напряжение. Т.е. если во время выполнения скетча диод переподключить на пин 9, то он горит, чего быть не должно).
Так как пины 9-11 не должны ничем отличаться от остальных (впринципе это и хотел узнать, спасибо за подтверждение), а схема всегда практически идентична, то разницу в поведении могу объяснить только неисправностью самих пинов/платы.
Только что проверил.
Все работает согласно вашему алгоритму на 9, 10, 11 пине. Шляпа где-то в подключениях ваших.
Еще одно подтверждение, что дело именно в моем экземпляре платы. С подключением все хорошо, потому что макет был собран для теста специально и нужно было обеспечить идентичность условий для каждого пина. А само странное поведение пинов было замечено при попытке подключить 7сегментный 4разрядный индикатор и результат был соответствующий, пока не переподключился к другим разъемам.
Все же попробуйте внимательно осмотреть плату. Может где сопля или трещина, непропай.
Но может и погибли порты в результате предыдущих испытаний каких-нибудь.
Ардуинки уно я уже давно беру с контроллером в дип корпусе. Проще если что заменить или переставить контроллер с отлаженным
скетчем в нужное устройство
Pumpkin, У Arduino Uno 20 GPIO. Все они одинаково работают в стандартном режиме цифровых входов или цифровых выходов, но, кроме того, многие из ни имеют некоторые дополнительные функции. Эти дополнительные функции у разных пинов разные:
- 6 штук поддерживают АЦ-преобразование,
- 6 штук поддерживают ШИМ,
- 2 штуки поддерживают последовательныхй порт,
- 2 штуки поддерживают протокол I2C,
- 3 штуки поддерживают протокол SPI,
- к одному подключен светодиод.
Так вот, функция analogWrite(), реализующая ШИМ - это не стандартная, а дополнительная функция, которая доступна только на некоторых пинах (на плате они обозначены значком ~). На всех остальных - не работает.
Так вот, функция analogWrite(), реализующая ШИМ - это не стандартная, а дополнительная функция, которая доступна только на некоторых пинах (на плате они обозначены значком ~). На всех остальных - не работает.
Это известно. Поэтому в скетче есть как analogWrite, так и digitalWrite, чтобы хоть что то происходило. Однако, поведение 9-11 пинов (несмотря на поддержку ими pwm) все равно не такое как ожидалось. Кроме как дефект платы (врожденный или приобретеный) пока идей не было.
А как ведут себя другие аналогичные платы с Вашими скетчем и схемой?
(самый простой способ проверки при подозрении на аппараную неисправность - замена)
Лично я на другой плате не проверял, т.к. пока у меня толька эта имеется, но согласно ответам в этой теме:
Только что проверил.
Все работает согласно вашему алгоритму на 9, 10, 11 пине.
Уже выяснили, что на другом оборудовании работает. Да и теоретически нет причин не работать на исправном железе, это тоже выяснили.
Так что практически гарантированно проблема в моей плате, что в общем то для начального обучения никаких проблем не создает (эти пины просто не использую). В дальнейшем заменю.