Главная » Статьи » Программирование

В разделе материалов: 22
Показано материалов: 1-10
Страницы: 1 2 3 »

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


   Пока решил опробовать механический энкодер. Взял я 5 контактный. 2 контакта для замыкания энкодера, то есть можно нажать как на кнопку. 2 контакта - это выходы энкодера A и B, которые переклчаются при повороте ручки:

Программирование в BascomAVR | Просмотров: 2678 | Автор: Space | Добавил: Space | Дата: 25.09.2011 | Комментарии (0)

   Я уже рассказывал в статье про RC5 как сделать управление на примере со светодиодами. Теперь рассмотри вариант управления моторами. Разницы в программе почти нет, лишь не много дополним её командами, которые будет выполнять робот по нажатию определённой клавише на пульте.


Для сборки такого робота нам понадобится:
Драйвер двигателей - я использовал этот (используем режим A, меняется с помощью перемычки)
Контроллер
TSOP1736
Пульт Rc5

Программирование в BascomAVR | Просмотров: 2041 | Автор: Space | Добавил: Space | Дата: 28.06.2011 | Комментарии (0)

   

   Для программирования микроконтроллеров есть в продаже готовые программаторы. Один из них универсальный программатор AutoProg. Если нет возможности сделать хороший программатор самому, то вполне можно воспользоваться таким. Мк можно запрограммировать вставив его в ZIF-панель для DIP8-DIP40 на программаторе или не отсоединяя от платы, мк можно прошить подсоединив к нему 5 проводков идущих из разъёма программатора(при это на мк должно идти питание). 

Особенности:
  • Поддержка более 3000 микросхем памяти и мк
  • Все микросхемы БЕЗ ИСКЛЮЧЕНИЯ в корпусах DIP от 8 до 40 выводов устанавливаются в одну универсальную фирменную ZIF-панель
  • Программно регулируемое питание микросхем при записи, чтении, проверке (2,7...6,3 В, напряжение программирования - 9,0...25,5 В)
  • Высокая надёжность и скорость работы
  • Автономный режим, энергонезависимая память
О программаторах | Просмотров: 2247 | Автор: Кирилл | Добавил: Space | Дата: 05.05.2011 | Комментарии (0)


Описание

   Программатор предназначен для работы практически со всеми микроконтроллерами Atmel семейства AVR (главным образом, tiny, mega, xmega). Программирование проводится внутрисхемно через ISP (in-system-programming) интерфейс. Прошиваются следующие области памяти микроконтроллера: flash, eerprom, fuse-bits, биты защиты. В зависимости от типа микросхемы скорость программирования может достигать 8МГц. Для контроллеров ATmega8 максимальная скорость программирования составляет 500кГц. 

   AVRISP mkII поддерживается современными средами разработки, например, такими как Atmel AVR Studio, CodeVision AVR. Это значительно облегчает жизнь программисту на этапе отладки программы (написали, скомпилировали и тут же зашили, посмотрели, что получилось). Также программирование можно запустить с командной строки.
 
О программаторах | Просмотров: 3222 | Автор: MysterySt | Добавил: MysterySt | Дата: 05.05.2011 | Комментарии (0)

   В некоторых микроконтроллерных проектах в качестве дополнительной функции можно сделать дистанционное управление прибором. В качестве протокола часто используется довольно распространенный (но далеко не единственный) протокол RC5, так как по нему в Интернете можно найти очень много разнообразной информации.
   В рассматриваемом примере в качестве приемника используется TSOP 17xx. Последние две цифры 'x' указывают на частоту принимаемого сигнала в кГц. В данном примере использован TSOP 1736 (536АА3Р). В принципе, с его помощью можно декодировать и сигнал другой частоты, например, 38 кГц, однако, при этом существенно снижаются дальность и помехоустойчивость приема. TSOP 1736 содержит демодулятор, который выделяет из несущей частоты полезный сигнал и производит его предварительное усиление. Затем этот сигнал может быть непосредственно обработан.
Программирование в BascomAVR | Просмотров: 2325 | Автор: Space | Добавил: Space | Дата: 22.04.2011 | Комментарии (0)

 Совсем не давно выложил статью "Часы реального времени DS1307". Эта статья можно сказать продолжение. В принципе рассказывать здесь особо не чего. По микросхеме Ds1307, краткую информацию выложил в статье упомянутой выше. К фоткам сделаю комментарии. Так же упомяну о возможных проблемах. И так поехали.

   Для начала подключим клавиши и плату часов реального времени.


 Средний, зелёный провод нам не нужен. P. S. наличие микросхемы 24LCxxx не обязательно. Чтобы собрать часы на отдельной плате можно использовать пример схемы ниже. Мк на схеме atmega16. Естественно добавить ещё обвязки для мк+дисплей и клавиши.
Программирование в BascomAVR | Просмотров: 3018 | Автор: Space | Добавил: Space | Дата: 19.04.2011 | Комментарии (0)

EPROM - встроенная энергонезависимая память (Flash-память) микроконтроллера. EEPROM обычно используется для хранения данных, которые редко изменяются. Вы можете использовать его для хранения калибровочных данных, которые используются при расчетах. EEPROM не стоит использовать в качестве оперативной памяти из-за небольшого лимита циклов перезаписи (читаем даташит!). Читать и записывать данные в EEPROM можно с помощью соответствующих команд Readeeprom и Writeeeprom. 

   Приведу пример использование лишь не которых команд. На мой взгляд самые простые. 
Code
Dim A As Byte
Dim Aa Eram As Byte

A=Aa

writeeeprom A, Aa 'сохраняем переменную A в энергонезависимую память мк Aa
readeeprom A, Aa 'считываем  переменную A из энергонезависимой памяти мк A

Здесь переменная Aa объявлена как переменная типа byte в ERAM (EEPROM). В принципе, это не настоящая переменная. Все, что мы можем сделать:

Code
A = Aa

присваиваем значение Aa из EEPROM переменной A.

Code
Aa = A

помещаем значение переменной A в EEPROM, в область, зарезервированную под хранение значения Aa.
Вы не можете сделать, например, так:

Программирование в BascomAVR | Просмотров: 1542 | Автор: Space | Добавил: Space | Дата: 17.04.2011 | Комментарии (0)

   DS18B20 - Калиброванный цифровой термометр с однопроводным 1-Wire-интерфейсом и перестраиваемой разрядностью преобразования. Диапазон измеряемых температур от -55°C до +125°C. Считываемый с микросхемы цифровой код является результатом непосредственного прямого измерения температуры и не нуждается в дополнительных преобразованиях. Программируемая пользователем разрешающая способность встроенного АЦП может быть изменена в диапазоне от 9 до 12 разрядов выходного кода. Абсолютная погрешность преобразования меньше 0,5°C в диапазоне контролируемых температур -10°C до +85°C. Максимальное время полного 12-ти разрядного преобразования ~750 мс. Энергонезависимая память температурных уставок микросхемы обеспечивает запись произвольных значений верхнего и нижнего контрольных порогов. Кроме того, термометр содержит встроенный логический механизм приоритетной сигнализации в 1-Wire-линию о факте выхода контролируемой им температуры за один из выбранных порогов. Узел 1-Wire-интерфейса компонента организован таким образом, что существует теоретическая возможность адресации неограниченного количества подобных устройств на одной 1-Wire-линии. Термометр имеет индивидуальный 64-разрядный регистрационный номер (групповой код 028Н) и обеспечивает возможность работы без внешнего источника энергии, только за счет паразитного питания 1-Wire-линии. Питание микросхемы через отдельный внешний вывод производится напряжением от 3,0 В до 5,5 В. Термометр размещается в транзисторном корпусе TO-92, или в 8-контактном корпусе SO для поверхностного монтажа (DS18B20Z), или 8-контактном корпусе микро-SOP для поверхностного монтажа (DS18B20U). 
   Выпускается специальная модификация цифрового термометра, предназначенная только для работы в режиме паразитного питания DS18B20-PAR. Она размещается в транзисторном корпусе TO-92, один из выводов которого не используется.

Программирование в BascomAVR | Просмотров: 3545 | Автор: Space | Добавил: Space | Дата: 16.04.2011 | Комментарии (1)

   И так мы добрались до последней темы нашего курса по BascomAVR. И посвящена она сборки робота, который объезжает препятствия за счёт шарпа(ик-датчик). Для большего удобства программу разделил на три файла. Основной это "Bot" его и нужно будет компилировать. Остальные 2 файла для настройки портов и меток на которые будет переходи программа при необходимости. Впрочем объяснять здесь особо не чего. Использовался наш контроллер вместе с модулем, питание двигателей лучше подвести отдельно. для это есть перемычка на модуле. В механике использовался двухмоторный редуктор и гусеницы TAMIYA.

Программирование в BascomAVR | Просмотров: 2852 | Автор: Кирилл | Добавил: Space | Дата: 05.03.2011 | Комментарии (0)

Мы уже с вами рассмотрели простой пример программы моргания светодиодом в CVAVR. Теперь давайте разберёмся подробно как настраивать порты ввода/вывода мк более точно. Для примера, попробуем подключить кнопку. Берём наш контроллер+модуль к нему. На нём уже есть 2 кнопки. Задействуем и ту и другую. Опять же написав пару программ.

   Рассмотрим структуру мк. Порт имеете три части:

  • DDRx - регистр направления передачи данных - определяет, является тот или иной вывод порта входам или выходом; если некоторый разряд регистра DDRx содержит логический 0, то соответствующий вывод порта сконфигурирован как вход, в противном случаи - как выход;
  • PORTx - регистр порта - если вывод выполняет роль выхода, то в соответствующий разряд записывается значение, предназначенное для вывода; если вывод выполняет роль входа, то логический 0 в некотором разряде регистра PORTx соответствует высокоомный вход, а логическая 1 - вход, нагруженный подтягивающим сопротивлением;
  • PINx - регистр выводов порта - в отличие от регистров DDRx и PORTx доступен только для чтения и позволяет считать входные данные порта на внутреннюю шину мк.
Программирование в CV AVR | Просмотров: 3168 | Автор: Кирилл | Добавил: Space | Дата: 06.02.2011 | Комментарии (0)

1-10 11-20 21-22