Оглавление:

Менее известные особенности Arduino: 9 шагов
Менее известные особенности Arduino: 9 шагов

Видео: Менее известные особенности Arduino: 9 шагов

Видео: Менее известные особенности Arduino: 9 шагов
Видео: Что купить новичку в Arduino? Большой обзор 2024, Июль
Anonim
Менее известные особенности Arduino
Менее известные особенности Arduino

Это скорее список не так часто упоминаемых функций обычно используемых платформ Arduino (например, Uno, Nano). Этот список должен служить справочником всякий раз, когда вам нужно найти эти функции и распространить информацию.

Посмотрите на код, чтобы увидеть примеры для всех этих функций, поскольку я использовал их в нескольких своих проектах здесь, в инструкциях (например, 1-проводный дисплей Arduino (144 символа)). Следующие шаги объясняют по одной функции.

Шаг 1: напряжение питания

Arduino может косвенным образом измерять собственное напряжение питания. Измеряя внутренний опорный сигнал с напряжением питания в качестве верхней границы опорного напряжения, вы можете получить соотношение между внутренним опорным напряжением и напряжением питания (напряжение питания, действующее как верхняя граница для показаний аналогового сигнала / АЦП). Поскольку вы знаете точное значение внутреннего опорного напряжения, вы можете рассчитать напряжение питания.

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

  • Секретный вольтметр Arduino - Измерьте напряжение батареи:
  • Может ли Arduino измерить свой собственный Vin ?:

Шаг 2: внутренняя температура

Некоторые Arduino оснащены внутренним датчиком температуры и поэтому могут измерять внутреннюю (полупроводниковую) температуру.

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

Внутренний датчик температуры:

Может ли Arduino измерить свой собственный Vin ?:

Шаг 3: Аналоговый компаратор (прерывание)

Arduino может установить аналоговый компаратор между контактами A0 и A1. Таким образом, один дает уровень напряжения, а другой проверяется на пересечение этого напряжения. Прерывание возникает в зависимости от того, является ли пересечение передним или задним фронтом (или обоими). Затем прерывание может быть перехвачено программным обеспечением и действовать соответствующим образом.

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

Прерывание аналогового компаратора:

Шаг 4: счетчик

Конечно, в AVR есть несколько счетчиков. Обычно они используются для настройки таймера различных частот и повышения прерываний по мере необходимости. Другое может быть очень старомодным использованием - использовать их как счетчики без какой-либо дополнительной магии, просто прочитайте значение, когда оно вам нужно (опрос). Интересным использованием этого может быть отключение кнопок, например. Предложите, например, этот пост: Пример счетчика T1 AVR

Шаг 5: предопределенные константы

Есть несколько предопределенных переменных, которые можно использовать для добавления информации о версии и компиляции в ваш проект.

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

Serial.println (_ ДАТА_); // дата компиляции

Serial.println (_ ВРЕМЯ_); // время компиляции

Строка stringOne = Строка (ARDUINO, DEC);

Serial.println (stringOne); // версия arduino ide

Serial.println (_ VERSION_); // версия gcc

Serial.println (_ FILE_); // файл скомпилирован

эти фрагменты кода будут выводить эти данные на последовательную консоль.

Шаг 6. Сохраните переменную в ОЗУ с помощью сброса

Хорошо известно, что Arduino Uno (ATmega328) имеет внутреннюю EEPROM, которая позволяет сохранять значения и настройки во время выключения и восстанавливать их при следующем включении. Не очень известный факт может заключаться в том, что на самом деле можно сохранить значение во время сброса даже в ОЗУ - однако значения теряются во время цикла включения питания - с синтаксисом:

unsigned long variable_that_is_preserved _attribute_ ((section (".noinit")));

Это позволяет вам, например, подсчитать количество СБРОСОВ и, используя EEPROM, также количество включений питания.

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

  • Сохранить переменную в оперативной памяти с помощью сброса:
  • Библиотека EEPROM:

Шаг 7: доступ к тактовому сигналу

Arduinos и другие AVR (например, ATtiny) имеют внутренние часы, позволяющие запускать их без использования внешнего кварцевого генератора. Кроме того, в то же время они также могут подключить этот сигнал к внешнему устройству, поместив его на контакт (например, PB4). Сложная часть здесь заключается в том, что вам нужно заменить биты предохранителей чипа, чтобы включить эту функцию, а замена битов предохранителей всегда несет риск замораживания чипа.

Вы должны включить предохранитель CKOUT, и самый простой способ сделать это - следовать инструкциям по изменению битов предохранителя AVR Atmega328p - 8-битного микроконтроллера с использованием Arduino.

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

  • Настройка внутреннего генератора ATtiny:
  • Как изменить биты предохранителя AVR Atmega328p - 8-битный микроконтроллер с помощью Arduino:

Шаг 8: Внутренняя структура порта ATmega328P

Знание внутренней структуры портов ATmega328P позволяет нам выйти за рамки стандартных ограничений использования. Обратитесь к разделу, посвященному измерителю емкости для диапазона от 20 пФ до 1000 нФ, для получения более подробной информации и схемы внутренней цепи.

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

Более продвинутым является использование этих знаний, как уже упоминалось, для измерения конденсаторов размером до 20 пФ и, кроме того, без каких-либо дополнительных проводов! Для достижения этой производительности в примере используются внутреннее / входное сопротивление, внутренний подтягивающий резистор и паразитный конденсатор. Сравните с Учебным пособием Arduino CapacitanceMeter, которое не может быть ниже нескольких нФ.

Шаг 9: Встроенный светодиод в качестве фотоприемника

Многие платы Arduino имеют встроенные или встроенные светодиоды, которыми можно управлять с помощью кода, например платы Uno или Nano на выводе 13. Добавив один провод от этого вывода к выводу аналогового входа (например, A0), мы также можем использовать этот светодиод в качестве фотодетектора. Это можно использовать по-разному, например: используйте для измерения освещения окружающей среды, используйте светодиод в качестве кнопки, используйте светодиод для двунаправленной связи (PJON AnalogSampling) и т. д.

Рекомендуемые: