Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекция 46 Программирование в Arduino. Базовые знания
Цели лекции: 1. Изучение программной среды разработки Arduino IDE. 2. Изучение основных компонентов платы Arduino Uno: цифровые выводы 3. Изучение основных компонентов платы Arduino Uno: аналоговые входы 4. Изучение основ широтно-импульсной модуляции 5. Изучение основ огранизации памяти 6. Знакомство со структурой программы
Цифровые выводы Выводы платформы Arduino могут работать как входы или как выходы. Также аналоговые входы Arduino (ATmega) могут конфигурироваться и работать так же, как и цифровые порты ввода/вывода. Выводы Arduino настроены как порты ввода, поэтому не требуется декларации в функции pinMode(). Сконфигурированные порты ввода находятся в высокоимпедансном состоянии. Это означает, что порт ввода дает слишком малую нагрузку на схему, в которую он включен. Для перевода порта ввода из одного состояния в другое требуется маленькое значение тока. Если к выводу ничего не подключено, то значения на нем будут принимать случайные величины, наводимые электрическими помехами. Если на порт ввода не поступает сигнал, то рекомендуется задать порту известное состояние. Это делается добавлением подтягивающих резисторов 10 кОм, подключающих вход либо к питанию +5 В, либо к земле. Микроконтроллер ATmega имеет программируемые встроенные подтягивающие резисторы 20 кОм. Программирование данных резисторов осуществляется так: pinMode(pin, INPUT); // назначить выводу порт ввода digitalWrite(pin, HIGH); // включить подтягивающий резистор Выводы, сконфигурированные как порты вывода находятся в низкоимпедансном состоянии. Данные выводы могут пропускать через себя достаточно большой ток. Выводы микросхемы ATmega могут быть источником тока до 40 мА. Такого значения тока недостаточно для большинства реле, соленоидов и двигателей. Короткие замыкания выводов Arduino или попытки подключить энергоемкие устройства могут повредить выходные транзисторы вывода или весь микроконтроллер ATmega. Аналоговые входы Микроконтроллеры ATmega, используемые в Arduino, содержат шестиканальный аналого-цифровой преобразователь (АЦП). Разрешение преобразователя составляет 10 битов, что позволяет на выходе получать значения от 0 до 1023. Аналоговые входы могут использоваться как цифровые выводы портов ввода/вывода, при этом они имеют номера от 14 до 19:
pinMode(14,OUTPUT); digitalWrite(14, HIGH); Для вывода, работавшего ранее как цифровой порт вывода, команда analogRead будет работать некорректно. В этом случае рекомендуется сконфигурировать его как аналоговый вход. Широтно-импульсная модуляция Широтно-импульсная модуляция (ШИМ) — это операция получения изменяющегося аналогового значения посредством цифровых устройств. Подавая на выход сигнал, состоящий из высоких и низких уровней, мы моделируем напряжение между максимальным значением (5 В) и минимальным (0 В). Длительность включения максимального значения называется шириной импульса. Для получения различных аналоговых величин изменяется ширина импульса. В результате на выходе будет величина напряжения, равная площади под импульсами, показанные на рисунке Рисунок 46.1 – Широтно-импульсная модуляция
Вызов функции analogWrite() с масштабом 0-255 означает, что значение analogWrite(255) будет соответствовать 5 В (100 % рабочий цикл — постоянное включение 5 В), а значение analogWrite(127) — 2,5 В (50 % рабочий цикл). Память в Arduino В микроконтроллерах ATmega168, ATmega328, ATmega1280, ATmega2560, используемых на платформах Arduino, существует три вида памяти: - флеш-память — используется для хранения скетчей; - ОЗУ (статическая оперативная память) — служит для хранения и работы переменных; - EEPROM (энергонезависимая память) — применяется для хранения постоянной информации. Флеш-память и EEPROM являются энергонезависимыми видами памяти (данные сохраняются при отключении питания). ОЗУ является энергозависимой памятью. Микроконтроллер ATmega168 имеет: - 16 Кбайт флеш-памяти (2 Кбайт используется для хранения загрузчика); - 1024 байта ОЗУ; - 512 байт EEPROM. Для ATmega328 эти показатели следующие: - 32 Кбайт флеш-памяти (2 Кбайт используется для хранения загрузчика); - 2 Кбайт ОЗУ; - 1024 байт EEPROM. Для ATmega1280 эти показатели следующие: - 128 Кбайт флеш-памяти (2 Кбайт используется для хранения загрузчика); - 8 Кбайт ОЗУ; - 4096 байт EEPROM. Для ATmega2560 эти показатели следующие: - 256 Кбайт флеш-памяти (2 Кбайт используется для хранения загрузчика); - 16 Кбайт ОЗУ; - 9182 байт EEPROM. При отсутствии свободного места в ОЗУ могут произойти сбои программы.
|
|||||
Последнее изменение этой страницы: 2021-02-07; просмотров: 384; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.120.109 (0.005 с.) |