UNO, Аналоговый вход, цена деления

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

Всем привет! Сижу с keypad от китайцев, и пробую подключить к аналоговому порту. Клава простая матрица резисторов, на первой кнопке 1кОм, на последней кнопке 10кОм. Что интересно, это две последние кнопки на аналоговом порту показывают одинаковое значение 1023. При этом напряжение МК 4.85В. От него же запитана клава. Мерю напряжение после нажатия на аналоговом порту - 4.85 последняя кнопка, и 4.3 предыдущая, а значение в порту на обоих 1023... Не могу понять, что не так... Разное напряжение, а АЦП не видит эту разницу. При этом остальные кнопки распознает. К примеру 3.9в = 1000, 4.85 = 1023. А где середина?
Первая и вторая кнопка 2.26 = 570, 2.37=600. Шаг такой же, но тут он все понимает. Где копать?

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

На счет сопротивления кнопок обманул, 12 кнопок, с шагом 1кОм. Т.е последние две это 11кОм и 12кОм...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

3,9 вольта должно быть 806, а не 1000, если повар нам не врёт )))

видимо провода длинные, наводки

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Dr_grizzly пишет:

На счет сопротивления кнопок обманул, 12 кнопок, с шагом 1кОм. Т.е последние две это 11кОм и 12кОм...

это так не делается, поищи, как именно надо матрицу клавиатуры собирать

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

Я взял ща другой модуль Уно, запитал от USB и подключил только эту клаву (без других нагрузок).

Питание на пине "5В" = 4.9В И клава отрабатывает правильно. Все кнопки. По коду сдвиг от предыдущей уно. Если на той уно - на первой кнопке 575, то на новой 488. 

И еще заметил, что на первую уно блок подает 5.1В, а на ее Пине "5В" щупаю 4.85В... Может дело в этом?

Еще провел эксперимент - просто подключил первую Uno от блока и проверил на ее пине "5B" = 4.75В Похоже это связано с тем, что я подаю на Vin 5в, и его стабилизатор съедает

Клаву не я паял))) Просто взял готовый вариант аналоговой клавы от RobotDyn

Поменял пин с Vin на "5В" - клава так же не хочет работать ((((

b707
Онлайн
Зарегистрирован: 26.05.2017

Питание 5в надо подавать на пин "5в", а не на VIN. В остальном разберитесь, нечему там не работать, скорее всего чепуха не только в схеме, но и у вас в голове...

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

Если бы так все было просто, сижу уже 6й час над этим, и когда кончились варианты - пошел на форум...

Замерил все показания (контроллер Iskra Mini):

Питание сейчас 4.91 на пине "5В"

1-я кнопка - 2.34В = 573 (пин А0)

2-я кнопка - 2.46В = 601 (пин А0)

3-я кнопка - 2.59В = 635 (пин А0)

...

10 кнопка 4.09В = 1000 

11 кнопка 4.46В = 1023

12 кнопка 4.91В = 1023

Если верить формулье АЦП = B(вход) * 1024 / В(опорное), то получаем 2.34 * 1024 / 4.91 = 488, а не 573! Вот где тут зарыт косяк? На другой уно именно так  = ~485 

Загнал в Excel и подобрал опорное  = 4.2В чтобы он показал 572 при 2.34В на входе... Что-то с опорным в контроллере?

Копнул дальше, нашел ногу AREF на контроллере - на ней 4.26в! А на АрудУно на этой ноге 0... А что все таки там должно быть, если ничего не подключено?

Upper
Offline
Зарегистрирован: 23.06.2020

Возможно конденсатор C4 неисправен?

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

В схеме замерить кондер наверное проблемно будет. Я вот ща попробовал дать команду  analogReference(DEFAULT) и после запуска на AREF ноге появилось 0в. Сейчас думаю подпаяться к этой ноге через резистор 5.5кОм на пин "5В" может даст эффект? Ну и конечно поправить команду на EXTERNAL

Не прокатило (( 1023 на пине при 0 напряжении... Вернул все назад... 

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

Может есть смысл как-то поиграть резисторами на keypad'е? например понизить сопротивление, добавив параллельное включение резистора? Или все же надо искать причину в опорном напряжении?

SLKH
Offline
Зарегистрирован: 17.08.2015

b707 пишет:
Питание 5в надо подавать на пин "5в", а не на VIN. В остальном разберитесь, нечему там не работать, скорее всего чепуха не только в схеме, но и у вас в голове...

Нет схемы - нефиг гадать.

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015
const byte KeyPin = A0;

void setup() {
  // put your setup code here, to run once:
  pinMode(KeyPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
 int a = analogRead(KeyPin);
 Serial.println(a);
 delay(1000);
}

Вот код прошивки. Пробую на двух контроллерах, на одном значения 480, на IskraMini 570. Схема простая, питание и GND беру от Ардуины (pin "5В") на KeyPad, а AnalogOut с keypad подключен к A0 ардуины.

Схема

Intelligent Arduino Uno & Mega Tic Tac Toe (Noughts and Crosses) | Trybotics

Только резисторы другие. 3шт по 1кОм и 3шт по 3кОм

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

Короче, я так и не наше причину, но нашел IskraMini с 2016 года выпуска, внешне похожа, но есть отличия если присмотреться. Запустил на ней это же самое - и все заработало! 

12 часов коту под хвост!!! у меня слов нет... Ща им техподдержку нагружу

SLKH
Offline
Зарегистрирован: 17.08.2015

Dr_grizzly пишет:

const byte KeyPin = A0;

void setup() {
  // put your setup code here, to run once:
  pinMode(KeyPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
 int a = analogRead(KeyPin);
 Serial.println(a);
 delay(1000);
}

Вот код прошивки. Пробую на двух контроллерах, на одном значения 480, на IskraMini 570. Схема простая, питание и GND беру от Ардуины (pin "5В") на KeyPad, а AnalogOut с keypad подключен к A0 ардуины.

Схема

Intelligent Arduino Uno & Mega Tic Tac Toe (Noughts and Crosses) | Trybotics

Только резисторы другие. 3шт по 1кОм и 3шт по 3кОм

на одном значения 480, на IskraMini 570 - при нажатии какой кнопки? Или это без нажатия?

Dr_grizzly
Dr_grizzly аватар
Offline
Зарегистрирован: 07.12.2015

При нажатии одной и той же кнопки. Например первая кнопка. Эта схема не факт, что моя, я поискал в инете что-то похожее, где 3 х пиновая система, vcc, gnd, analogout.  

Дело не в схеме клавиш. Я нажимаю одну и ту же кнопку на одной и той же прошивке, на разных контроллерах и получаю разный результат. Вот это меня напрягло. При чем уже 2 контроллера адекватны, и возвращают одни и те же показания (+-10) а третий дырявый... не знаю как его еще назвать

 

Кстати, я обратил внимание, что есть 3 варианта на ноге AREF.

1) Напряжение равно ноге "5В"

2) Напряжение равно 0

3) Косячный вариант - напряжение ниже ноги "5В" на 0.5-0.8В 

А от чего это зависит - я пока не понимаю

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Dr_grizzly пишет:

const byte KeyPin = A0;

void setup() {
  // put your setup code here, to run once:
  pinMode(KeyPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
 int a = analogRead(KeyPin);
 Serial.println(a);
 delay(1000);
}

Вот код прошивки. Пробую на двух контроллерах, на одном значения 480, на IskraMini 570. Схема простая, питание и GND беру от Ардуины (pin "5В") на KeyPad, а AnalogOut с keypad подключен к A0 ардуины.

Схема

Intelligent Arduino Uno & Mega Tic Tac Toe (Noughts and Crosses) | Trybotics

Только резисторы другие. 3шт по 1кОм и 3шт по 3кОм

резисторы не той системы

nik182
Онлайн
Зарегистрирован: 04.05.2015

Заведи на Aref 5 вольт с конденсатором. Что бы правильно цифровалось Аref надо соединить с верхней точкой резисторов клавы.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ua6em пишет:

Dr_grizzly пишет:

На счет сопротивления кнопок обманул, 12 кнопок, с шагом 1кОм. Т.е последние две это 11кОм и 12кОм...

это так не делается, поищи, как именно надо матрицу клавиатуры собирать

b707
Онлайн
Зарегистрирован: 26.05.2017

Dr_grizzly пишет:

12 часов коту под хвост!!! у меня слов нет... Ща им техподдержку нагружу

12 часов фигня. Когда сложный вопрос попадется - бывает и по 2 недели сидишь

Pyotr
Offline
Зарегистрирован: 12.03.2014

Dr_grizzly пишет:

Кстати, я обратил внимание, что есть 3 варианта на ноге AREF.

1) Напряжение равно ноге "5В"

2) Напряжение равно 0

3) Косячный вариант - напряжение ниже ноги "5В" на 0.5-0.8В 

А от чего это зависит - я пока не понимаю

Возможно что-то грузит ногу Ареф. Я бы отпаял ее от платы и померил напряжение на ней. Стало бы понятно дело в МК или обвесе.

Upper
Offline
Зарегистрирован: 23.06.2020

По моему конденсатор выпаять проще и безопасней.