Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 1000 руб.
Radio-Sale
2. Регулируемый паяльник 60 Вт
Паяльник
3. 600 руб.
От пользователей
4. Тестер компонентов LCR-T4
Паяльник

Похожие статьи:


Ультразвуковой дальномер

Приветствую всех. Попал мне в руки недавно ультразвуковой датчик, который измеряет расстояние до объекта - US-100. Подобную вещь можно приобрести на торговых интернет площадках. На рынках своего города таких игрушек в продаже не удалось найти. Было решено построить схему на основе такого датчика на распространенном микроконтроллере AVR ATmega8. Назначение устройства состоит в измерении расстояния до объекта, а также измерения температуры. К слову о температуре. Модель US-100 это ультразвуковой датчик с температурной компенсацией. Скорость распространения звуковой (ультразвуковой) волны при разных температурах будет отличаться. Измерение датчика основано на времени прохождения звуковой волны от объекта до приемника датчика. Температурная компенсация, скорее всего не полностью, устранит погрешность вызванную температурой окружающей среды.

При рассмотрении печатной платы, можно сделать заключение об источнике измерения температуры: термометр находится в микросхеме или измерение температуры идет за счет диода, расположенного на краю платы. При измерении температуры диодом используется его P-N переход и связано это с температурным коэффициентом проводимости. С большой уверенностью это второй вариант, так как при работе ниже приведенной схемы при касании пальцами этого диода, температура изменяется. Так что при измерении лучше всего стараться руками не трогать датчик, чтобы получить более точные данные о расстоянии.

Для измерения датчик использует 2 головки, напоминающие большой микрофон или маленький динамик. По сути это и то, и то. Одна из головок излучает ультразвуковую волну, вторая принимает отраженный сигнал ультразвуковой волны. По времени прохождения определяется пройденное расстояние. По видимому ограничение измеряемого расстояния в 4,5 метра обусловлена мощностью излучателя.

Что относительно общения датчика с микроконтроллером, модель US-100 имеет два возможных интерфейса, выбираемые перемычкой на задней стороне платы датчика. Если перемычка стоит выбран интерфейс UART, если перемычка снята, используется интерфейс или режим работы GPIO. В первом случае для общения с микроконтроллером используется либо аппаратные средства микроконтроллера, либо программные. Во втором случае принимать и передавать данные придется только вручную. В схеме устройства задействуем более простой режим работы с использованием UART интерфейса.

Необходимо уточнить нюансы по распиновке и подключению датчика к микроконтроллеру. Обычно при передачи данных по UART линии Rx и Tx подключаются крест накрест - Rx на Tx, а Tx на Rx. Данный ультразвуковой датчик же нужно подключать в соответствии с подписанными контактами на печатной плате Rx на Rx, а Tx на Tx. Китайцы отожгли, согласен. Прежде чем это определилось, пришлось долго мучиться и в конце концов придти к этому. Итак, при работе по UART, для инициализации одного измерения расстояния ультразвуковому датчику US-100 необходимо на вывод Trig/Tx передать значение 0x55, что соответствует символу "U". В ответ датчик передаст два байта информации о расстоянии на вывод Echo/Rx - первый байт - это старшие 8 бит, второй байт - младшие 8 бит. Единицы измерения расстояния - миллиметры. Чтобы два байта перевести в одно значение расстояния, необходимо первый байт умножить на 256 и прибавить второй байт. Необходимо делать таким образом, потому что при переполнении младшего байта, старший байт увеличивается на единицу. Чтобы вывести текущее значение температуры окружающей среды, необходимо передать значение 0x50, что соответствует символу "P". В ответ датчик передаст значение температуры. Фактическое значение температуры будет равно полученному значению от датчика отнять 45.

Параметры ультразвукового датчика US-100:

  • напряжение питания - 2,4 - 5,5 вольт постоянного напряжения
  • потребляемый ток в режиме ожидания - 2 мА
  • рабочая температура - минус 20 - плюс 70 С
  • угол обзора - 15 градусов
  • интерфейс - GPIO или UART
  • измеряемое расстояние - от 2 см до 450 см
  • погрешность - плюс минус 3 мм + 1%

Конфигурация UART для датчика: 9600 baud rate, 8 data bits, parity: none, 1 stop bit.

Перейдем к схеме устройства.

Схема ультразвукового дальномера на AVR

Схема ультразвукового дальномера построена на основе микроконтроллера Atmega8 и ультразвуковом датчике US-100. Питание схема берется от линейного стабилизатора напряжения L7805, его можно заменить отечественным аналогом КР142ЕН5А, конденсаторы в обвязке стабилизатора обязательны, хотя может работать и без них. Некоторые стабилизаторы просто не запускаются без конденсаторов. Линейный стабилизатор можно заменить на импульсный, например MC34063 или LM2576, но придется немного изменить схему согласно подключению импульсных стабилизаторов в схеме. Конденсаторы С5-С7 необходимы для обеспечения стабильности работы микроконтроллера и датчика. Номиналы всех конденсаторов можно варьировать в разумных пределах. Резистор R2 необходим для предотвращения самопроизвольного перезапускания микроконтроллера и служит подтяжкой положительного питания на вывод reset. Резистор R1 регулирует контраст LCD-дисплея. В качестве информационной панели был взят жидкокристаллический (ЖК или по другому LCD) экран SC1602, 2 строки по 16 символов на основе контроллера HD44780. Заменить LCD-дисплей можно на любую другую модель на базе контроллера HD44780 с таким же количеством строк и символов в строке или больше. На печатной плате LCD-дисплея есть возможность задействовать подсветку экрана двумя способами - либо при помощи допаивания резистора и перемычки на самой плате экранчика или при помощи специальных выводов, обычно обозначенных как "А" и "К". Анод и катод соответственно. К ним через токоограничительный резистор подключается напряжение питания схемы 5 вольт. В данной схеме задействован первый способ, поэтому на схеме не обозначено. Вместо тактовых кнопок S1 - S5 можно использовать любые другие кнопки. Светодиод LED1 можно использовать любой подходящий по цвету или заменить его на транзистор и управлять какой-либо другой схемой в зависимости от превышения дистанции от датчика. В зависимости от примененного типа транзисторов (P-N-P или N-P-N) при превышении лимита дистанции или расстояния выход будет иметь положительное или отрицательное напряжение, то есть при высоком логическом сигнале микроконтроллера транзистор N-P-N будет открыт, а транзистор P-N-P закрыт. В прошивку микроконтроллера заложен параметр, при котором при превышении обозначенного лимита расстояния на вывод PB0 будет подаваться высокий логический уровень напряжения. В данной схеме светодиод просто сигнализирует о превышении. Данный сигнал дублируется на LCD-дисплее подчеркиванием данный о лимите дистанции. Данный параметр можно регулировать кнопками S1, S2. При нажатии происходит увеличение или уменьшение на 10 мм. Информация о дистанции на дисплей выводится также в миллиметрах. Информация о температуре окружающей среды выводится на дисплей в градусах Цельсия. К статье прилагается два варианта прошивок: 1) непрерывное измерение параметров дистанции и температуры (интервал примерно 0,2 секунды), при этом кнопки S4, S5 не задействуются, 2) при нажатии кнопок S4, S5 происходит однократный запрос к датчику на измерение температуры и расстояния. Видео к статье сделано с прошивкой номер 1. Для программирования микроконтроллера необходимо прошить фьюз биты:

Новичкам рекомендую пользоваться шестнадцатеричными значениями фьюз битов HIGH и LOW, чтобы не напортачить с расстановкой галочек. Скриншот из AVRstudio (есть отличия от дудки, sina prog и других программ для прошивки микроконтроллеров). Если Вы используете программы для прошивки микроконтроллеров AVR, в которых нет ввода параметров фьюзов, то можно воспользоваться фьюз калькуляторами для перевода галочек в шестнадцатеричную форму и наоборот.

Схема была собрана и проверена на макетной плате для Atmega8:

 

Конструктивно схему можно оформить, например, в виде пистолета с лазерным указателем направления ультразвукового датчика. Единственно ограничено измеряемое расстояния, при превышении которого погрешность резко возрастает. Также ограничение касается положения и размера предмета, до которого измеряется расстояние - расстояние до слишком мелких объектов или объектов находящихся под большим углом будет искажено. Идеальное сочетание достаточно большие предметы, находящиеся перпендикулярно направлению датчика. Погрешность измерений примерно соответствует заявленным производителем. Данное устройство при дальнейшем развитии можно использовать как обнаружитель препятствий, наподобие парктроника в комнатных условиях, так как на улице ультразвуковые головки данного датчика будут забиваться грязью.

Предлагайте свои идеи и варианты применения, наиболее интересные идеи в будущем могут быть реализованы.

К статье прилагаю 2 варианта HEX прошивок для МК, проект в Proteus (версия 7.7, ультразвукового датчика US-100 в базе proteus'а нет, но задействован UART отладчик), а также небольшое видео, демонстрирующее работу схемы.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК AVR 8-бит
ATmega8
1 Поиск в FivelВ блокнот
VR1 Линейный регулятор
L7805AB
1 Поиск в FivelВ блокнот
HG1 LCD-дисплейSC16021 На базе HD44780Поиск в FivelВ блокнот
U1 УЗ-датчикUS-1001 Поиск в FivelВ блокнот
R1 Подстроечный резистор10 кОм1 3296W-1-103LFПоиск в FivelВ блокнот
R2 Резистор
10 кОм
1 0.25 ВтПоиск в FivelВ блокнот
R3 Резистор
390 Ом
1 0.25 ВтПоиск в FivelВ блокнот
C1, C4 Конденсатор220 мкФ2 16-25 ВПоиск в FivelВ блокнот
C2, C3, C5, C6 Конденсатор100 нФ4 Поиск в FivelВ блокнот
С7 Конденсатор10 мкФ1 16-25 ВПоиск в FivelВ блокнот
LED1 Светодиод1 Поиск в FivelВ блокнот
S1-S5 Тактовая кнопкаTC-A1095 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (6) | Я собрал (0) | Подписаться

0
Николай #
Я недавно собрал вашу схему и у меня появилась небольшая проблема...
В прошивке с фиксацией данных прибор делает измерения при 10-20 нажатие и при этом температура обновляется. И напростой высвечивается 0065мм, а потом обновляется...
Подскажите в чем может быть проблема?
Ответить
0

[Автор]
Gauss #
Электроника наука о контактах - проверить, смыть флюс, убедиться, что контроллер не перегрет во время пайки и не вышел из строя, прозвонить дорожки, перепрошить и перепроверить фьюзы
Ответить
0
Сергей #
А какие фуз галочки в пони прог поставить?
Ответить
0

[Автор]
Gauss #
Пони прогом не пользуюсь, воспользуйтесь калькулятором фьюзов для перевода в галочки
Ответить
0
Сергей #
Я что то не совсем понимаю как подключаются в цепь питания конденсаторы С6 и С7 и какую функцию выполняют. Помогите пожалуйста разобраться непрофессионалу
Ответить
0

[Автор]
Gauss #
Цепь питания, типа дополнительно к С3-4, но лучше поближе к МК
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Конструктор - Гитарная педаль Remote Delay 2.5 Бокс для хранения компонентов
вверх