• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Сенсорный интерфейс Arduino Nano



 

Ниже представлен интерфейс nano sensor - универсальный сенсорный интерфейс на базе микроконтроллера с механизмом энергосбережения. Идея, сосредоточенная вокруг микроконтроллера Arduino Nano (v3), была разработана в первую очередь для создания автономных систем безопасности и проектов, работающих на небольших батареях. Чтобы свести к минимуму энергопотребление, используется режим ожидания, так что сигнал внешнего прерывания пробуждает процессор от глубокого сна. Обратите внимание, что процессор также проснется по сигналу сброса, но этот вариант будет изучен в будущих проектах. 
См. Установку оборудования ниже:

 

Макет оборудования

Простой код будет функционировать следующим образом:

Настройте последовательный порт, сконфигурируйте контакт 2 (INT0) как вход с внутренним подтягиванием и запустите функцию цикла, которая останется в режиме ожидания в течение шести секунд. По прошествии времени функция сна будет включена, и все выполнение кода прекратится. Когда контакт триггера (INT0) низкий (L), прерывание загорится, чтобы вывести процессор из спящего режима, и выполнение кода продолжится с того места, где оно остановилось. На этот раз логический сигнал высокого уровня (H) будет доступен через другой ввод-вывод микроконтроллера для управления внешними переключателями, преобразователями и т. П.

 

/*
* Nano Sensor Interface
* Arduino Nano (v3) in Sleep Mode
* T.K.Hareendran/2018
*/

 
#include 
#include 

 
int tgrPin = 2; // Trigger Input_Interrupt 0 Pin
int drvPin = 13; // Drive Output_D13 Pin

 
/*  Service routine for tgrPin interrupt  */
void tgrPinInterrupt(void)
{
  /* Revert from sleep */
  /* Detach interrupt while the interrupt pin is triggered  */
  detachInterrupt(0);
}
/* Push the uC into sleep mode */
void enterSleep(void)
{
  /* Setup tgrPin as an interrupt and attach handler. */
  attachInterrupt(0, tgrPinInterrupt, LOW);
  delay(100);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
 sleep_mode();
sleep_disable();
}
/* Setup for the uC  */
void setup()
{
  Serial.begin(9600); // For Debug Purpose

 
  /* Setup the uC I/O */
  pinMode(tgrPin, INPUT_PULLUP); // Input with Internal Pull-up
  pinMode(drvPin, OUTPUT);
  Serial.println(“Initialisation Finished!”);
}
/* Main application loop */
int seconds = 0;
void loop()
{
  delay(1000);
  seconds++;
  Serial.print(“Waken for “);
  Serial.print(seconds, DEC);
  Serial.println(“ Second”);
  digitalWrite (drvPin, HIGH);
 if (seconds == 6)
  {
    Serial.println(“Returning to Sleep!”);
    digitalWrite (drvPin, LOW);
    delay(200);
    seconds = 0;
 enterSleep();
  }
}

 

Короче говоря, простой код возбуждает встроенный светодиод (D13), чтобы вы знали, что программа запущена. Затем он устанавливает режим сна и переходит в режим сна. Когда кнопка Test (D2) нажата, она пробуждается, возбуждает светодиод и возвращается спать.

 

Выход терминала

Как вы могли заметить, заземление (0 В) триггера (D2) микроконтроллера позволит системе, и вы получите выход TTL-High с выводов (D13) на срок до шести секунд. Например, триггерный штырь может быть подключен к внешнему датчику, герконному реле или фоторезистору. Часто бывает полезно направлять входной штырь в известное состояние, если вход отсутствует, добавив подтягивающий резистор. К счастью, в микросхему ATmega встроены нагрузочные резисторы, к которым можно получить доступ из программного обеспечения (как здесь используется для D2). На большинстве плат на базе AVR значение должно быть в диапазоне от 20 кОм до 50 кОм. Это устраняет необходимость внешнего подтягивающего резистора для штифта триггера (датчика).

Я нашел в документации, что Nano (v3) может работать в любом месте от 1,8 до 5,5 В (для 16 МГц, нам нужно всего 3,78 В) при вводе через 5-V контакт, поэтому я включил свой китайский нокаут Nano с полностью заряженный литий-ионный аккумулятор 3.7 V (фактический Vout = 4,1 В). Наблюдаемое потребление тока в то время составляло около 5,5 мА (спящий режим) и 13,6 мА (активный). Несколько более высокие значения объясняются только наличием светодиодного индикатора питания (PWR) в спящем режиме и светодиода питания + светодиод D13 (L) в активном режиме (да, обе лампы должны быть выведены из платы, для аргумента) ,

Я отметил, что максимальная потребляемая мощность Nano (v3), когда она работает в состоянии по умолчанию (на 16 МГц со светодиодами) и питается от внешнего регулируемого источника питания 5 В, достигает 35 мА (экспериментальное значение).Однако это зависит от того, что вы приложили к Nano

 

 

Я думаю, что ATtiny85 из того же семейства AVR - идеальное решение для простых автономных проектов с батарейным питанием. Он также имеет маломощный (спящий режим) спящий режим, что идеально, потому что это позволяет нам снизить потребление энергии (диапазон uA), чтобы увеличить время автономной работы. Удивительно, но есть пять контактов ввода / вывода в удобном 8-контактном DIP-корпусе, достаточном для самых поразительных проектов

 

 

Я использовал кучу ATtiny85 для некоторых смешных проектов (возможно, они не намного дешевле). Лично мой следующий шаг с «сонным» AVR заключается в том, чтобы спроектировать малоточный, автономный автономный сенсорный узел с ATtiny85.Излишне говорить, что я потратил слишком много времени на то, чтобы выяснить, как «настроить» мой ATtiny85 для экономии заряда батареи. Поэтому я задокументирую проект для заинтересованных зрителей, но, к сожалению, это может занять несколько недель, чем обычно!



 

В начало обзора



Купить радиодетали для ремонта
 



Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 372



          

Радио для всех© 2024