ELEMENTUS.RU | PIC

Posts tagged PIC

Подключение GP2D120 к PIСBOT *ПРОДОЛЖЕНИЕ*

0

Подключение GP2D120 к PIСBOT.

Программное обеспечение взято из фирмы Mikroelektronika  mikroPascal PRO for PIC 2009.

http://www.mikroe.com/en/compilers/mikropascal/pro/pic/

Для того чтоб подключить дальномер нам потребуется найти АЦП вход у  микроконтроллера  PIC 16F887.

Они у контролера PIC 16F887 обозначены (AN – номер входа), их присутствует четырнадцать входов , длина АЦП десять бит.

На схеме они показаны.

Далее нам нужно выбрать вход и сконфигурировать как АЦП.

Для этого нам нужны регистры ADCON0, ADCON1.

Регистр ADCON0 предназначен для управления АЦП

Детальное описание каждого бита регистра ADCON0 показано ниже:

  • 7-6 биты для выбора частоты преобразования

00=FOSC/2

01=FOSC/8

10=FOSC/32

11= FRC (частота, получаемая от специализированного внутреннего генератора = 500 kHz максимум)

  • 5-2  биты для выбора аналогового канала

0000=AN0 (вывод RA0)

0001=AN1 (вывод RA1)

0010=AN2 (вывод RA2)

0011=AN3 (вывод RA3)

0100=AN4 (вывод RA5)

0101=AN5 (вывод RE0)

0110=AN6 (вывод RE1)

0111=AN7 (вывод RE2)

1000=AN8 (вывод RB2)

1001=AN9 (выход RB3)

1010=AN10 (вывод RB1)

1011=AN11 (вывод RB4)

1100=AN12 (вывод RB0)

1101=AN13 (вывод RB5)

  • 1 бит  состояния АЦП

1= чикл аналого-цифрового преобразования в процессе выполнения. Установка этого бита запускает цикл аналого-цифрового преобразования. Этот бит автоматически очищается микроконтроллером после окончания цикла аналого-цифрового преобразования.

0= цикл аналого-цифрового преобразования / не запущен

  • 0 бит разрешения работы АЦП

1=работа АЦП разрешена

0=работа АЦП не разрешена

Регистр ADCON1 предназначен для управления АЦП

Детальное описание каждого бита регистра ADCON1 показано ниже:

  • Бит 7 = бит выбора формата результата преобразования АЦП

1=Правое выравнивании

0=Левое выравнивание

  • Бит 6 = не задействован
  • Бит 5: бит выбора источника опорного напряжения

1=вывод VREF —  (RA2)

0= напряжение питания Vss

  • Бит 4: бит выбора источника опорного напряжения

1=вывод VREF+

0=общий провод VDD

  • Биты от 3 до 0 – Не задействованы

Конфигурирование АЦП.

Для использования модуля, АЦП микроконтроллера PIC16F887 необходимо рассмотреть следующие действия:

  • Конфигурирование порта
  • Выбор канала
  • Выбор источника опорного напряжения для АЦП
  • Выбор источника частоты преобразования
  • Выбор способа форматирования результата преобразования

Конфигурирование порта.

АЦП можно использовать для преобразования как аналоговых, так и цифровых сигналов. При преобразовании аналоговых сигналов, линии ввода/Вывода необходимо сконфигурировать как аналоговые входы, установив соответствующие биты регистра TRIS.

Выбор канала

Биты регистра ADCON0 определяют какой из каналов будет подключен ко входу

схемы выборки-хранения. После выбора канала, перед выполнением следующего преобразования, требуется некоторая задержка.

Выбор источника опорного напряжения для АЦП.

Биты 4,5 регистра ADCON1 обеспечивают независимое управление источниками

положительного и отрицательного опорного напряжения. В качестве источника положи-

тельного опорного напряжения можно использовать либо напряжение источника питания

Vdd, либо внешний источник стабильного напряжения. Точно так же, в качестве источника

отрицательного опорного напряжения, можно использовать напряжение источника пита-

ния Vss, либо внешний источник стабильного напряжения.

Для платы управления Роботом PICBOT будет выбрано напряжение питания +5 В

в качестве источника положительного опорного напряжения и напряжение Vss или общая

шина устройства в качестве источника отрицательного опорного напряжения.

Выбор источника частоты преобразования.

Источник частоты преобразования выбирается программно посредством c 6-7 бит

регистра ADCON0. Существует 4 варианта такого выбора:

•• FOSC/2: для тактовой частоты 20 МГц, TAD = 100 нсек

•• FOSC/8: для тактовой частоты 20 МГц, TAD = 400 нсек

•• FOSC/32: для тактовой частоты 20 МГц, TAD = 1,6 мксек

•• FRC (специальный внутренний генератор): TAD = 2…6 мксек

Время, необходимое для получения одного разряда преобразования, обозначено как

TAD. На один полный цикл 10-разрядного преобразования требуется 11 TAD периодов.

Форматирование результата преобразования

Результат аналого-цифрового преобразования возвращается процедурой

ADC_read(). Форма размещения результата преобразования будет зависеть от установки бита c 6-7

регистра ADCON0.

Процедура Аналого-Цифрового преобразования.

Рассмотрим пример процедуры использования АЦП для выполнения аналого-цифрового

преобразования микроконтроллером PIC16F887:

1. Конфигурирование порта:

•• Отключить выходной драйвер вывода

•• Сконфигурировать вывод как аналоговый вход, записав необходимое значение в

регистр ADCON1.

2. Конфигурирование модуля АЦП (используя регистр ADCON0):

••Выбрать частоту преобразования АЦП

••Сконфигурировать источник опорного напряжения

••Выбрать входной канал АЦП

••Выбрать формат результата преобразования, используя регистр ADCON1

••Включить модуль АЦП

Приступаем к практике.

Общий план что сейчас есть из модулей

Подключаем дальномер ко входу AN2 (выход RA2).

Питание подключаем k модулю питания.

Продолжение следует.

Подключил GP2D120.

2


Ну вот, наконец-то я сделал, то что хотел, подключил GP2D120.

Пока только выкладываю видеоролик, вроде получилось неплохо, робот переведён в режим одной команды, поясню, я даю команду роботу ехать вперёд,  и дальше он сам определяет препятствие, и определяет, остановиться ему  или нет.

Всё остальное как я написал программу и подключил, я пока делаю.

GP2D120 Инфракрасный дальномер.

2

Инфракрасный дальномер, начало измерения начинается от двух сантиметров до 32 сантиметров. Питание 5вольт, выходной сигнал будет в зависимости от расстояния до препятствия от 0.4 вольт до 2.8 вольт. Замер расстояния производиться в зависимости от угла отражения инфракрасного луча  от препятствия.

Ниже есть формула расчёта АЦП.

Port Expander MCP23S17 MCP23017 — ОБНОВЛЕНИ —

6

Port Expander.

компания Microchip MCP23S17.

Соединения  через интерфейс SPI с  микроконтроллером  приводится на схеме.

  • Особенности
    • 16-разрядный двунаправленный удаленный порт ввода / вывода
    • — 100 кГц
    • — 400 кГц
    • — 1.7MHz
    • Высокоскоростной интерфейс SPI (MCP23S17)
    • — 10 МГц (макс.)
    • открытым стоком
    • INTА и INTB может быть настроена для работы
    • входной порт данных
    • Рабочее напряжение:
    • — 1.8V до 5.5V @ -40 ° C до +85 ° C
    • — 2.7V до 5.5V @ -40 ° C до +85 ° C
    • — 4.5V до 5.5V @ -40 ° C до +125 ° C

При помощи такой микросхемы, можно дополнить для своего устройства ещё шестнадцать цифровых входов или выходов, общаясь с ней по высокоскоростному интерфейсу “SPI”

Аналогично такой же микросхеме является MCP23017.

У этой единственная разница от MCP23S17, является то, что она имеет интерфейс I2C.

Сделал плату.

Сделал видео ролик, сдесь просто представил двоичный счётчик.

Добавлено управление по радиоканалу.

1

Ну вот на конец то я добрался до сайта, день назад разбирался с кодом передачи данных по радиоканалу на своих модулях. Выбрал UART , только я сигнал перевернул. Если   UART(а) начинается байт с высокого сигнала, то у меня с нулевого уровня. В общем у фирмы Mikroelektronika я взял паскаль под пик контроллеры (http://www.mikroe.com/en/compilers/mikropascal/pro/pic/) и использовал библиотеки которые называются SOFT_UART. Они используют UART систему и в добавок его можно перевернуть. Среда программирования прекрасная. Перед тем как выбрать систему передачи данных, я проверил на шум свою квартиру. Железобетонные стены ничего не пропускали, шумов минимум. Я не стал мудрить и просто использовал один байт для управления роботом, пока только в одну сторону на управление. Видеоролик готов ниже.

Исправил несколько косяков в своём пульте и вот что получилось.

Микросхема DS1811-5 мониториг напряжения.

0

Потребовалось  мне собрать ещё несколько Power module .

Но возникла проблема с приобретением микросхемы KIA7042. Нашел замену DS1811-5.

Фирма DALLAS  Название DS1811-5

ОСОБЕННОСТИ

  • Производит мониторинг напряжения

При подаче питания на микросхему  меньше  4.50 V,  на контакте №1 возникает минус, схема прилагается далее.

Ну вот, долгожданный тест PICBOT.

0

Собрал всё сегодня вечером, написал программку на паскале.

Ошибки есть, немного перепутал светодиоды на модуле управления двигателями,  первый блин всегда комом.

PICBOT пока бегает просто по программе, радиоуправление пока не доделал, осталось только до радио-пульта   добраться и запрограммировать его.

Из чего собрал.

Платформа от фирмы TAMIYAПлатформа от фирмы TAMIYA

Power module.

1

PWM Step−up DC−DC Controller NCP1450ASN50t1G.

Нашел готовую схему в конструкторе «ROBOPIC», для питания своих модулей. Она сделана на PWM Повышающем  DC-DC контроллере NCP1450ASN50t1G. Серия NCP1450A является повышающим DC-DC ШИМ-контроллер который специально предназначен для питания портативной техники из одного или двух элементов батареи.

Когда собрал модуль, начал тестировать, напряжение на входе повышал от 1,5 воль до 6 вольт, на выходе было стабильное 5 вольт.

Ивените за страшную пайку , собираю только вечером уже уставший.

Схему выкладываю.

Фото тоже есть .

Вездеход.

1

Прикупил себе платформу, на которую буду устанавливать свои модули.

Фирма TAMIYA , качественная платформа, очень сильно отличается от простых китайских игрушек своим отличным качеством материала.

Фотки выкладываю.

Пульт управления

3

Есть у меня из старых разработок, пульт с передатчиком AUREL RT-433.

Когда делал, ещё не знал про HID  технологию, а то бы всё сделал на одном процессоре.

Есть у него особенность — подключается он к ПК через FT232RL.

Использовал процессор PIC16f877a.

Две крутилки — это два входа АЦП, которые будут применяться для управления скоростью двигателей.

Питается пульт, как от батареек, так и от USB.

Фотографии и схему выкладываю.

Go to Top