Мапирование аналаговых датчиков
- Войдите на сайт для отправки комментариев
Ср, 17/02/2016 - 22:17
Друзья,
передо мной стоит задача, контролировать расстояние до объекта в зависимости высоты объекта. Т.е. например при высоте объекта 1 метр, мне необходимо держать датчик расстояния от него 20 см, при высоте объекта 30 см, датчик должен быть в 40 см и т. д .
Проблема в том, чтобы перевести значения в сантиметрах обратно вольты, т.к. на аналаговом дальномере (модель GP2Y0A021 компании Sharp) удельные характеристики меняются черт пойми по какому закону и не пропорционально.
Например, 40 см это около 0.75 В, а 10 см это 2.25 В. (фото прилагается)
Возможно есть способы чтобы описать эту фунцкию или еще что нить ?
Буду благодарен за помощь!
Ну хоть какие-нибудь есть предложения?
Есть гугель.....
https://github.com/guillaume-rico/SharpIR
Есть предложение разбить кривую на прямолинейные отрезки, координаты в массив и между точками мапом.
Ну хоть какие-нибудь есть предложения?
Можно ли поподробнее описать саму задачу, а не тот кусок, который тебе нужно решить?
Навскидку, нужный тебе нисходящий участок кривой можно аппроксимировать параболой (квадратным! трехчленом!) , но для хорошего приближения и расчета нужно поточнее знать твою кривую. А еще лучше-понять саму задачу.
Снял 8 точек с твоего графика и получил две формулы зависимости расстояния (L) от напряжения (V).
1. Кубический многочлен.
L = -11.584*V*V*V + 75.941*V*V-163.46*V+126.4 (Корр=0,991)
2. Степенная функция. Она получше, но я не знаю, как в Arduino или С/С++ возводить в отрицательную степень :(
L = 27.159*V(степень -1,222) (Корр = 0,9973)
И пусть поправит меня мудрейший!
Вот они формулы, из библиотеки :
1080 это тот который 10-80 сантиметров
20150 - тот что 20 см- полтора метра
А это я подправлял под себя:
Только учтите без РЦ цепочки на входе АЦП будете изредка получать измерения "совсем не в дугу".
Я поставил в ряд 8 датчиков, у каждого фильтр с тау секунда,
но всё равно пришлось считывать 10 раз подряд и если эти 10 примерно одинаковые значит сигнал похож на правду. Это видно в строках с моими комментариями
Скажите пожалуйста,
правильно ли я понял на счет РЦ - резистор между аналоговым выходом датчика и аналоговым пином ардуино, а конденсатор между аналоговым выходом датчика и землей? ( как правильно подобрать их характеристики?)
Cпасибо за pow() ;)))
И не так уж сильно я ошибся с расчетом коэффициентов: 27.159 против 27.728 и 1.222 против 1.2045
Да Олег, очень точно вышло)
http://easyelectronics.ru/kondensator-i-rc-cepochka.html
http://tel-spb.ru/rc.html
47 кОм, 10 мкФ, тау 0.47 секунды , частота среза 0.33 Герца годится?
Понял, спасибо большое за помощь!
Единственное, правильно ли я понял схему подключения РЦ: