Рубрика «микроконтроллеры avr»

Как я сделал свою Arduino - 1

Привет, читатель!

Сегодня существуют десятки вариантов платы Arduino. Их популярность обусловлена, по моему мнению, фреймворком Wiring для микроконтроллеров, распространением «шилдов» (нет необходимости паять компоненты) и, что самое удобное, загрузкой программ по USB. В рамках этой статьи расскажу, как я создал небольшую оценочную плату для микроконтроллера и добавил в нее загрузочную запись.

По своей сути, большинство «ардуинок» (оценочных плат) — это печатные платы с минимально необходимыми для микросхемы деталями. Такие прототипы позволяют сделать работу с чипами удобнее, проще и приятнее. Однако бывает, что под контроллер либо нет подобных решений, либо они универсальные и имеют некоторые неточности. С этим можно бороться, но возникают различные костыли, поэтому я решил разработать оценочную плату для отечественного чипа. Самому чипу посвящена отдельная статья на Хабре, его я использую в паре пет-проектов. Приступим к разработке!Читать полностью »

Все мои детальки: переход на отечественные микроконтроллеры - 1

 Привет, читатель!

Читать полностью »

Индикатор добротности. Тестер катушек индуктивности - 1

Данный самодельный прибор может оказаться весьма полезным в радиолюбительской мастерской в некоторых случаях. Прибор позволяет оценить добротность (наличие потерь) конденсаторов и индуктивностей – дросселей и трансформаторов, и, в частности, выявлять наличие короткозамкнутых витков в них.

Читать полностью »

Хенд мэйд как он есть

Хенд мэйд как он есть

Читать полностью »

Вот появилось желание написать небольшой проектик для себя с применением микроконтроллера. В CodeVisionAVR команды не подсвечиваются по Ctrl+Пробел, да и Си что-то начал забывать, вспоминать - лень... Конечно, вспомнить Си - это 10-30 минут, но лень... Поэтому, было решено начать проект в родной IDE Lazarus, она же кросс-компилируемая! Правда, понять, как включить avr в Lazarus, чтоб компилировался hex-файл ушло 3 дня :), поэтому пишу здесь, чтоб другие не мучались, а сразу пользовались.


Использование кросс-компиляции было основано на этой статьеЧитать полностью »

Шаговые двигатели нашли широкое применение в современной промышленности и самоделках. Их используют там, где необходимо обеспечить точность позиционирования механических узлов, не прибегая к помощи обратной связи и точным измерениям.

Сегодня хочу поговорить об особой разновидности шаговых моторов — миниатюрные шаговые двигатели, которые применяются в конструкциях оптических систем. Мы подробно рассмотрим их устройство и способы управления такими крошечными моторчиками.

Изучаем миниатюрный шаговый двигатель - 1
Читать полностью »

Микроконтроллеры AVR довольно дешевы и широко распространены. Наверно, с них начинает почти любой embedded разработчик. А среди любителей правит балом Arduino, сердцем которого обычно является ATmega382p. Наверняка многие задумывались: как можно заставить их звучать?

Если посмотреть на существующие проекты, то они бывают нескольких типов:

  1. Генераторы квадратных импульсов. Генерация с помощью ШИМ или дергать пины в прерываниях. В любом случае, получается очень характерный пищащий звук.
  2. Использование внешнего оборудования типа MP3 декодера.
  3. Использование ШИМ для вывода 8 битного (иногда 16 битного) звука в формате PCM или ADPCM. Поскольку памяти в микроконтроллерах для этого явно не достаточно, то обычно используют SD карту.
  4. Использование ШИМ для генерации звука на основе волновых таблиц, подобных MIDI.

Последний тип для меня был особенно интересен, т.к. почти не требует дополнительного оборудования. Представляю сообществу свой вариант. Для начала небольшое демо:

Заинтересовавшихся прошу под кат.
Читать полностью »

Положил дед Мороз под новогоднюю елочку мне тестер радиоэлектронных компонентов в виде китайского клона широко известного в узких кругах тестера Маркуса.

image

Здесь должна была быть картинка включенного тестера с радостно светящимся всеми цветами радуги экранчиком, но руки из одного места воткнули в него заряженный конденсатор, тестер радостно самовключился, сказал «ой!» и работать отказался.
Читать полностью »

Жизнь настолько коротка, что ее едва хватает на то, чтобы совершить необходимое количество ошибок, а уж повторять их — недопустимая роскошь.

В данном посте речь пойдет о том, чтобы не повторять чужих ошибок, что тоже является непроизводительной растратой столь ценного ресурса, как время. И вроде бы ошибка не столь фатальна и есть масса примеров, где она исключена и можно было бы давно научиться ее избегать, но почему то с упорством, достойным лучшего применения, она встречается вновь и вновь в исходных кодах программ для МК (может быть и для больших систем тоже, но я ими не занимаюсь), причем авторы данных программ не то чтоб новички во встроенном программировании, но тем не менее мы видим то, что видим. Искренне надеюсь, что после того, как данный пост будет Вами прочитан (при попытке ввести сочетание «после прочтения» в строго определенном месте текста у меня 6 раз падал Word To Go — впервые за 2 года использования, так что я смирился и написал чуть по другому — это к вопросу об ошибках, хотя данное поведение вряд ли проистекает именно из за той, о которой я пишу, иначе это было бы особенно пикантно). Вы навсегда поймете недопустимость подобной ошибочной конструкции и не наступите именно на эти грабли, ведь вокруг лежит такое количество других, ожидающих своей очереди.
Читать полностью »

Дню знаний посвящается...

Данный пост посвящен тому, с чем сталкиваются все пользователи Ардуино (далее по тексту А, имейте в виду что под этой буквой будет прятаться как сам кристалл, так и среда разработки программ), а именно с работой с портами ввода/вывода.

Вы спросите, а что, собственно, тут рассматривать? Функции работы с портами прописаны ясно, есть большое количество примеров, поэтому использование портов не представляет никакой сложности. Начальная программа мигания светодиодом использует эти функции и прекрасно работает, о чем речь?

Все это верно, но лишь до того момента, когда вам потребуется подключать к А что-нибудь пошустрее светодиода (у меня нет претензий к этим замечательным приборам, но обычно в силу специфики использования особого быстродействия от них не требуется), и тут то Вам понадобится эффективная работа с пинами (будем так для краткости именовать порты ввода/вывода), и тогда на форумах возникают вопросы «почему у меня так медленно работает программа», на которые молодые гуру мгновенно отвечают «работай напрямую с регистрами и будет тебе счастье» и показывают, как именно, по их мнению, следует это делать.

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

Поскольку я вижу перед собой читателя с различным уровнем подготовки, то постараюсь ориентироваться на различный диапазон знаний в области МК (микроконтроллеров), поэтому, если Вам что то покажется хорошо известным (а будет немало таких мест) смело пропускайте этот фрагмент, а вот если что то будет не вполне понятно, то комментарии и существуют для того, чтобы там задавать вопросы, я их читаю и, по мере своих сил, пытаюсь ответить.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js