Обращение к аналоговому пину в цикле for
- Войдите на сайт для отправки комментариев
Пт, 23/03/2018 - 00:44
Здравствуйте, у меня стоит задача считать значение с аналоговых пинов в цикле for, вот так бы я поступил с цифровыми:
for (int i=1; i<5; i++){
int a = digitalRead(i);
// какие-то действия
}
А вот с аналоговым проблема в букве "A" перед номером пина.
Как можно обыграть это?
А вот с аналоговым проблема в букве "A" перед номером пина.
Как можно обыграть это?
узнать номер пина А
Я делаю так:
for (int i=1; i<5; i++){ a=analogRead(/*вот что здесь писать не знаю*/); }То есть мне нужно прочитать с 1 по 4 аналоговые порты, что в скобках писать?
Я делаю так:
for (int i=1; i<5; i++){ a=analogRead(/*вот что здесь писать не знаю*/); }То есть мне нужно прочитать с 1 по 4 аналоговые порты, что в скобках писать?
тебе нужно посмотреть сопроводительную документацию на свою дуино и прочесть оттуда номер аналогового пина, а не писать на форум по поводу каждого своего пука.
for (int i = 0; i < 4; i++) {
analogRead ( i );
}
Так?
Нет. analogRead ( i +14); Внимательнее описание ардуины читать бы. Это для наны. Для других может отличатся.
ну и
for (int i = 0; i < 4; i++) { o = analogRead ( A0 + i ); }А вот и не так!
Нулевой аналоговый пин ( А0 ) становится четырнадцатым ( для НАНы ) только тогда
когда мы к нему обращаемся как к цифровому.
А когда как к аналоговому то он всегда нулевой - или А0 или 0.
analogRead ( A0 ) или analogRead ( 0 )
А по вашему будет попытка читать с 14-го и выше аналогового входа который вы вряд-ли найдёте у НАНы.....
Чтобы сделать его цифровым не обязательно что-то вычислять.
Надо просто написать как есть:
digitalRead ( A0 )
И работать будет хоть на 328 хоть на 2560
А если коротко то нулевой аналоговый и нулевой цифровой - разные пины.
во блин !!! ща проверим ...
А вот и не так!
может, хватит?
пин 14 всегда пин 14 - как к нему не обращайся
#define PIN_A0 (14)
А вот и не так!
может, хватит?
пин 14 всегда пин 14 - как к нему не обращайся
#define PIN_A0 (14)
фу, блин ... а то я испугался :)))
trembo, так проверять или нет ?
А вот и не так!
может, хватит?
пин 14 всегда пин 14 - как к нему не обращайся
#define PIN_A0 (14)
Тогда предлагаю запустить Serial.println ( PIN_A0);
на НАНе и на 2560
сравнить и не вводить новичков в заблуждение.
А вот и не так!
может, хватит?
пин 14 всегда пин 14 - как к нему не обращайся
#define PIN_A0 (14)
фу, блин ... а то я испугался :)))
trembo, так проверять или нет ?
Врёт он всё..... Или добросовестно заблуждается про слово всегда.
Несчастный человек, ничего лучше НАНы в своей жизни не видел.
А вот и не так!
может, хватит?
пин 14 всегда пин 14 - как к нему не обращайся
#define PIN_A0 (14)
фу, блин ... а то я испугался :)))
trembo, так проверять или нет ?
Врёт он всё..... Или добросовестно заблуждается про слово всегда.
Несчастный человек, ничего лучше НАНы в своей жизни не видел.
что скажите про UNO или proMini ?
или в МЕГЕ вот это работать не будет ?
for (int i = 0; i < 4; i++) { o = analogRead ( A0 + i ); }Она конечно гдето так. В wiring есть строка if (pin >= 14) pin -= 14; так что 0 что 14 это одно и тоже. Для однообразия мне привычней 14.
Тогда предлагаю запустить Serial.println ( PIN_A0);
на НАНе и на 2560
сравнить и не вводить новичков в заблуждение.
а, предложи мне этот код на ATTINY2313 запустить - и обвини меня в том, что я кого-то ввожу.
Опять же смотря для какого процессора.
А мне, для однообразия и привычней пин А0 всегда называть коротким и ёмким именем: А0
1 этерация
А мне, для однообразия и привычней пин А0 всегда называть А0
2 этерация
А мне, для однообразия и привычней пин А0 всегда называть коротким именем: А0
3 этерация
А мне, для однообразия и привычней пин А0 всегда называть коротким и ёмким именем: А0
Неверно. Точнее не совсем. Вместо 14 надо подставлять соответствующую константу из Ардуино.h или вложенных в него хидеров. У разных Ардуин это разное чиселко..
А вот с аналоговым проблема в букве "A" перед номером пина.
Как можно обыграть это?
Просто не писать букву A. Нулевой, так и пишете 0, первый, так и пишете - 1 и т.п. analogRead сама разберётся.
Подведение итогов про циклы, поправьте если я не прав:
for (int i = 0; i < 4; i++) { digitalRead ( i ); // цифровой как обычно analogRead ( i ); // аналоговый как обычно digitalRead (A0 + i ) ; // аналоговый как цифровой }А може, ну его разбираться, чему равно А0?
и все дела...