Одинаковые значения на пинах A6 и A7

Помогите разобраться, почему напряжение подаю на один пин, а код видит, как будто я подаю его на оба?

Serial.print(analogRead(A6));
Serial.print(',');
Serial.println(analogRead(A7));

Схема подключения стандартная, резистор 12кОм (другого нет) на землю и пин, плюс на пин.

Когда подаю сигнал на А7 то всё норм в мониторе порта такие показания:

A6 | A7
404,826
404,829
404,829
403,827
403,825

Но стоит подать мне сигнал на A6, как показания становятся такими

A6 | A7
825,819
830,820
830,823
830,823
827,821
826,819

Подскажите, как сделать так, что бы при подаче сигнала на пин А6, на пине А7 показания были 400, а не 800?

Не знаю что это за стандарты ты такие себе придумал, и как из этого описания может получиться что-то, кроме 1023, но тебе надо внимательно прочитать даташит на атмегу по поводу приниципов работы ацп, ну и учебник схемотехники, разумеется.

2 лайка

Надо выкладывать полностью схему и код .

Возможно , у Вас пин А7 висит при этом в воздухе, вот и ловит наводку

Умные люди делают так, чтоб без сигнала на пине было 1023. INPUT_PULLUP тебе в помощь.

А на этих пинах есть подтягивающие резисторы ?

вот вапще не знаю, не доводилось использовать. Если нету - поставить внешние, килоом на 10.

Стандартных схем не бывает.
Ну и, кроме того, словесное описание схемы явно не соответствует ее поведению, следовательно, неверно.

Публикуйте схему, без этого предметного разговора не будет.

1 лайк

Это аналоговые пины, на них INPUT_PULLUP не работает.


Схема подключения такая, только на рисунке на пин D3, а у меня на пины A6 и A7 (так как взял из интернета.)

Причём если поменять строчки кода местами:

Serial.print(analogRead(A7));
Serial.print(',');
Serial.println(analogRead(A6));

Будет в точности наоборот, при подаче сигнала на A7:

A7 | A6
825,819
830,820
830,823
830,823
827,821
826,819

При подаче сигнала на A6:

A7| A6
404,826
404,829
404,829
403,827
403,825

В общем какой пин в строчке стоит первый, тот и работает странно.
Может функцию analogRead нужно как то очищать?

Уже сто раз обсуждалось.
При переключении выхода мультиплексора, первое считанное значение использовать нельзя.

Плохая у тебя схема. Должно быть 2 резистора, каждый на свою ногу. Крайние выводы резисторов на +5 и землю. Вторую по ходу программы ногу надо считывать дважды и первое чтение игнорировать.

По какому стандарту? ГОСТ??? IEEE???

Рисуйте. То, что здесь написано понимаете только Вы. Какой, нахрен, пин, если их два? Какой плюс? Откуда? Рисуйте!

А вообще, проверьте очистку флюса, сопли при монтаже и прочие подобные штуки.

Если бы у Вас была такая схема, то вывод был-бы 0 и 1023.
Ищите косяк в схеме, или проверьте исправность железа
Если не знаете, как выложить схему, можно нарисовать просто от руки, и сделать фото

Можно поподробнее, сейчас у меня так:

void loop()
{
   Serial.print(analogRead(A6));
   Serial.print(',');
   Serial.println(analogRead(A7));
}

Что значит читать дважды, можно пример или ссылку на него?

Вам не видна схема?

Схемы не видно?

void loop()
{
   Serial.print(analogRead(A6));
   Serial.print(',');
  analogRead(A7);
   Serial.println(analogRead(A7));
}

Простите, Вы альтернативно-одарённый? Вам уже человек пять сказали: рисуйте ВАШУ схему. Ту, что у Вас собрана, а не левость из сети!

А что касается Вашего заявления:

могу сказать, что решение Вашей проблемы находится по этой ссылке. Там правда, не про пины, а про порнуху «(так как взял из интернета)».

Бывает же…

Из любопытства интересуюсь: что можно не понять во фразе “читать дважды”?
Шагнуть два раза. Крикнуть два раза. Чихнуть два раза. Такое понятно?
Прочитать два раза означает прочитать два раза:
a = analogRead(n); - первый раз.
a = analogRead(n); - второй раз.

Вам не видна схема?

Никому не видна. Очень много раз повторено, что схемы (и другие картинки) из Инета мы много раз видели, веришь? А веришь, что видели больше, чем ты? Зачем ты еще раз показываешь картинку из Инета, “такую же, только другую” (с) ?

Даже для Песочницы, и особенно для неё, важно приводить свой код полностью и рисовать свою схему. Для некоторых, особенно сложных пациентов, нужно приводить еще и фото-пруф своего поделия, так как новички “все врут”. Даже не потому, что плохие, а потому, что не понимают, что важно, а что нет.

1 лайк

песах обещает таки быть веселым :wink: