| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| ru:examples:sensor:ir_distance [2010/12/16 07:35] – eduardtlmk | ru:examples:sensor:ir_distance [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
|---|
| [{{ :examples:sensor:ir_distance:sensor_ir_distance_gp2y0a21yk_picture.jpg?240|Sharp GP2Y0A21YK}}] | [{{ :examples:sensor:ir_distance:sensor_ir_distance_gp2y0a21yk_picture.jpg?240|Sharp GP2Y0A21YK}}] |
| |
| Для измерения расстояния до объекта существуют оптические датчики, работающие на методе триангуляции. Самые распространенные из них - это работающие на длине волны, инфракрасные (на английском языке //infra-red//, сокращенно IR) датчики расстояния с выходным аналоговым напряжением, производимые фирмой Sharp. У датчиков Sharp имеется IR LED с линзой, который излучает узкий световой луч. Отраженный от объекта луч направляется через другую линзу на позиционно-чувствительный фотоэлемент (на английском языке //position-sensitive detector//, сокращенно PSD). От местоположения падающего на PSD луча, зависит его проводимость. Проводимость преобразуется в напряжение и, к примеру, дигитализируя его аналого-цифровым преобразователем микроконтроллера, можно вычислить расстояние. Ниже приведенный рисунок | Для измерения расстояния до объекта существуют оптические датчики, работающие на методе триангуляции. Самые распространенные из них - это работающие на длине волны, инфракрасные (на английском языке //infra-red//, сокращенно IR) датчики расстояния с выходным аналоговым напряжением, производимые фирмой Sharp. У датчиков Sharp имеется IR LED с линзой, который излучает узкий световой луч. Отраженный от объекта луч направляется через другую линзу на позиционно-чувствительный фотоэлемент (на английском языке //position-sensitive detector//, сокращенно PSD). От местоположения падающего на PSD луча, зависит его проводимость. Проводимость преобразуется в напряжение и, к примеру, дигитализируя его аналого-цифровым преобразователем микроконтроллера, можно вычислить расстояние. Ниже приведенный рисунок показывает путь отраженного луча на различных расстояниях. |
| | |
| показывает путь отраженного луча на различных расстояниях. | |
| |
| [{{ :examples:sensor:ir_distance:sensor_ir_distance_principle.png?240|Путь светового луча IR измерителя расстояния}}] | [{{ :examples:sensor:ir_distance:sensor_ir_distance_principle.png?240|Путь светового луча IR измерителя расстояния}}] |
| |
| Далее приведена записанная в библиотеке Домашней Лаборатории функция перевода значения ADC в сантиметры. Линейный и свободный член, а также корректирующая константа не вписаны жестко в функцию, но они задаются объектами параметра структуры IR датчика расстояния. Сохраняя параметры отдельно в константе, есть возможность позже просто добавить в программу новые модели IR датчиков расстояния. | Далее приведена записанная в библиотеке Домашней Лаборатории функция перевода значения ADC в сантиметры. Линейный и свободный член, а также корректирующая константа не вписаны жестко в функцию, но они задаются объектами параметра структуры IR датчика расстояния. Сохраняя параметры отдельно в константе, есть возможность позже просто добавить в программу новые модели IR датчиков расстояния. |
| ~~PB~~ | <pagebreak> |
| <code c> | <code c> |
| // | // |
| Для создания перевода нужно вызвать функцию //ir_distance_calculate_cm// первый параметр которого - это параметр объекта IR датчика расстояния, а второй - значение ADC. Функция возвращает вычисленное расстояние в сантиметрах. При неправильном расчете (т.е. при неестественном значении ADC) возвращает функция -1. Использование IR датчика расстояния и функции преобразования демонстрирует следующая программа. Используется буквенно-цифровой LCD экран, где отображаются результаты измерения. При неестественном расстоянии отображается вопросительный знак. | Для создания перевода нужно вызвать функцию //ir_distance_calculate_cm// первый параметр которого - это параметр объекта IR датчика расстояния, а второй - значение ADC. Функция возвращает вычисленное расстояние в сантиметрах. При неправильном расчете (т.е. при неестественном значении ADC) возвращает функция -1. Использование IR датчика расстояния и функции преобразования демонстрирует следующая программа. Используется буквенно-цифровой LCD экран, где отображаются результаты измерения. При неестественном расстоянии отображается вопросительный знак. |
| |
| ~~PB~~ | <pagebreak> |
| |
| <code c> | <code c> |
| signed short value, distance; | signed short value, distance; |
| char text[16]; | char text[16]; |
| | |
| | // External sensor selection |
| | pin ex_sensors = PIN(G, 0); |
| | pin_setup_output(ex_sensors); |
| | pin_set(ex_sensors); |
| | |
| // Настройка LCD экрана | // Настройка LCD экрана |