Главная » Статьи

Материалы сайта Страницы: « 1 2 ... 7 8 9 10 11 »

 
 
 Хотя мой старенький стационарник не обделен самым настоящим COM портом, не всегда удобно привязываться к одному компьютеру, если требуется подключить какое-либо устройство на микроконтроллере. Учитывая  мою любовь использовать в своих проектах UART, решил собрать модуль преобразователя USB-UART на микросхеме FT232RL. Преобразователь позволяет создать соединение на любом компьютере имеющем USB разъем, тобишь на любом.
 Обвязка FT232RL минимальна, для работы устройства, помимо самой микросхемы, требуется пара конденсаторов. Также для индикации работы можно повесить 3 светодиода, которые будут сигнализировать о наличии питания, приеме и передаче данных. Само устройство собрано в форме флэшки, поэтому приткнутся к USB-порту можно в любой момент. На выходе устройства на разъем выведены пины Tx и Rx, с логическими уровнями TTL, а также питание +5В, которым можно запитывать подключаемое устройство.
Просмотров: 113572 | Опубликовано: 08.08.2011 | Комментарии (56)

 

 Для планируемых проектов, с использованием дисплея от Nokia3310, собрал что-то типа универсального модуля на микроконтроллере Atmega32 в корпусе TQFP. Платка получилась компактная, размерами 60х45 мм. Из периферии имеются 4 кнопки и один светодиод. Я старался задействовать для подключения дисплея и кнопок менее важные выводы микроконтроллера, чтобы оставалась возможность использовать UART, ШИМ, АЦП, внешние прерывания, внутренний компаратор и прочие ништяки. 

Просмотров: 52565 | Опубликовано: 01.08.2011 | Комментарии (64)

 
 Достаточно часто появляется необходимость использовать управление какого-нибудь устройства (будь то лампочка накаливания, двигатель, ТЭН или простой светодиод) посредством ШИМ.
 Наверно объяснять что это такое и в чем прелесть управления ШИМом не нужно, информации в интернете накопилось уже достаточно много, да и врядли мне получиться разжевать эту тему лучше. Поэтому сразу перейдем к делу, а именно запустим ШИМ на Attiny2313 средствами Bascom-AVR.  
 Шим в микроконтроллерах AVR работает на таймерах-счетчиках, в мк Tiny2313 таких таймеров всего 2: 8-и битный Timer0 считающий до 255 и 16-и битный Timer1 способный считать до 65535. Каждый таймер управляет двумя ШИМ-каналами, таким образом всего аппаратно можно реализовать целых 4 канала ШИМ. Информацию о количестве каналов ШИМ и разрядность каждого канала можно глянуть на страницах даташита на микроконтроллер.  Так, на борту Attiny2313 имеются два 8-и битных канала ШИМ работающих от Timer0 и еще два канала под управлением таймера Timer1 имеют программируемую разрядность от 8 до 10 бит. Сейчас и научимся их использовать.
 
Просмотров: 61776 | Опубликовано: 18.07.2011 | Комментарии (65)

Программатор для микроконтроллеров AVR USBasp

  Решил заменить свою рабочую лошадку STK200+PonyProg, на нечто более современное, легко собираемое и обязательно поддерживающее подключение по USB. Выбор пал на хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48) . Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку. Еще одним плюсом программатора является то, что благодаря большой популярности он приобрел поддержку во многих средствах разработки, в том числе и в Bascom-AVR начиная с версии 1.11.9.6. И поэтому консольность программы, с которой он работал первоначально, перестала быть отпугивающим моментом для начинающих.

Просмотров: 210151 | Опубликовано: 11.07.2011 | Комментарии (310)

 Организация своего меню


  Когда любой проект растет в функционале, и из простого показометра хочется сделать нечто большее, нужно придумать, как организовать удобную работу с устройством. Хорошо если в проекте задействован дисплей (графический, алфавитно-цифровой, да хоть семисегментный) тогда можно создать свое меню и рулить настройками оттуда.  Вот и попробуем организовать несложное древовидное меню из небольшого списка, с возможностью выбора любого пункта. Для начала необходимо определится с организацией и количеством пунктов меню и нарисовать структурную схему. Например, сделаем меню из 4-х пунктов, в каждом из которых по 3 подпункта.

Просмотров: 66904 | Опубликовано: 25.06.2011 | Комментарии (33)

 Симулятор Bascom
 
 В процессе написания программы часто необходимо проверить правильность работы алгоритма – глянуть на состояние регистров,  узнать значение переменных или состояние портов вывода. Хотя сам для этих целей и использую Proteus, бывало такое, что его нет под рукой. И поэтому выручает симулятор, который включен в Bascom-AVR.
 
  В качестве примера для симуляции взял программу с модуля дистанционного управления, описанного в прошлой статье. По алгоритму программа должна обрабатывать нажатие кнопки, висящей на прерывании INT1. При нажатии на кнопку изменяется (увеличивается) значение переменной Flag, значение которое может принимать эта переменная от 1 до 7, при достижении значения 8 переменная обнуляется.  Пока переменная больше 0, на выводе PortD.4 находится высокий уровень напряжения (логическая единица).
 
  Также по задумке, при значении переменной Flag больше 0, на одном из выходов PortB будет единичка. При каждом нажатии кнопки и увеличении переменной, эта единичка должна сдвигаться вправо – то есть при значении Flag=1 единица будет на PortB.7, при Flag=2 единица будет на PortB.6 и так далее пока нажимая кнопку мы не достигнем значения Flag=8; а как писал выше, достигнув этого значения, переменная обнуляется и состояние выходов PortD.4 и PortB сбрасываются в ноль. При последующих нажатия кнопки все повторяется. Для понятия алгоритма можно посмотреть видео со статьи озвученной выше.
  Итак, алгоритм есть, код написан и теперь необходимо проверить соответствие кода алгоритму - переходим к симуляции внутренними средствами Bascom-AVR.
 
Просмотров: 21532 | Опубликовано: 17.06.2011 | Комментарии (2)

 

 Если встает вопрос дистанционно управлять каким-нибудь девайсом, сразу видится два решения: применить радиоканал, использовав RF модули, или использовать управление с использованием  инфракрасных лучей. Когда требуется управлять устройством на небольшом расстоянии (например, в пространстве одной комнаты) и с минимальными вложениями чаще всего достаточно будет применить управление по инфракрасному каналу, ведь для этого требуется всего-навсего инфракрасный датчик TSOP c обвязкой из пары резисторов, и пульт управления, который дома у каждого найдется и даже не один. А благодаря хорошему свойству IR излучения отражаться от поверхности – прямая видимость между передатчиком и приемником не является жестким требованием. Вот и попробуем поработать с этим видом связи. Связь между пультом и девайсом будет обеспечиваться посредством  общепринятого стандарта для пультов – RC5. С этим протоколом Bascom-AVR знаком и прекрасно с ним работает. Для примера собрал модуль управления на мк ATTiny2313 – по сути – приемник команд стандарта RC5 способный запоминать, сохранять в энергонезависимой памяти и обслуживать до 7 команд.

Просмотров: 69969 | Опубликовано: 11.06.2011 | Комментарии (129)

 
 
Особенностью работы датчика температуры DS18b20, рассмотренного в предыдущей статье является то, что от запроса на преобразование до чтения значения температуры должно пройти определенное время (не менее 0,75 сек по даташиту). Это время требуется датчику для преобразования аналогового сигнала в цифровую форму, к тому же при частом опросе возможен нагрев датчика, что вызовет искажение показаний. Для совместной работы с семисегментным индикатором необходимо учитывать, что индикация происходит в динамическом режиме и поэтому запихивать запуск преобразования и чтение результата в один цикл с обработкой индикации не следует. Иначе  индикация во время ожидания преобразования заглохет и вывод показаний прекратится, что вызовет моргание индикатора.
  Чтобы этого избежать можно индикацию оставить в главном цикле, а работу с датчиком повесить в обработчик прерывания от таймера. Таким образом распараллелить задачу – пока датчик ведет преобразование микроконтроллер обрабатывает индикацию. Тут я поступил практически также: в главном цикле происходит вывод текущей температуры на индикатор, когда очередь доходит до работы с датчиком, проверяется переменная отвечающая за то, что нужно сделать – начать преобразование или считать результат преобразования. Значение этой переменной изменяется в обработчике прерывания от таймера (каждые 0,5 сек). Таким образом, работа с датчиком и динамическая индикация находятся в одном цикле, но за один цикл выполняется либо преобразование, либо чтение результата или работа с датчиком пропускается совсем. В качестве таймера задействован Timer1 с предделителем на 64, таким образом при частоте работы МК 8 МГц переполнение и изменение переменной будет происходить каждые 0,52 сек. Как оказалось такая задержка вполне приемлема для нормальной работы датчика DS18b20.
Просмотров: 44457 | Опубликовано: 01.06.2011 | Комментарии (49)

 


  Представляю вашему вниманию доработанную программу управления униполярным шаговым двигателем к контроллеру описанному в прошлой статье. Теперь контроллер способен принимать команды по UART и делать необходимое количество шагов в нужном направлении. Направление вращения и необходимое количество шагов задается одной командой. Например чтобы сделать 300 шагов в одну сторону отправляем команду +300. Если требуется вращать в другую сторону, отправляем "-" и количество шагов, все просто.  Также как и в прошлой версии программы, предусмотрено вращение двигателя кнопками.

Просмотров: 46235 | Опубликовано: 23.05.2011 | Комментарии (42)

 
 
 Шаговые двигатели достаточны распространены в устройствах, в которых необходимо добиться точного перемещения механизмов. Существует много типов шаговых двигателей, но самыми дружелюбными в плане управления являются 2-х фазные униполярные двигатели. Этот тип двигателей имеет две независимые обмотки с выводами от середины. Их можно встретить преимущественно в старой технике: принтерах, копирах, дисководах (5-и дюймовых) и еще много где. 
Просмотров: 127919 | Опубликовано: 12.05.2011 | Комментарии (77)

1-10 11-20 ... 61-70 71-80 81-90 91-100 101-102




авторизация
Логин:
Пароль: