Официальный сайт компании Arduino по адресу arduino.cc
Вопрос к комрадам!!! AnalogRead и левые показания
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 15/09/2020 - 03:50
делаю так
word ValBTN = analogRead(pinBUTTONS);
pinBUTTONS притянут через резисторы по 4,5k и на корпус 22к
ValBTN чета периодически проскакивают разные данные на пине, хз как побороть
Рисуйте схему. По описанию у вас какой-то делитель напряжения?
Ну и тип word не подходит под analogread - там минимум 2 байта нужно, int к примеру.
word это unsigned int, он подходит
Рисуйте схему. По описанию у вас какой-то делитель напряжения?
Да и код целиком неплохо было опубликовать.
word это unsigned int, он подходит
Дед, истину глаголишь, что-то тупанул... Прошу прощения.
собственно ничего сложного (на номиналы резисторов тут не смотреть), да и код ардуины не нужен, собственно сам
analogRead(PinButtons) возвращает иногда не то, что нужно, я думал, что проблемы в наводках и т.п., подключив осцилограф к выходу кнопок, я заметил такую штуку, что бывает возвращает, напряжение, намного меньше, чем оно должно быть, перепробовал кучу кнопок, как новых так и выпаивал с разной техники и на всех такое проскакивает, если со старыми еще понятно, может контакты подокислены и сама кнопка становится резистором из-за плохого контакта, в итоге выдает левое значение, причем одна кнопка может пересекаться по значением с другой кнопкой. Вот думаю как победить
(на номиналы резисторов тут не смотреть), да и код ардуины не нужен,
Если не смотреть на номиналы, код и полную схему, то остается только пожелать удачи в борьбе..
оно при такой схеме включения и должно быть "меньше", чем вам кажется при расчете равномерного ряда сопротивлений. например, первая кнопка выдаст 5в , как и должно быть,
а вот вторая вовсе не 4в, как кажется по схеме, а всего 3.55в
третья - чуть более 2.5в вместо точных 3в...
Если не смотреть на номиналы, код и полную схему...
то непонятно, зачем вообще ТС написал на форум
(на номиналы резисторов тут не смотреть), да и код ардуины не нужен,
Если не смотреть на номиналы, код и полную схему, то остается только пожелать удачи в борьбе..
да какая разница, в номиналах? только условия срабатывания на нажатие кнопок.
тот, что на схеме 50К у меня 22к, те, что 10К у меня 4,7К это как-то сильно помогло? а код, там он по обработки кнопок уже столько хламом оброс, что тут люди будут только в нем разбирацо.
вопрос в том, что, analogRead может читать с пина кнопок, значения, не соответствущие текущей кнопки, видимо по причине бракованных кнопок.
в коде я делал и выборку в течении определенного времени, сортировал их и брал максимальное из этих максимумов делал выборку и из них считал среднее
ну код скину
вот по этому куску кода
видно, что вы ожидаете первую кнопку на 1000, вторую на 750, третью на 500... и все. а где остальные?
сколько кнопок у вас всего?
ну код скину
Ой спасибо, снизошли! Век буду благдарен!
Но позвольте? А где ж в коде обещанный analogRead()?
Но позвольте? А где ж в коде обещанный analogRead()?
да вот тут вот, вот в этой ветке секретный код ТС
http://arduino.ru/forum/programmirovanie/vopros-s-oprosami-pinov-ili-vypolnenie-koda-po-taimeru-millis
там, кстати, обсуждение кончилось тем, что ТС весь форум на юх послал...
Но из той ветки можно сделать важное открытие - кнопок у ТС всего три, из чего следует, что ТС просто не умеет считать
вопрос в том, что, analogRead может читать с пина кнопок, значения, не соответствущие текущей кнопки, видимо по причине бракованных кнопок.
в коде я делал и выборку в течении определенного времени, сортировал их и брал максимальное из этих максимумов делал выборку и из них считал среднее
Во время замыкания или размыкания происходит дребезг и, естественно, показания analogRead() в этот момент будут "не соответствущие текущей кнопки". И не по причине бракованности, а по их механической природе.
Поэтому важно смотреть как именно и за какое время "делал выборку и из них считал среднее"
да вот тут вот, вот в этой ветке секретный код ТС
http://arduino.ru/forum/programmirovanie/vopros-s-oprosami-pinov-ili-vypolnenie-koda-po-taimeru-millis
там, кстати, обсуждение кончилось тем, что ТС весь форум на юх послал...
О как! Да, зря я время на этого перца тратил. Пусть дальше самоудовлетворяется.
люди, ну как вас не посылать, среди вас есть и нормальные люди, но я же писал
подключив осцилограф к выходу кнопок, я заметил такую штуку, что бывает возвращает, напряжение, намного меньше, чем оно должно быть
причем, дребезг видно, только кнопку держишь, она должна 4.1 вольта давать, а по факту 3.7
ах да, там еще
вот по этому куску кода
if (DATA.VAL <= 1023 && DATA.VAL >= 950) { //ok
ProcessButtonMenu(1);
return DATA;
} else
if (DATA.VAL <= 750 && DATA.VAL >= 700) { //ok
ProcessButtonMenu(2);
return DATA;
} else
if (DATA.VAL <= 520 && DATA.VAL>= 490) {
ProcessButtonMenu(3);
return DATA;
}
видно, что вы ожидаете первую кнопку на 1000, вторую на 750, третью на 500... и все. а где остальные?
сколько кнопок у вас всего?
какая разница, сколько их я же писал, что глюки, нафига делать обработку для большего числа кнопок?
на буржуйских форумах воду никто не льет или молчат или пишут по существу
если вы хотите реализовать кнопки на аналоговых пинах где-то здесь на форуме я приводил и схему и код, как это надо делать, тема была про устройство согласования LC
кнопку держишь, она должна 4.1 вольта давать, а по факту 3.7
какая разница, сколько их я же писал, что глюки, нафига делать обработку для большего числа кнопок?
послушайте, Signalsus, по приведенному коду видно, что вы не разбираетесь в схемах и не умеете считать. Поэтому не ваше дело, зачем мне знать число кнопок. Я знаю, где у вас ошибка. Если хотите, чтобы я дал вам решение - четко отвечайте на вопросы. А нет - идите сами куда подальше, спрашивайте на форумах. где с вами будут возиться как с маленьким
кнопку держишь, она должна 4.1 вольта давать, а по факту 3.7
какая разница, сколько их я же писал, что глюки, нафига делать обработку для большего числа кнопок?
послушайте, Signalsus, по приведенному коду видно, что вы не разбираетесь в схемах и не умеете считать. Поэтому не ваше дело, зачем мне знать число кнопок. Я знаю, где у вас ошибка. Если хотите, чтобы я дал вам решение - четко отвечайте на вопросы. А нет - идите сами куда подальше, спрашивайте на форумах. где с вами будут возиться как с маленьким
я уже все зделал, ответ нормальный?
я уже все зделал, ответ нормальный?
ну и замечательно, тем более что проблема была ерундовой. Поняли, в чем была ошибка-то, или просто методом тыка цифры подобрали?
Если кнопок надо много то тут аж на 12 кнопок на одном аналоговом пине
А если быть ещё наглее (и знать в совершенстве англицкий), то на буржуйских форумах можешь ЗАСТАВИТЬ написать код за тебя и силой мысли поправить схему (при необходимости).
А так то, я ничего против не имею. Если знаешь где найти грибы (или ягоды) зачем лесника пытать?!