GP2D12
ИК Дальномеры Sharp GP2D12 и GP2Y0A21
Итак немного подробнее о данных дальномерах. Общие данные для всей серии дальномеров Sharp.
Характеристики:
- Минимальное расстояние: 10 см
- Максимальное расстояние: 80 см
- Напряжение питания: 4.5 - 5.5В
- Уровень сигнала: 3.1 - 0.4В
- Потребление типовое: 33мА
- Потребление максимальное: 50мА
- Полный цикл измерения: 39 ms
- Диаметр луча GP2D12: 6 см на удалении 80 см, данные требуют проверки
- Диаметр луча GP2Y0A21: 12 см на удалении 80 см, данные требуют проверки
Выход с дальномера аналоговый с нелинейной характеристикой(ссылка).
Для получения линейной характеристики применяется либо табличный метод либо нормализация(ссылка). Формула нормализации после преобразования (см. ссылки)
<math>R = \frac{m'}{V + b'} - k</math>
Применение для 10 bit АЦП (0..1023) по данным Acroname:
- m' = 6787
- b' = − 3
- k = 4
Но то ли датчики поменялись с тех пор или процессора на 3 вольта по другому обрабатывают АЦП но получаем след. результат
Если взять (спасибо DeaD'у)
- m' = 10000
- b' = − 40
- k = 0
Пример кода на Bascom-AVR
<source lang="vb">
Function Sharp_d12(byval Adc_chanel As Byte) As Byte
Const M = 10000
Const K = 0
Const B = -40
Local Range As Word , Vout As Word , Vout1 As Word
Start Adc : Vout = Getadc(adc_chanel) 'Sharp connected for example to PA=0(ADC0) Stop Adc If Vout < 160 Then ' if les 160 its out of range Sharp_d12 = 0 Else Vout1 = Vout + B ' (Vout+B) Range = M / Vout1 ' M/(Vout+B) Sharp_d12 = Range - K ' Range = M/(Vout+B)-K End If
End Function </source>