Компактный бесконтактный ик-термометр своими руками

Начало работы

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

Этапы

При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:

  • Инсталляция программного кода;
  • Конфигурация приложения под применяемое устройство;
  • Переадресация портов (для роутера);
  • Проведение тестов;
  • Внесение правок и так далее.

В Сети имеется весь необходимый софт на применяемое оборудование — его достаточно скачать с официального сайта и установить (ссылку смотрите выше).

Приложение позволяет увидеть информацию о датчиках. Если это требуется, настройки IP-адрес могут быть изменены.

Последовательность действий при подключении к компьютеру

Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:

  • Подготовьте необходимое оборудование — USB-кабель и Arduino.
  • Скачайте программу на странице arduino.cc/en/Main/Software.
  • Подсоедините плату с помощью USB-кабеля. Проследите, чтобы загорелся светодиод PWR.
  • Поставьте необходимый набор драйверов для работы с Ардуино. На этом этапе стоит запустить установку драйвера и дождаться завершения процесса. После жмите на кнопку «Пуск» и перейдите в панель управления. Там откройте вкладку «Система и безопасность» и выберите раздел «Система». После открытия окна выберите «Диспетчер устройств», жмите на название Ардуино и с помощью правой кнопки мышки задайте команду обновления драйвера. Найдите строчку «Browse my computer for Driver software!», кликните по ней и выберите соответствующий драйвер для вашего типа платы — ArduinoUNO.inf (находится в папке с драйверами). Это может быть UNO, Mega 2560 или другая.
  • Запустите среду разработки Ардуино, для чего дважды кликните на значок с приложением.
  • Откройте готовый пример (File — Examples — 1.Basics — Blink).
  • Выберите плату. Для этого перейдите в секцию Tools, а дальше в Board Menu.
  • Установите последовательный порт (его можно найти путем отключения и подключения кабеля).
  • Скачайте скетч в Ардуино. Кликните на «Upload» и дождитесь мигания светодиодов TX и RX на плате. В завершение система показывает, что загрузка прошла успешно. Через несколько секунд после завершения работы должен загореться светодиод 13 L (он будет мигать оранжевым). Если это так, система готова к выполнению задач.

Работа с роутером

Для полноценной работы «Умного дома» важно правильно обращаться с роутером. Здесь требуется выполнить следующие действия — открыть конфигурацию, указать адрес Arduino IP, к примеру, 192.168.10.101 и открыть 80-й порт

После требуется присвоить адресу доменное имя и перейти к процессу тестирования проекта. Учтите, что для такой системы запрещено применение открытого IP-адреса, ведь в этом случае высок риск взлома через Сеть.

Умный дом на базе Raspberry Pi 3 своими руками, пошаговая инструкция

Плата Arduino CNC Shield v3.02

Плата расширения CNC Shield v3.02 создана для Arduino UNO 3D принтеров и подобного им оборудования. Данная база входов/выходов обеспечивает работу устройств в автоматическом режиме или посредством подключения к USB-порту.

Arduino CNC Shield v3.02 имеет 4 оси, интерфейс двух разновидностей (UART, I2C). Требуемое напряжение для силовой и логической частей соответственно равно 36 В и 5 В. Тип прошивки этой платы называется Arduino GRBL. База характеризуется четырьмя слотами (по числу осей) и перемычками для их дублирования. Драйверы Arduino CNC Shield v3.02 подключаются разными путями.

Сборка модификации Arduino Mega

Сделать Arduino Mega своими руками можно только на базе коллекторного трансивера. Контакторы довольно часто устанавливаются с переходниками, а чувствительность у них равняется не менее 2 мВ. Некоторые специалисты рекомендуют использовать инвертирующие фильтры, однако надо помнить, что они не могут работать при пониженной частоте. Транзисторы используются только проводникового типа. Блок выпрямителя устанавливается в последнюю очередь. При возникновении проблем с проводимостью эксперты рекомендуют проверить номинальное напряжение устройства и поставить емкостные конденсаторы.

Плата Arduino UNO

Плата Arduino UNO работает в комплекте с микроконтроллером ATmega328, характеризующимся наличием:

  • 14 цифровых и 6 аналоговых порта;
  • USB порта;
  • функции сброса;
  • разъемов внутрисхемного программирования и питания.

Arduino UNO имеет несколько отличий от других модификаций плат расширения этой компании:

  • Во-первых, для его присоединения к ПК не нужен мост USB-UART FTDI.
  • Во-вторых, электроэнергию она получает через USB порт и с посредством приспособлений извне. Для этого предопределено несколько выводов (Vin, IOREF, 5 V, GND).
  • В-третьих, микроконтроллер платы Arduino UNO обладает тремя типами памяти: FLASH, EEPROM и SRAM.
  • В-четвертых, присутствует последовательность в SPI. Это касается с 10 по 13 выход (вход).
  • В-пятых, имеется функция сброса в автоматическом режиме.
  • В-шестых, существует защита от последствий нагрева проводов.

ЗD принтер Arduino Uno считается самым востребованным в своей ценовой категории.

Прошивка ATmega328

У микроконтроллера нет собственного USB-порта. К компьютеру его можно подключить одним из двух способов:

Рассмотрим их подробнее.

Прошивка ATmega328 через USB-UART преобразователь

Для сборки программатора нам понадобится:

Соберите следующую схему

Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE — и прошейте свой контроллер.

Прошивка ATmega328 через Arduino Uno

Для сборки программатора нам понадобится:

Аппаратная часть готова. Теперь скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE и прошейте свою Arduino.

В уроке мы покажем вам, как сделать свою собственную плату Arduino Uno своими руками, используя микроконтроллер ATmega328p IC. В итоге вы сможете понимать как в дальнейшем делать аналоги любых плат, плюс создавать свои. Может быть вы даже откроете свою компанию по производству плат и микроконтроллеров.

Так как Ардуино является платформой с открытым исходным кодом, довольно легко узнать о внутренностях и деталях всего того, что делает Arduino тем, чем она является. Таким образом, в этом уроке мы рассмотрим схему Arduino Uno, немного изменим ее в соответствии с нашими потребностями, изготовим под нее печатную плату и припаяем необходимые компоненты для создания финального продукта.

Мы не будем использовать какие-либо SMD-компоненты для создания своей версии Arduino Uno, потому что не у всех есть паяльная станция, а иногда найти SMD-компоненты очень сложно. Кроме того, наш метод в большинстве случаев дешевле, чем компоненты SMD. Для тех кто, только начинает разбираться в электронике — технологию поверхностного монтажа печатных плат также называют ТМП (технология монтажа на поверхность), SMT (англ. surface mount technology) и SMD-технология (от англ. surface mounted device — прибор, монтируемый на поверхность), а компоненты для поверхностного монтажа также называют «чип-компонентами».

Arduino UNO R3: распиновка платы

Что такое Arduino UNO CH340 мы уже рассказывали, поэтому перейдем сразу к характеристикам и описанию платы Ардуино УНО. Распиновка и принципиальная схема платформы представлена на фото далее. Как мы уже говорили, вся линейка плат имеет полностью открытую архитектуру системы, что позволяет любому стороннему производителю копировать и модернизировать платы Arduino Genuino UNO.

Arduino UNO распиновка платы на русском, ICSP

Распиновка микроконтроллера ATmega328P

Распиновка микроконтроллера ATmega328P Uno

Пин Arduino

Название пина 

Функция

Генерация ШИМ

Цифровой пин №0

Serial (RX)

Цифровой пин №1

1

Serial (TX)

Цифровой пин №2

2

Вход для внешних прерываний

Цифровой пин №3

3

Вход для внешних прерываний

есть

Цифровой пин №4

4

Цифровой пин №5

5

есть

Цифровой пин №6

6

есть

Цифровой пин №7

7

Цифровой пин №8

8

Цифровой пин №9

9

есть

Цифровой пин №10

10

SPI (SS)

есть

Цифровой пин №11

11

SPI (MOSI)

есть

Цифровой пин №12

12

SPI (MISO)

Цифровой пин №13

13

SPI (SCK) + светодиод

Аналоговый пин №А0

А0

Аналоговый пин №А1

А1

Аналоговый пин №А2

А2

Аналоговый пин №А3

А3

Аналоговый пин №А4

А4

I2C (SDA)

Аналоговый пин №А5

А5

I2C (SCL)

PinOut микроконтроллера ATmega328P

PinOut микроконтроллера ATmega328P Uno

UNO является лучшим вариантом для знакомства с микроконтроллерами. Плата имеет удобный размер и все необходимое для начала работы: 14 цифровых входов/выходов (6 портов могут работать в режиме ШИМ), 6 аналоговых входов для датчиков, разъем USB для программирования и разъем питания Arduino UNO от блока питания или кроны. Но главное — это огромное множество уроков и инструкций в Интернете.

Модули и решения «умного дома» на Ардуино

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

Существует три основных микроконтроллера в системе:

Arduino UNO – средних размеров плата с собственным процессором и памятью. Основа — микроконтроллер ATmega328.  В наличии 14 цифровых входов/выходов (6 из них можно использовать как ШИМ выводы), 6 аналоговых входов, кварцевый резонатор 16 МГц, USB-порт (на некоторых платах USB-B), разъем для внутрисхемного программирования, кнопка RESET. Флэш-память – 32 Кб, оперативная память (SRAM) – 2 Кб, энергонезависимая память (EEPROM) – 1 Кб.

Arduino UNO

Arduino NANO – плата минимальных габаритов с микроконтроллером ATmega328. Отличие от UNO – компактность, за счет используемого типа контактных площадок – так называемого «гребня из ножек».

Arduino Nano

Arduino MEGA – больших размеров плата с микроконтроллером ATMega 2560. Тактовая частота 16 МГц (как и в UNO), цифровых пинов 54 вместо 14, а аналоговых 16, вместо 6. Флэш-память – 256 Кб, SRAM – 8 Кб, EEPROM – 4.

Arduino Mega

Arduino UNO – самая распространённая плата, так как с ней проще работать в плане монтажных работ. Плата NANO меньше в размерах и компактнее – это позволяет разместить ее в любом уголке умного дома. MEGA используется для сложных задач.

Сейчас на рынке представлено 3 поколение плат (R3) Ардуино. Обычно, при покупке платы, в комплект входит обучающий набор для собирания StarterKit, содержащий:

  1. Шаговый двигатель.
  2. Манипулятор управления.
  3. Электросхематическое реле SRD-05VDC-SL-C 5 В.
  4. Беспаечная плата для макета MB-102.
  5. Модуль с картой доступа и и двумя метками.
  6. Звуковой датчик LM393.
  7. Датчик с замером уровня жидкости.
  8. Два простейших устройства отображения цифровой информации.
  9. LCD-дисплей для вывода множества символов.
  10. LED-матрица ТС15-11GWA.
  11. Трехцветный RGB-модуль.
  12. Температурный датчик и измеритель влажности DHT11.
  13. Модуль риал тайм DS1302.
  14. Сервопривод SG-90.
  15. ИК-Пульт ДУ.
  16. Матрица клавиатуры на 16 кнопок.
  17. Микросхема 74HC595N сдвиговый регистр для получения дополнительных выходов.
  18. Основные небольшие компоненты электроники для составления схемы.

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

Сенсоры и датчики

Чтобы контролировать температуру и влажность в доме и в подвальном помещении, потребуется датчик измерения температуры и влажности. В конструкторе умного дома это плата, соединяющая в себе датчики температуры, влажности и LCD дисплей для вывода данных.

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

Датчик Arduino

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

Газовый датчик Arduino

Реле

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

Реле Arduino

Светодиоды могут указывать состояние, в котором реле находится в данным момент времени. Например, красный – освещение выключено, зеленый – освещение есть. Схема подключение к лампе выглядит так.

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

Контроллер

В качестве контроллера выступает плата Arduino UNO. Для монтажа необходимо знать:

описание элементов;

распиновку платы;

принципиальную схему работы платы;

распиновку микроконтролеера ATMega 328.

Программная настройка

Программирование подключенных элементов Ардуино происходит в редакторе IDE. Скачать его можно с официального сайта. Для программирования можно использовать готовые библиотеки.

Или воспользоваться готовым скетч решением Ardublock – графический язык программирования, встраиваемый в IDE. По сути, вам нужно только скачать и установить ПО, а затем использовать блоки для создания схемы.

Как прошить Arduino UNO на примере Blink.

Запустить приложение Arduino IDE (подойдет любая версия).

Во вкладке Инструменты/Плата: выберите пункт “Arduino/Genuino Uno”

Подключите Arduino UNO к компьютеру с помощью USB кабеля.

Используйте для прошивки короткий кабель, который идет в комплект с платой! Потому что при использовании кабеля длинной более 30 сантиметров могут возникать помехи, из-за чего загрузка скетчей будет не возможна!

Во вкладке Инструменты выбрать порт, к которому подключена плата Arduino UNO.

В моем случае это COM7, у вас может быть другой! Выберите тот который появился при подключении платы!

Теперь откройте тестовый скетч во вкладке Файл/Примеры/Basics/Blink

Или скопируйте этот скетч и вставьте его в чистое окно редактирования приложения Arduino IDE.

В скетче прописана задержка 1 секунда delay(1000); между командами включить и выключить светодиод, можете отредактировать его на свое усмотрение, и нажмите загрузить.

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

Arduino проекты

Управляем квадрокоптером с помощью ArduinoСигнализация на Arduino, оповещающая об исчезновении напряжения сетиДистанционное управление для ArduinoJTAG-адаптер для Arduino MicroВольтметр на ArduinoЗвуковая сигнализация на ArduinoПростой Arduino-счетчик на 7-сегментном индикатореРазблокировка компьютера с помощью NFCРобот на основе Arduino. Часть I – управление двигателямиРобот на основе Arduino. Часть II – шасси, средства передвижения и питаниеРобот на основе Arduino. Часть III – подключение, программирование и пробный пускРобот на основе Arduino. Часть IV – ультразвуковой датчик HC-SR04Простой таймер на ArduinoУправляем вентилятором с помощью ArduinoПодключаем джойстик к ArduinoПодключаем к Arduino акселерометр MMA7361Управляем светодиодами WS2812 с помощью ArduinoArduino и светодиодная матрица 8x8Arduino и RFID-считывательДомашняя система безопасности с GSM на основе ArduinoПодключение оптического энкодера к ArduinoПогодная станция на основе Arduino и Wi-Fi модуля ESP8266Система слежения за солнцем на ArduinoArduino и шаговый двигатель BYJ48Расширяем количество портов Arduino за счет чарлиплексированияArduino и четырехразрядный семисегментный индикаторДатчик температуры TMP36 и его подключение к ArduinoБиблиотеки Arduino: подключениеУправляем реле с помощью ArduinoArduino своими рукамиПодключение GPS-трекера к ArduinoArduino + датчик температуры и влажности DHT22 + вентиляторПрограммируем Arduino Pro Mini с помощью Arduino UnoПрограммируем Arduino на Raspberry PiArduino и TLC5940: управляем большим количеством сервомоторовСоединяем Raspberry Pi с Arduino через Serial GPIOДелаем плату Arduino автономной с питанием от солнечной батареиИспользуем Arduino Mega 2560 в качестве внутрисхемного программатора (ISP)Arduino и датчик влажности почвыArduino и датчик капель/дождяРобот на Arduino, управляемый с помощью жестовArduino и MIDIArduino и модуль фотоимпульсного датчика скорости вращения двигателя«Умная» розетка на основе Arduino своими рукамиУправляем шаговым двигателем с помощью Arduino и L298NКак сделать фитнесс-трекер на ArduinoArduino и акселерометр MMA7455L: принцип работы, схема, кодСистема домашней автоматики на основе Android и Arduino своими рукамиArduino и датчик газа / дыма MQ-2Гитарная педаль эффектов на Arduino своими рукамиArduino и Bluetooth на основе HC-05 для чайниковКонсоль Gamebuino – Arduino для бесплатных игр своими рукамиПростой регистратор данных на Arduino с модулем SD-картыДелаем мышеловку на основе Arduino своими рукамиArduino и обмен данными с программой на Visual BasicArduino и камера OV7670DustDuino – используем Arduino для мониторинга качества окружающей средыArduino и термистор: принцип работы, схема подключения, кодАзбука Морзе на Arduino: сигнал SOS с помощью динамика и светодиодаАмперметр на Arduino своими рукамиArduino и Xbee – реализуем простую передачу данных по ZigBeeВаттметр на Arduino своими рукамиПростой тестер аккумуляторов и батареек на ArduinoКак начать работу с Cayenne и ArduinoArduino и датчик освещенности TEMPT6000Простой тестер кабелей RJ45 на Arduino своими рукамиУправляем Arduino 101 через Bluetooth с помощью BlynkBluetuino – управляем Arduino с помощью iPhoneДетектор электромагнитного излучения на Arduino своими рукамиПростая система безопасности на Arduino своими рукамиВоспроизводим мелодии с помощью ArduinoДелаем следящий за светом цветок на основе ArduinoПростейший термометр на Arduino и DS18B20 своими рукамиArduino и GSM: делаем телефонный вызовМеталлоискатель на Arduino своими рукамиТахометр на Arduino своими рукамиArduino и датчик изгибаЧетырехразрядный индикатор на TM1637 и Arduino DigiSparkArduino и цифровой потенциометрКак сделать FM-трансмиттер на Arduino и NS73M своими рукамиПриемопередатчик HC-12 и ArduinoОмметр на Arduino своими рукамиИзмеритель емкости на Arduino своими рукамиЦифровые порты Arduino для чайниковПодключаем матричную клавиатуру к ArduinoArduino и ЭКГ: кардиограф своими рукамиСистема полива растений на основе Arduino своими рукамиУправляем соленоидом с помощью ArduinoЧастотомер на Arduino своими рукамиArduino и GPS: подключение GPS-модуля NEO-6mДетектор уровня звука на Arduino своими рукамиУправляем линиями ввода/вывода Arduino с компьютераИзмеритель освещенности на Arduino своими рукамиМногозадачность Arduino с помощью функции millis

Сборка на транзисторе DD1

Транзисторы DD1 обеспечивают высокую скорость отклика при незначительных тепловых потерях. Чтобы собрать контроллер Arduino своими руками, рекомендуется заготовить трансивер. Целесообразнее применять линейный аналог, у которого высокая проводимость. Также надо отметить, что рынок переполнен однополюсными модификациями, и показатель чувствительности у них находится на уровне 60 мВ. Для качественного контроллера этого явно недостаточно.

Регулятор стандартно устанавливается дуплексного типа. Триод для модели подбирается на диодной основе. Непосредственно компаратор устанавливается в начале цепи. Он обязан работать при сопротивлении не ниже 50 Ом. Номинальное напряжение при этом обязано составлять около 230 В.

Шаг 1. Изменения в оригинальной версии

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

Изменения будут следующими:

  • Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
  • Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
  • Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
  • Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
  • Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.

Учитывая все изменения, мы можем записать окончательный список компонентов.

Копируем Arduino uno – питание

Во-первых в этой схеме только одно напряжение – то, которым питаешь микроконтроллер. В arduino uno есть стабилизатор – ей подаешь 5 вольт, она еще и 3.3 выдает на соседний пин. За всю мою практику мне ни разу не понадобилось сразу и 5, и 3.3 вольта в одной схеме. То есть используется либо 5, либо 3.3, но никогда вместе. Все девайсы, экраны и датчики, рассчитанные на 3.3, всегда втыкались 5 вольт и все работало. Естественно надо прочитать даташит (документацию) на эти самые датчики, возможно у вас что-то мегачувтсвительное к входному напряжению и ему реально нужно 3.3 вольта. Тогда можно поставить стабилизатор напряжения и снизить до 3.3 вольт. Как обычно есть пара способов:

  1. Поставить LM3940 или любой аналог:
    Это вариант без гемора, но нужно смотреть документацию, сколько можно подключить нагрузки. Т.к. лишние вольты эта штука преобразует в тепло, использовать их не очень-то оптимально в плане энергопотребления (например, если ты делаешь что-то на солнечных батарейках).. Зато просто.
  2. Поставить MAX1626 или любой аналог Крутая штука. Больше деталей, больше КПД.
    Схему найдешь в даташите на выбранный преобразователь. Вон пример для LT1073:

Вообще с питанием много всяких извращенных схем, но это основные подходы.

Модель на базе DA1

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

При сборке контроллера рекомендуется применять емкостные триоды с низкими тепловыми потерями. У них высокая чувствительность, а проводимость находится на уровне 55 мк. Если использовать простой стабилизатор переходного типа, то фильтр применяется с обкладкой. Специалисты говорят о том, что тетроды разрешается устанавливать с компаратором. Однако стоит учитывать все риски сбоев в работе конденсаторного блока.

Подключение микроконтроллера и программирование

Микроконтроллеры AVR программируются через интерфейс SPI посредством маршрутизации сигналов через шесть линий:

  • VCC (напряжение питания),
  • GND (сигнальная земля),
  • RST (программный сброс),
  • MOSI (приём данных),
  • MISO (передача данных),
  • SCK (сигнал синхронизации).

Для маршрутизации всех отмеченных сигналов между устройствами, как правило, используется один из двух стандартизированных разъемов:

  1. 6-контактный разъем (2×3).
  2. 10-контактный разъём (2×5).

Разъёмы соединяются с платой программатора и программируемым устройством через шлейф-кабель. Фирменная плата программатора «AVR Pocket Programmer» комплектуется всеми необходимыми аксессуарами.

Два типа контактных разъёмов интерфейса ISP применимы к использованию при работе совместно с инструментом программирования

На фирменной плате программатора присутствует переключатель режима питания. Если переключатель находится в положении «Power Target», плата запитана напряжением 5В от USB.

Иначе, в положении переключателя «No Power», питание на контакте 5В отсутствует. Этот вариант — «No Power», используется для программирования чипов с малым питающим напряжением (3,3В или 1,8В).

Микроконтроллеры: программирование утилитой AVRDUDE

Утилита AVRDUDE — это инструмент для командной строки Windows. Чтобы применить этот инструмент, нужно запустить «командную строку» Windows (Пуск -> Выполнить). Затем рекомендуется проверить готовность утилиты вводом команды:

avrdude -c usbtiny -p atmega328p

Команда предполагает наличие подключенного к системному разъёму программатора микроконтроллера ATmega328P. Для чипа другой серии команда, соответственно, несколько изменится.

Так, для микроконтроллера ATtiny45 строка будет выглядеть следующим набором:

avrdude -c usbtiny -p t45

Если схематично подключения программатора и программируемой микросхемы в норме, утилита выдаст примерно следующий терминальный текст:

Стандарты изготовления микроконтроллеров предполагают внедрение идентификаторов. При первом запуске утилита определяет этот идентификатор

Эта базовая команда утилиты позволяет идентифицировать подключенный микроконтроллер AVR. Инструмент AVRDUDE в процессе проверки читает идентификатор чипа.

Идентификаторы программируемых микросхем отличаются в зависимости от типа AVR. Тот же микроконтроллер ATmega328P идентифицируется как 0x1E950F, что и отмечено в окне выдачи.

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

Прошивку Flash-памяти выполнит команда:

avrdude c usbtiny p atmega328p U flash:w:test.hex

или для варианта с ATtiny45:

avrdude c usbtiny p t45 U flash:w:test.hex

Примечание: имя файла «test.hex» только в качестве примера.

Процедура записи Flash-памяти требует некоторого времени. Несколько больше, чем при чтении данных. При этом строка состояния командного терминала всегда изменяется при чтении, записи, проверке устройства.

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

Опция «U» команды AVRDUDE управляет чтением и записью памяти микропроцессора. Этой опцией пользователь указывает на работу с флеш-памятью.

Дополнительно символом «w» указывается функция записи и следом через двоеточие указывается имя (и расположение) файла (в примере test.hex), содержимое которого требуется записать в память.

Опция «U» также используется для чтения содержимого памяти AVR. Например, следующая команда позволит считать содержимое памяти чипа AVR и сохранить в файле под названием «test.hex»:

avrdude c usbtiny p atmega328p U flash:r:test.hex:r

или для варианта с ATtiny45:

avrdude c usbtiny p t45 U flash:r:test.hex:r

Прочесть развёрнуто об утилите программирования и применяемых в процессе командах можно на этом блоге.