Arduino nano и аналоговый пин А0.
- Войдите на сайт для отправки комментариев
В двух словах, я совсем начинающий в микроконтроллерах как в железе, так и в программировании их.
Проблема у меня возникла в следующем, я пытался реализовать плавное включение светодиодной ленты, для чего открывал ее через STP16NF06, подавая различный уровень через пин А0, командой analogWrite. Однако ситуация такая, что лента либо горит в полный накал, либо не горит совсем.
Решил проверить, что же получаю на пине А0. При записях на пин различных значений, тут же считывал их с пина А1, для этого я закоротил эти два пина, и после ввода некоего значения (64 если я ничего не напутал) снимается значение 1023, до этого, снимается 0.
То есть, как я понимаю, пин работает в цифровом режиме.
Собственно вопрос, я наверняка где то допустил ошибку в своих рассуждениях, как в вопросе подключения мосфета так и в снятии значения с пина, но собственных знаний у меня не хватает, подскажите направление куда копать?
Снимал значения так:
analogWrite(A0, 32); Serial.println(analogRead(A1));
Собирал по схеме отсюда:
Почитайте здесь http://arduino.ru/Reference/AnalogWrite
Обратите внимание на фразу "Функция analogWrite никак не связана с аналоговыми входами и с функцией analogRead."
подавая различный уровень через пин А0, командой analogWrite.
1) analogWrite не работает с этим пином. Если бы Вы написали что у Вас за ардуина, я бы написал с какими работает, а так - с А0 нне работает ни на какой.
2) если Вы думаете, что analogWrite будет выдавать на пин какое-то напряжение, отличное от HIGH и LOW, то Вы ошибаетесь. Читайте описание analogWrite
Собирал по схеме отсюда:
http://cxem.net/beginner/beginner61.php
Не обманывайте, там мосфеты подключены к цифровым пинам 5, 6 и 3. И так как раз норамльно меняется яркость. Вы изменили схему сами, так что не жалуйтесь.
P.S. Примечание к той схеме. У них в затворах мосфетов не стоят резисторы. Обязательно ставьте. Хоть небольшой (от 150 ом), но ставьте обязательно.
Евгений, речь идёт о Nano. И не спрашивайте, откуда я знаю )))
Araris, спасибо, пошел изучать.
Евгений,
1) Я указал сразу, какая ардуина, в названии темы.
2) Ушел читать.
Что касается схемы, все же 5, 3 и 6, это PWM а не цифровые пины. Я заменил на nano, их на А0, А1 и А2 соответственно. Видимо сделал это не правильно, хотя в описаниях эти пины указаны как аналоговые.
Araris, спасибо, пошел изучать.
Евгений,
1) Я указал сразу, какая ардуина, в названии темы.
2) Ушел читать.
Что касается схемы, все же 5, 3 и 6, это PWM а не цифровые пины. Я заменил на nano, их на А0, А1 и А2 соответственно. Видимо сделал это не правильно, хотя в описаниях эти пины указаны как аналоговые.
Таки вы ШИМом и управляете, а ЦАПа у ардуин нету, от слова совсем. HIGH-LOW и ничего больше.
Почитал по analogWrite, надеюсь, что понял.
Тогда не понятно, почему не работает плавное нарастание/уменьшение яркости. Скорее всего, Евгений прав, и я выбрал не те пины.
Что касается схемы, все же 5, 3 и 6, это PWM а не цифровые пины.
Про нано - сорри, моя вина.
5, 3 и 6, это цифровые пины с поддержкой PWM. На нано они точно также цифровые с поддержкой PWM. Именно они Вам и нужны, потому что analogWrite работает именно с PWM и ни с чем другим.
Я заменил на nano, их на А0, А1 и А2 соответственно.
И совершенно напрасно. Они PWM не поддерживают, а значит analogWrite с ними не работает.
хотя в описаниях эти пины указаны как аналоговые
И правильно указаны. Они умеют читать аналоговые значения (т.е. они подключены к АЦП). Вот только к PWM (стало быть, к analogWrite) это не имеет никакого отношения.
Евгений, речь идёт о Nano. И не спрашивайте, откуда я знаю )))
Не буду спрашивать. Пусть остаётся тайной :)))
Правильно заданный вопрос, содержит в себе половину ответа, спасибо всем большое.
Я пока создал тему и почитал ваши вопросы, уже успел найти ту волшебную ссылку, на которой указано именно то, что мне описал Евгений. А вчера она мне никак не попадалась, видимо позднее было время.
Еще раз всем спасибо за разъяснения, сегодня вечером обязательно попробую вернуть те пины, которые и были в изначальной схеме.
Не забудьте про резисторы в затворах, а то следующей темой от Вас будет: "вроде, всё работало, а теперь перестало, хотя, ничего не менял, никто не сталкивался?" :))))
Почитайте здесь http://arduino.ru/Reference/AnalogWrite
Обратите внимание на фразу "Функция analogWrite никак не связана с аналоговыми входами и с функцией analogRead."
Вот оно, путаница из-за неверно выбранного названия. Нет у Атмег аалогового вывода от слов "совсем нет".
Поэтому и переименовал у себя analogWrite() в pwmOut(), а analogRead() в adcRead().
Не забудьте про резисторы в затворах...
С моей стороны очень глупо было бы проигнорировать этот совет : )
Arhat109-2, похоже, что именно об это я и споткнулся.