====== Датчики ====== //Связан с модулем: [HW] [[ru:hardware:homelab:sensor]]// Эта библиотека содержит функции использования датчиков. ===== Типы данных ===== * **//ir_distance_sensor//** \\ Параметры структура расчета расстояния инфракрасного датчика. Формула расчет a / (ADC + b) - k. Члены структуры: * //a// - делимое. * //b// - свободный член. * //k// - корректирующая константа. ===== Константы ===== * **//ir_distance_sensor GP2Y0A21YK//** - Параметры формулы расчета датчика расстояния Sharp GP2Y0A21YK. ===== Функции ===== * **//signed short thermistor_calculate_celsius(unsigned short adc_value)//** \\ Расчет температуры термистора в градусах Цельсия из значения АЦП. Функция основана на таблице перевода. Параметры: * //adc_value// - Значение перевода АЦП. * Выдает температуру в градусах Цельсия от -20 до 100 градусов. * **//signed short ir_distance_calculate_cm(ir_distance_sensor sensor, unsigned short adc_value)//** \\ Функция преобразования выходного напряжения IR датчика расстояния в сантиметры из значения АЦП. * //sensor// - Расчет параметров датчика расстояния. * //adc_value// - Результат преобразования АЦП (10 бит со сравниваемым напряжением +5 V). * Выдает расстояние в сантиметрах или -1, если не удается рассчитать. * **//unsigned short ultrasonic_measure_srf04(pin trigger, pin echo)//** \\ Функция измерения расстояния ультразвуковым датчиком расстояния SRF04. Функция генерирует пусковой сигнал и измеряет время прибытия отраженного сигнала. На основе измеренного времени высчитывается расстояние до объекта. Измерение занимает до 36 ms. Функция предпочитает тактовую частоту микроконтроллера равную 14.7456 MHz. Параметры: * //trigger// - вывод переменной пускового сигнала. * //echo// - вывод переменной отраженного сигнала. * Выводит расстояние в сантиметрах или 0, если измерение не удалось. * **//unsigned short ultrasonic_measure_srf05(pin trigger_echo)//** \\ Функция измерения расстояния ультразвуковым датчиком расстояния SRF04. Функция генерирует комбинированный пусковой сигнал и измеряет на том же выводе время прибытия отраженного сигнала. На основе измеренного времени высчитывается расстояние до объекта. Измерение занимает до 36 ms. Функция предпочитает тактовую частоту микроконтроллера равную 14.7456 MHz. Параметры: * //trigger_echo// - Вывод переменной пуск/отражение. * Выводит расстояние в сантиметрах или 0, если измерение не удалось. ===== Пример ===== #include // Управляющий вывод ультразвукового измерителя расстояния pin pin_triggerecho = PIN(G, 0); int main(void) { unsigned short adc_value = 400; // показательное значение signed short distance; // Преобразование значения АЦП в сантиметры IR датчика distance = ir_distance_calculate_cm(GP2Y0A21YK, adc_value); // Измерение ультразвуковым датчиком расстояния distance = ultrasonic_measure_srf05(pin_triggerecho); }