Съдържание:

По -малко известни функции на Arduino: 9 стъпки
По -малко известни функции на Arduino: 9 стъпки

Видео: По -малко известни функции на Arduino: 9 стъпки

Видео: По -малко известни функции на Arduino: 9 стъпки
Видео: НАБРАЛ Секретный Код На Телефоне И ОФИГЕЛ!! БАТАРЕЯ НЕ САДИТСЯ! 2024, Юли
Anonim
По -малко известни функции на Arduino
По -малко известни функции на Arduino

Това е по -скоро списък на не толкова често споменавани функции на обикновено използваните платформи Arduino (например Uno, Nano). Този списък трябва да служи като справка винаги, когато трябва да потърсите тези функции и да разпространите думата.

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

Стъпка 1: Захранващо напрежение

Arduino може да измерва собственото си захранващо напрежение по непряк начин. Чрез измерване на вътрешната референция с захранващото напрежение като референтна горна граница можете да получите съотношението между вътрешното референтно и захранващото напрежение (захранващото напрежение действа като горна граница за аналоговото/ADC отчитане). Тъй като знаете точната стойност на референтното вътрешно напрежение, можете да изчислите захранващото напрежение.

За точни подробности как да направите това, включително примерен код, вижте:

  • Тайният волтметър Arduino-Измерете напрежението на батерията:
  • Може ли Arduino да измери своя собствен Vin ?:

Стъпка 2: Вътрешна температура

Някои Arduino са оборудвани с вътрешен температурен сензор и следователно могат да измерват вътрешната си температура (полупроводник).

За точни подробности как да направите това, включително примерен код, вижте:

Вътрешен температурен сензор:

Може ли Arduino да измери своя собствен Vin ?:

Стъпка 3: Аналогов компаратор (прекъсване)

Arduino може да настрои аналогов сравнител между изводи A0 и A1. Така единият дава нивото на напрежение, а другият се проверява за пресичане на това напрежение. Прекъсването се повишава в зависимост от това дали пресичането е нарастващ или спадащ ръб (или и двете). След това прекъсването може да бъде уловено от софтуер и да действа съответно.

За точни подробности как да направите това, включително примерен код, вижте:

Прекъсване на аналоговия компаратор:

Стъпка 4: Брояч

Разбира се, AVR имат включени няколко брояча. Обикновено те се използват за настройка на таймер с различни честоти и увеличаване на прекъсванията при нужда. Друга може да бъде много старомодна употреба е да ги използвате просто като броячи без допълнителна магия, просто прочетете стойността, когато имате нужда от нея (анкета). Интересно използване на това може да бъде премахване на бутоните, напр. Посочете например тази публикация: AVR Пример T1 брояч

Стъпка 5: Предварително дефинирани константи

Има някои предварително дефинирани променливи, които могат да се използват за добавяне на информация за версията и компилацията към вашия проект.

За точни подробности как да направите това, включително примерен код, вижте:

Serial.println (_ DATE_); // дата на компилация

Serial.println (_ TIME_); // време за компилация

String stringOne = String (ARDUINO, DEC);

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

Serial.println (_ ВЕРСИЯ_); // gcc версия

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

тези кодови фрагменти ще изведат тези данни в серийна конзола.

Стъпка 6: Запазете променлива в RAM чрез нулиране

Добре известно е, че Arduino Uno (ATmega328) има вътрешен EEPROM, който ви позволява да запазвате стойности и настройки по време на изключване и да ги възстановявате при следващото включване. Не толкова известен факт може да е, че всъщност е възможно да се запази стойността по време на нулиране дори в RAM - въпреки това стойностите се губят по време на цикъла на захранване - със синтаксиса:

unsigned long variable_that_is_preserved _attribute_ ((раздел (".noinit")));

Това ви позволява например да преброите броя на RESET-овете и чрез използване на EEPROM също броя на включванията.

За точни подробности как да направите това, включително примерен код, вижте:

  • Запазване на променлива в Ram чрез нулиране:
  • Библиотека на EEPROM:

Стъпка 7: Достъп до сигнала на часовника

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

Трябва да активирате предпазителя CKOUT и най -лесният начин да направите това е като следвате инструкциите за Как да смените битовете на предпазителите на AVR Atmega328p - 8 -битов микроконтролер, използвайки Arduino.

За точни подробности как да направите това, включително примерен код, вижте:

  • Настройка на вътрешния осцилатор ATtiny:
  • Как да сменим предпазителите на AVR Atmega328p-8-битов микроконтролер с помощта на Arduino:

Стъпка 8: Вътрешна структура на порта на ATmega328P

Познаването на вътрешната структура на портовете на ATmega328P ни позволява да надхвърлим стандартните граници на използване. Вижте раздела за измервател на капацитет за обхват 20 pF до 1000 nF за повече подробности и схема на вътрешната верига.

Простият пример е да използвате бутони с цифрови портове, които не се нуждаят от никакъв резистор, поради използването на вътрешен резистор за издърпване, както е показано от серийния пример за входящо извличане или инструктирания бутон Arduino без резистор.

По -напредналото е използването на тези знания, както е споменато за измервателни кондензатори с размер до 20 pF и освен това без допълнително окабеляване! За да се постигне това представяне, примерът използва вътрешния/входния импеданс, вътрешния издърпващ резистор и разсеяния кондензатор. Сравнете с урока за Arduino CapacitanceMeter, който не може да бъде по -нисък от няколко nF.

Стъпка 9: Вграден (вграден) LED като фотодетектор

Много платки Arduino имат вградени или вградени светодиоди, които могат да се управляват от код, напр. платките Uno или Nano на щифт 13. Като добавим един единствен проводник от този щифт към аналогов входен щифт (например A0), можем също да използваме този светодиод като фотодетектор. Това може да се използва по различни начини като; използвайте за измерване на осветеността на околната среда, използвайте LED като бутон, използвайте LED за двупосочна комуникация (PJON AnalogSampling) и т.н.

Препоръчано: