Официальный сайт компании Arduino по адресу arduino.cc
Конвертирование получаемых данных с дальномера Sharp GP2Y0A21 (10-80cm) в сантиметры
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 05/01/2012 - 18:37
// Arduino Mega 1280 // Sharp GP2Y0A21 10-80cm // Конвертирование получаемых данных с дальномера в сантиметры // автор Fibber a.fedukin@gmail.com int irPin = A15; int currentDist = 0; int distMetr = 0; void setup() { pinMode (irPin, INPUT); Serial.begin(9600); } void loop() { currentDist = analogRead(irPin); //данные с датчика int i = constrain(currentDist, 40, 650); //ограничиваем диапазон выдаваемых значений int z = (6787/(i-3))-4; //невероятная формула (Интернет) int distMetr = constrain(z, 10, 80); //задаем ограничения по реальному диапазону //во избежании ошибочных данных Serial.println(distMetr); //вывод на экран для наглядности delay(500); }
Спасибо. Формула действительно неочевидная. А насколько точны и стабильны возвращаемые результаты на практике?
Все подобранные константы могут варьироваться для разных датчиков. .. .
Эти параметры подходят для вышеуказанного ИРдатчика идеально, погрешность +/-2-3см.
?При выводе на экран окончательного результата о расстоянии, иногда бывают скачки (шумы?). .. .
не очень нравится такая ситуация. .. .что делать? откуда беруться?
Может ли Мне кто-то рассказать(личный опыт) о поведении данных с датчика: в закрытом помещении vs улица,
солнечный день vs пасмурно vs ночь, туман и т.д.
Необходимо ли коррекция? с помощью фотоэлемента, термистора, датчика влажности. .. .
Когдато читал об этих датчиках. Для них есть библиотека: robot-develop.org/archives/1043, ну и про сами датчики roboforum.ru/wiki/%D0%98%D0%9A-%D0%B4%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D1%8B_SHARP
Результат с датчиков нелинеен, но формула в библиотеке линеаризует значения
// Попробывал библиотеку:
// Выводит на экран что типо 15 - когда больше 80см и 12 - примерно 10см
//В чем проблема?