ДонНТУ   Портал магистров

Содержание

Введение

Тахометр – это полезный инструмент для подсчета RPM (оборотов в минуту) колеса или всего, что вращается. В своей работе я буду использовать тахометр на основе ИК передатчика и приемника. В курсовой работе мы рассмотрим как использовать ИК-передатчик и приемник для изготовления тахометра с применением Arduino, результат которого будет отображается на ЖК-дисплее 16х2. Создание и тестирование схемы тахометра будет происходить в программе Proteus .

Proteus мощнейшая система автоматизированного проектирования, позволяющая виртуально смоделировать работу огромного количества аналоговых и цифровых устройств. Программный пакет Proteus VSM позволяет собрать схему любого электронного устройства и симулировать его работу, выявляя ошибки, допущенные на стадии проектирования и трассировки. Программа состоит из двух модулей. ISIS – редактор электронных схем с последующей имитацией их работы. ARES – редактор печатных плат, оснащенный автотрассировщиком Electra, встроенным редактором библиотек и автоматической системой размещения компонентов на плате. Кроме этого ARES может создать трехмерную модель печатной платы. Proteus VSM включает в себя более 6000 электронных компонентов со всеми справочными данными среди которых есть Arduino. .

1. Цель и задачи исследования, планируемые результаты

Целью данного проекта является ознакомление с программой Proteus, создание системы с одним входом и одним выходом. На входе устройства присутствует сигнал, изменяющийся с высокого (+5В) на низкий (+0В) уровень при нарушении связи. Согласно этому сигналу, Arduino будет увеличивать значение внутреннего счетчика. Потом проводится дополнительная обработка и расчет, и по прерыванию триггера на ЖК-дисплей будет выводиться рассчитанное RPM.

Материалы:

Для связи мы будем использовать ИК-луч от ИК-светодиода, включенного через низкоомный резистор для яркого свечения. В качестве приёмника мы будем использовать фототранзистор, который при отсутствии света ИК-светодиода закрывается. Возьмем для примера компьютерный вентилятор. Он будет размешен между ИК-передатчиком и приёмником и включен. ИК-приёмник включенный через транзисторную схему, будет генерировать прерывания. Для вывода результата будет использоваться Arduino LCD интерфейс, поэтому мы можем вывести окончательное значение RPM на ЖК-дисплей.

Список элементов
  1. Arduino UNO.
  2. 16x2 LCD.
  3. Макетная плата.
  4. Подстроечный резистор 5 кОм.
  5. Перемычки
  6. SIP разъёмы
  7. 2x 2N2222 NPN транзистор
  8. Компьютерный вентилятор
  9. Резистор 15 кОм или 16 кОм
  10. Резистор 100 кОм
  11. Резистор 10 Ом
  12. Инфракрасный светодиод
  13. Фототранзистор
Принципиальная схема тахометра

Рисунок 1 – Принципиальная схема тахометра

Arduino UNO Это плата Arduino, которую мы будем использовать для обработки импульсов от прерывания ИК-луча, которые сообщают о нахождении лопасти компьютерного вентилятора между приемником и датчиком. Arduino будет использовать эти импульсы наряду с таймером, чтобы вычислить RPM вентилятора.

ЖК-дисплей 16x2 После того, как Arduino вычислило RPM, эта значение будет отображаться на дисплее в понятном для пользователя виде.

Подстроечный резистор 5 кОм Этот подстроечный резистор будет использоваться для регулировки контрастности ЖК-дисплея 16x2. Он дает аналоговое напряжение в диапазоне от 0 до +5В, позволяя настроить яркость ЖК-дисплея.

Инфракрасный светодиод и Фототранзистор Фототранзистор открывается, когда мощный ИК-свет падает на него. Поэтому, когда ИК-светодиод горит, он держит фототранзистор открытым, но если ИК-светодиод закрывается например, лопастью вентилятора, то фототранзистор закрывается.

2N3904 и 2N3906 Эти транзисторы используются для преобразования уровня сигнала, с целью обеспечения выходных импульсов с фототранзистора для Arduino, в которых нет никаких напряжений кроме +0 и +5В.

2. Технологическая часть

Подсчет RPM при помощи Arduino.

Так как мы собираемся подсчитать RPM компьютерного вентилятора, мы должны понимать, что для подсчета мы используем прерывание ИК-луча. Это очень удобно, но мы должны учитывать, что у компьютерного вентилятора 7 лопастей. Это значит, 7 прерываний равно 1 обороту.

Если мы будем отслеживать прерывания, мы должны знать, что каждое седьмое прерывание означает, что только что произошел 1 полный оборот. Если мы отследим время, необходимое для полного оборота, то мы легко вычислим RPM.

Время 1-го оборота = P * (µS/оборот) RPM = кол-во оборотов/мин = 60 000 000 * (µS/мин) * (1/P) = (60 000 000 / P) * (кол-во оборотов/мин)

Для расчета RPM мы будем использовать формулу приведенную выше. Формула точная, и точность зависит от того, насколько хорошо Arduino сможет отслеживать время между прерываниями и просчитывать количество полных оборотов.Есть две основных части кода, которые показаны и подробно описаны ниже:

  1. Основной цикл обновления ЖК-дисплея
  2. Обновление времени прерываний

В основном цикле считаются обороты и обновления ЖК-дисплея. Поскольку основной цикл это гигантский while(1) цикл, то он будет работать всегда, RPM считаться, а ЖК-дисплей обновляться несколько раз в секунду. Функция в прерывании подсчитывает время между прерываниями ИК, поэтому считать RPM можно в основном цикле. Для примера мы возьмем компьютерный вентилятор, он имеет 7 лопастей, так что это тахометр предназначен для работы только с такими вентиляторами. Если вентилятор или другое устройство дает только 4 импульса за оборот, нужно изменить в коде "(time*4)".

Код программы тахометра

Рисунок 2 – Код программы тахометра

Далее необходимо сохранить hex- файл. Возвращаемся в программу Proteus, открываем блок Ардуино и указываем путь hex-файла

Загрузка программы в виртуальную Arduino UNO

Рисунок 3 – Загрузка программы в виртуальную Arduino UNO

Собираем остальные элементы схемы. Так как в программе нету возможности прерывать свет лопастями вентилятора между ИК светодиодом и фототранзистором, эти прерывания мы будем формировать подавая сигналы определенной частоты на ИК светодиод от генератора импульсов Gen. Для симуляции работы вентилятора задаем импульсы в генераторе импульсов Gen Возьмем для примера частоту 70 Гц.

Окно редактирования параметров генератора импульсов

Рисунок 4 – Окно редактирования параметров генератора импульсов

Симулируем программу. Программа работает верно, для проверки воспользуемся простой формулой 70 Гц делим на количество лопастей 7. Получаем 10 об/сек или 600 об/мин.
Результат моделирования собранной системы

Рисунок 5 – Результат моделирования собранной системы

3 Создание печатной платы

В рабочем окне открывается рабочая область на которой должна быть перенесена наша схема. Но в моем случае в библиотеке нету некоторых элементов, поэтому будем добавлять их вручную. Выбираем пункт Библиотека далее выбрать корпус/символ. И чтобы узнать какие элементы в библиотеке нам нужно искать возвращаемся в ISIS. Двойным кликом левой кнопки мыши выбираем элемент, например дисплей. Нас интересует строка PCB Footprint.Копируем название CONN-DIL14 и вставляем в поиске библиотеки. Нашло посадочное место для нашего LCD дисплея, и это посадочное место, как и остальные элементы, сразу реализовано в 3D. Вот так оно выглядит в 3D.Таким же методом находим и добавляем остальные элементы схемы. После того как добавлены все элементы нужно расположить элементы. Расположение элементов требует учитывать множество нюансов. Примером такого нюанса может быть расположение рядом двух греющихся элементов которые будут хуже остужаться что может послужить быстрому выходу из строя этих элементов. Зачастую это обнаруживается на практике.

Далее требуется сделать трассировку, делать ее буду вручную. На боковой панели выбираем Дорожки и соединяем элементы согласно схеме.Так как при подключении дисплея к ардуино дорожки пересекались пришлось задействовать 2 слой печатной платы (красные дорожки) чтобы исключить эти пересечения.

Последним этапом будет добавление самой платы. На боковой панели выбираем блок 2D - графика Прямоугольник , и внизу в выпадающем меню параметр Board Edge. Требуется для создания контура платы.

трассировка печатной платы

Рисунок 6 – трассировка печатной платы

Результат получившейся платы в 3D
результат получившейся платы в 3D – режиме (вид сверху)

Рисунок 7 – результат получившейся платы в 3D – режиме (вид сверху)

результат получившейся платы в 3D – режиме (вид снизу)

Рисунок 8 – результат получившейся платы в 3D – режиме (вид снизу)

Выводы

В данном курсовом проекте нами было разработано и исследовано устройство тахометра на основе платы Arduino, ИК светодиода и фотоприемника . В программе Proteus ISIS мы смоделировали устройство тахометра, убедились в правильной работоспособности нашего устройства. Разобрались с принципом создания печатной платы на примере устройства тахометра в программе Proteus ARES.

Список источников

  1. Arduino COPYRIGHT: [Электронный ресурс]., 2011. Режим доступа: http://arduino.ua/ru/hardware/Uno. (Дата обращения: 25.11.2016).
  2. Proteus VSM:[Электронный ресурс].,2007. Режим доступа: http://cxem.net/software/proteus.php.(Дата обращения: 25.11.2016).
  3. Тахометр на ардуино:[Электронный ресурс]., 2014. Режим доступа: http://cxem.net/arduino/arduino66.php/.(Дата обращения: 29.12.2016).
  4. Трассировка печатных плат:[Электронный ресурс].,2014. Режим доступа: http://www.texnic.ru/program/007/009a.html. (Дата обращения: 29.12.2016).
  5. Подключение дисплея к Ардуино, подключение библиотеки LCD:[Электронный ресурс]., 2013. Режим доступа: https://www.arduino.cc/en/Tutorial/LCDLibrary/.(Дата обращения: 20.11.2016).