цифровая электроника
вычислительная техника
встраиваемые системы

 


Простой макрос для манипуляции отдельными битами

Автор: Mike(admin) от 20-04-2014, 12:00

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


Простой макрос для манипуляции отдельными битами

Нижеприведенный фрагмент кода реализует макрос для установки конкретного бита в лог. «1», сброса бита и его инвертирования, а также чтения значения бита.



Внешний монитор последовательной передачи данных ESM

Автор: Mike(admin) от 18-04-2014, 06:28

Иногда бывает полезно иметь внешний монитор последовательного порта, как, например, Serial Monitor в Arduino Editor, чтобы удобнее было отлаживать программу и работать с данными. Поэтому ниже предлагается такое устройство под названием ESM (External Serial Monitor).


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

В основе ESM лежит микроконтроллер Atmel Atmega328. Его оперативная память составляет 2 КБ, этого достаточно для обработки относительно больших объемов данных. Благодаря меню ESM вы также можете устанавливать скорость передачи данных и останавливать и возобновлять считывание.

Разблокировка компьютера с помощью NFC

Автор: Mike(admin) от 5-04-2014, 06:33

Печатать логин и пароль для разблокировки компьютера может быть утомительным занятием, особенно если вводимые данные длинные. Упростить сию задачу можно с помощью Arduino Leonardo и шилда NFC.


Разблокировка компьютера с помощью NFC

В данном случае Arduino считывает уникальный идентификатор карты NFC и после получения верного номера использует эмулятор клавиатуры для ввода пароля.

Управляем двигателями через последовательный порт, не используя микроконтроллер

Автор: Mike(admin) от 21-03-2014, 07:58

Для того, чтобы сделать робота вам не нужны Arduino, PIC или другие микроконтроллеры, поскольку свой проект вы можете подсоединить к USB-порту компьютера или ноутбука через адаптер «USB-последовательный порт». Можно и напрямую, если компьютер оснащен последовательным портом. Это позволит управлять шасси непосредственно с ноутбука, не используя дополнительных плат вроде Arduino.


Управляем двигателями через последовательный порт

Адаптер можно приобрести за небольшие деньги, поэтому он может стать хорошей альтернативой платам с микроконтроллерами.

Программный полудуплексный UART для AVR, поддерживающий работу с одним выводом

Автор: Mike(admin) от 19-03-2014, 11:38

Большинство микроконтроллеров ATtiny не имеют аппаратного модуля UART из-за ограниченного количества выводов. Ядра Arduino tiny используют класс TinyDebugSerial, который обеспечивает только передачу данных, для приема данных нужно писать дополнительный код. Поэтому ниже предлагается компактный код и простая схема для организации программного UART, поддерживающего работу с одним выводом.


Программный полудуплексный UART для AVR


Простой Arduino-счетчик на 7-сегментном индикаторе

Автор: Mike(admin) от 17-03-2014, 06:41

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


7-сегментный индикатор

Вся схема может быть запитана от стандартной 9-вольтовой батарейки или от любого Arduino-совместимого блока питания.

Реализация ПИ-регулятора с компенсацией эффекта насыщения

Автор: Mike(admin) от 15-03-2014, 07:30

Для большинства приложений достаточно организовать не ПИД-, а ПИ-регулирование. Поэтому здесь представлен ПИ-регулятор, написанный на языке C с реализацией на целочисленной арифметике. В данном случае используется структура для хранения, как коэффициента усиления, так и интегральной составляющей, что очень удобно при портировании кода для различных приложений. Ошибка передается в качестве аргумента функции, поэтому следует соблюдать осторожность, чтобы убедиться, что вычисление ошибки, которое должно производиться вне регулятора, то есть в пользовательском коде, не вызывает переполнение.


ПИ-регулятор

Для борьбы с насыщением регулятора проверяется выход, и если P+I (пропорциональная и интегральная части) превышает требуемый диапазон регулирования, то новое значение интегратора не сохраняется, если все это только способствует насыщению. Это позволяет предотвратить большие выбросы при сильных шумах или при больших уставках на входе.

Боремся с шумом концевого выключателя 3D принтера RepRap

Автор: Mike(admin) от 9-03-2014, 06:57

Сегодня отрасль 3D принтеров еще не настолько развита, чтобы эти устройства работали без сбоев и помех. К тому же самостоятельно собранный принтер может быть не так надежен, как хотелось бы его создателю. Так, энтузиаст Reinis был неудовлетворен работой своего RepRap-образного принтера из-за электронных шумов на выходе концевого выключателя. Подключив осциллограф на вход Arduino Mega на плате RAMPS 1.4, он увидел следующую картину:


шум концевого выключателя 3D принтера RepRap

На осциллограмме показан момент, когда начинает работать шаговый двигатель, провода которого идут в том же кабеле, что и провода концевого выключателя. Шум более 4 В!

Звуковая сигнализация на Arduino

Автор: Mike(admin) от 5-03-2014, 04:51

Сделать сигнализацию с сиреной, которая бы без труда помещалась в карман, проще простого! Это мощное аудиовизуальное устройство реализуется на популярной платформе Arduino. Схема, питаемая батарейкой 9 В, вырабатывает громкий, воющий звук в качестве предупредительного сигнала.


Сигнализация на Arduino

Помимо звукового сигнала активируется светодиод, который мигает с определенной частотой.

Программная эмуляция интерфейса I2C

Автор: Mike(admin) от 2-03-2014, 11:08

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


Шина I2C

Код на языке C с комментариями приведен под катом.