Arduino nano и аналоговый пин А0.

DragonGlad
Offline
Зарегистрирован: 22.04.2016

В двух словах, я совсем начинающий в микроконтроллерах как в железе, так и в программировании их. 

Проблема у меня возникла в следующем, я пытался реализовать плавное включение светодиодной ленты, для чего открывал ее через STP16NF06, подавая различный уровень через пин А0, командой analogWrite. Однако ситуация такая, что лента либо горит в полный накал, либо не горит совсем. 

Решил проверить, что же получаю на пине А0. При записях на пин различных значений, тут же считывал их с пина А1, для этого я закоротил эти два пина, и после ввода некоего значения (64 если я ничего не напутал) снимается значение 1023, до этого, снимается 0. 

То есть, как я понимаю, пин работает в цифровом режиме. 

Собственно вопрос, я наверняка где то допустил ошибку в своих рассуждениях, как в вопросе подключения мосфета так и в снятии значения с пина, но собственных знаний у меня не хватает, подскажите направление куда копать? 

Снимал значения так:

analogWrite(A0, 32);
Serial.println(analogRead(A1)); 

Собирал по схеме отсюда: 

http://cxem.net/beginner/beginner61.php

Araris
Offline
Зарегистрирован: 09.11.2012

Почитайте здесь http://arduino.ru/Reference/AnalogWrite

Обратите внимание на фразу "Функция analogWrite никак не связана с аналоговыми входами и с функцией analogRead."

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DragonGlad пишет:

подавая различный уровень через пин А0, командой analogWrite. 

1) analogWrite не работает с этим пином. Если бы Вы написали что у Вас за ардуина, я бы написал с какими работает, а так - с А0 нне работает ни на какой.

2) если Вы думаете, что analogWrite будет выдавать на пин какое-то напряжение, отличное от HIGH и LOW, то Вы ошибаетесь. Читайте описание analogWrite

DragonGlad пишет:

Собирал по схеме отсюда: 

http://cxem.net/beginner/beginner61.php

Не обманывайте, там мосфеты подключены к цифровым пинам 5, 6 и 3. И так как раз норамльно меняется яркость. Вы изменили схему сами, так что не жалуйтесь.

P.S. Примечание к той схеме. У них в затворах мосфетов не стоят резисторы. Обязательно ставьте. Хоть небольшой (от 150 ом), но ставьте обязательно.

Araris
Offline
Зарегистрирован: 09.11.2012

Евгений, речь идёт о Nano. И не спрашивайте, откуда я знаю )))

DragonGlad
Offline
Зарегистрирован: 22.04.2016

Araris, спасибо, пошел изучать. 

Евгений, 

1) Я указал сразу, какая ардуина, в названии темы. 

2) Ушел читать. 

Что касается схемы, все же 5, 3 и 6, это PWM а не цифровые пины. Я заменил на nano, их на А0, А1 и А2 соответственно. Видимо сделал это не правильно, хотя в описаниях эти пины указаны как аналоговые. 

bwn
Offline
Зарегистрирован: 25.08.2014

DragonGlad пишет:

Araris, спасибо, пошел изучать. 

Евгений, 

1) Я указал сразу, какая ардуина, в названии темы. 

2) Ушел читать. 

Что касается схемы, все же 5, 3 и 6, это PWM а не цифровые пины. Я заменил на nano, их на А0, А1 и А2 соответственно. Видимо сделал это не правильно, хотя в описаниях эти пины указаны как аналоговые. 

Таки вы ШИМом и управляете, а ЦАПа у ардуин нету, от слова совсем. HIGH-LOW и ничего больше.

DragonGlad
Offline
Зарегистрирован: 22.04.2016

Почитал по analogWrite, надеюсь, что понял. 

Тогда не понятно, почему не работает плавное нарастание/уменьшение яркости. Скорее всего, Евгений прав, и я выбрал не те пины. 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DragonGlad пишет:

Что касается схемы, все же 5, 3 и 6, это PWM а не цифровые пины. 

Про нано - сорри, моя вина.

5, 3 и 6, это цифровые пины с поддержкой PWM. На нано они точно также цифровые с поддержкой PWM. Именно они Вам и нужны, потому что analogWrite работает именно с PWM и ни с чем другим.

DragonGlad пишет:

Я заменил на nano, их на А0, А1 и А2 соответственно. 

И совершенно напрасно. Они PWM не поддерживают, а значит analogWrite с ними не работает.

DragonGlad пишет:

хотя в описаниях эти пины указаны как аналоговые

И правильно указаны. Они умеют читать аналоговые значения (т.е. они подключены к АЦП). Вот только к PWM (стало быть, к analogWrite) это не имеет никакого отношения.

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Araris пишет:

Евгений, речь идёт о Nano. И не спрашивайте, откуда я знаю )))

Не буду спрашивать. Пусть остаётся тайной :)))

DragonGlad
Offline
Зарегистрирован: 22.04.2016

Правильно заданный вопрос, содержит в себе половину ответа, спасибо всем большое. 

Я пока создал тему и почитал ваши вопросы, уже успел найти ту волшебную ссылку, на которой указано именно то, что мне описал Евгений. А вчера она мне никак не попадалась, видимо позднее было время. 

Еще раз всем спасибо за разъяснения, сегодня вечером обязательно попробую вернуть те пины, которые и были в изначальной схеме. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не забудьте про резисторы в затворах, а то следующей темой от Вас будет: "вроде, всё работало, а теперь перестало, хотя, ничего не менял, никто не сталкивался?" :))))

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Araris пишет:

Почитайте здесь http://arduino.ru/Reference/AnalogWrite

Обратите внимание на фразу "Функция analogWrite никак не связана с аналоговыми входами и с функцией analogRead."

Вот оно, путаница из-за неверно выбранного названия. Нет у Атмег аалогового вывода от слов "совсем нет".

Поэтому и переименовал у себя analogWrite() в pwmOut(), а analogRead() в adcRead().

DragonGlad
Offline
Зарегистрирован: 22.04.2016

ЕвгенийП пишет:

Не забудьте про резисторы в затворах... 

С моей стороны очень глупо было бы проигнорировать этот совет : )

Arhat109-2, похоже, что именно об это я и споткнулся.