Рассмотрено программирование микроконтроллерных плат Arduino/Genuino/Freeduino. Описана структура и функционирование микроконтроллеров, среда программирования Arduino, необходимые инструменты и комплектующие для проведения экспериментов. Подробно рассмотрены основы программирования плат Arduino: структура программы, команды, операторы и функции, аналоговый и цифровой ввод/вывод данных. Изложение материала сопровождается более 80 примерами по разработке различных устройств: реле температуры, школьных часов, цифрового вольтметра, сигнализации с датчиком перемещения, выключателя уличного освещения и др. Для каждого проекта приведен перечень необходимых компонентов, монтажная схема и листинги программ. Во втором издании рассмотрена русскоязычная версия Arduino IDE, добавлена информация об особенностях использования кириллических символов, а также исправлены опечатки в программном коде.
Введение Предисловие Подготовка к экспериментам Лицензия GPL Требования к системе Обновления и поддержка Дополнительные материалы, сопровождающие книгу
Глава 1. Общие сведения о микроконтроллерах
1.1. Структура и принцип работы контроллера 1.1.1. Центральный процессор 1.1.2. Оперативная память и память программ 1.2. Внешние устройства 1.3. Сравнение технологий CISC и RISC 1.3.1. Технология CISC 1.3.2. Технология RISC 1.3.3. Выводы
Глава 2. Программирование микроконтроллеров
2.1. Что такое программа? 2.2. Программирование на языке С
Глава 3. Краткий обзор семейства микроконтроллеров Arduino
Глава 4. Платы расширения Arduino
4.1. Плата расширения Arduino ProtoShield 4.2. Плата расширения Ardumoto 4.3. Плата расширения TellyMate 4.4. Плата расширения ArduPilot 4.5. Модули XBeeZNet 4.6. Плата расширения Ethernet
Глава 5. Комплектующие изделия
5.1. Список основных комплектующих 5.2. Список деталей для дополнительных экспериментов 5.3. Экспериментальная плата Freeduino 5.3.1. Подключение платы Freeduino 5.3.2. Электропитание 5.3.3. Кнопка Reset 5.3.4. ISP-подключение 5.4. Замечания по технике безопасности
7.1. Установка программного обеспечения Arduino в ОС Windows 7.2. Установка программного обеспечения Arduino в ОС Linux 7.3. Установка программного обеспечения Arduino в Mac OS X
Глава 8. Среда разработки Arduino
8.1. Исходные установки Arduino IDE 8.2. Наша первая программа: ES_Blinkt 8.3. Что мы сделали?
Глава 9. Основы программирования Arduino и первые эксперименты
9.1. Биты и байты 9.2. Базовая структура программы 9.2.1. Последовательное выполнение программы 9.2.2. Прерывание выполнения программы 9.3. Структура программы Arduino 9.4. Первая программа для Arduino 9.5. Команды Arduino и их применение 9.5.1. Комментарии в исходном тексте 9.5.2. Фигурные скобки {} 9.5.3. Точка с запятой ; 9.5.4. Типы данных и переменные 9.5.5. Имя переменной 9.5.6. Локальные и глобальные переменные 9.5.7. Различные типы данных: Переменная типа Boolean Переменная типа Byte Переменная типа Char Переменная типа Unsigned Char Переменная типа Int (Integer) Переменная типа Unsigned int Переменная типа Long Переменная типа Unsigned Long Переменная типа Float Переменная типа String Массив Arrays 9.5.8. Операторы Арифметические операторы Операторы сравнения Побитовая арифметика Булева арифметика Увеличение и уменьшение значения Константы 9.5.9. Директива #define 9.5.10. Управляющие конструкции Оператор if Оператор if...else Конструкция switch case 9.5.11. Циклы Цикл for Циклы while и do while 9.5.12. Функции и процедуры Подпрограмма Функция Команда continue 9.5.13. Функции преобразования типа 9.5.14. Математические функции Функция min(x, у) Функция mах(х, у) Функция abs(x) Функция constrain(x, а, Ь) Функция mар(х, fromLow, fromHigh, toLow, toHigh) Функция pow(base, exponent) Функция sq(x) Функция sqrt(x) Функция sin(rad) Функция cos(rad) Функция tan(rad) 9.5.15. Последовательный ввод/вывод Функция Serial.begin(Baudrate) Функция Serial.end() Функция Serial.read() Функция Serial.available() Функция Serial.flush() Функция Serial.print() Функция Serial.println() Функция Serial.write() Проблемы с выводом кириллицы в последовательный порт Arduino IDE 9.5.16. Функционирование последовательного интерфейса Считывание строки символов через последовательный интерфейс Последовательный вывод данных с вычислением 9.5.17. Программная эмуляция UART 9.5.18. Конфигурация входа/выхода и установка порта Функция pinMode(pin, mode) Функция digitalRead(pin) Функция digitalWrite(pin,value) Считывание состояния кнопки Кнопка с согласующим резистором Кнопка с внешним подтягивающим резистором 9.5.19. Аналоговый ввод данных и АЦП Функция analogRead(pin) 9.5.20. Аналоговые выходы ШИМ Команда analogWrite(pin, value) 9.6. Некоторые специальные функции 9.6.1. Установка паузы С помощью команды delay() С помощью команды micros() 9.6.2. Функции случайных чисел Функция randomSeed(seed) Функция random(min, max) 9.6.3. Сколько времени прошло? Функция millis() Функция micros()
Глава 10. Продолжаем эксперименты с Arduino
10.1. Регулятор уровня яркости светодиода с транзистором 10.2. Плавное мигание 10.3. Подавление дребезга контактов кнопок 10.4. Задержка включения 10.5. Задержка выключения 10.6. Arduino и светодиоды 10.7. Подключение больших нагрузок 10.8. ЦАП на основе ШИМ-порта 10.9. С музыкой веселей 10.10. Романтический вечер с микроконтроллером при свечах 10.11. Контроль персонала на проходной 10.12. Часы реального времени 10.13. Программа школьных часов 10.14. Управление вентилятором 10.15. Автомат уличного освещения 10.16. Сигнализация 10.17. Кодовый замок 10.18. Измеритель емкости с автоматическим выбором диапазона 10.19. Профессиональное считывание сопротивления потенциометра 10.20. Сенсорный датчик 10.21. Конечный автомат 10.22. Шестиканальный вольтметр на основе Arduino 10.23. Программирование самописца напряжения 10.24. Осциллограф с памятью на основе Arduino 10.25. Программа StampPlot — бесплатный профессиональный регистратор данных 10.26. Управление микроконтроллером из VB.NET-программы Ports 10.27. Реле температуры
Глава 11. Шина I2С
11.1. Передача бита 11.2. Состояние СТАРТ 11.3. Состояние СТОП 11.4. Передача байта 11.5. Подтверждение 11.6. Адресация 11.7. 7-битовая адресация
Глава 12. Arduino и температурный датчик LM75 на шине I2С
Глава 13. Микросхема PCF8574 — расширитель порта I2С
Глава 14. Определение дальности с помощью ультразвукового датчика
14.1. Ультразвуковой датчик SRF02 14.2. Считывание данных
Глава 15. Сопряжение платы Arduino с устройством GPS
15.1. Сколько требуется спутников? 15.2. Как подключить приемник GPS к Arduino? 15.3. GPS-протокол
Глава 16. Подключение сервопривода к плате Arduino
16.1. Как функционирует сервопривод? 16.2. Подключение привода к Arduino
Глава 17. Жидкокристаллические дисплеи
17.1. Поляризация дисплеев 17.2. Статическое управление и мультиплексный режим 17.3. Угол обзора 17.4. Отражающие, пропускающие и полупрозрачные ЖКИ 17.5. Установка контрастности дисплея 17.6. Набор отображаемых символов 17.7. Расположение выводов распространенных ЖКИ 17.8. Управление дисплеем от микроконтроллера 17.9. Инициализация дисплеев 17.10. Подключение дисплея к Arduino 17.11. Первый эксперимент с ЖКИ 17.12. Как же все это работает?
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.