Плата контролера Arduino UNO R3

  • 14 дискретних входів/виходів, 6 з яких підтримують апаратну ШІМ
  • 6 аналогових 10-бітних входів
  • Рекомендована напруга живлення 7...12В
  • Максимальний струм споживання на виводі 3,3 В: 50 мА
  • Flash пам'ять 32Кб 0,5 кБ з якої зайнято загрузчиком
  • Тактова частота 16 МГц

Arduino Uno це стандартна плата Arduino та можливо найбільш розповсюджена. Вона заснована на чипі Atmel ATmega328, що на борту має 32 КБ флеш-пам'яті, 2 Кб SRAM та 1 Кбайт EEPROM пам'яті. На периферії має 14 дискретних (цифрових) каналів вводу / виводу та 6 аналогових каналів вводу / виводу, це дуже різностороннє-корисні девайси, що дозволяють перекривати більшість любительських завдань у галузі мікроконтролерної техніки. Чип ATmega16u2 на борту керує послідовним зв'язком. Дана плата контролера є однією з самих дешевих та найбільш часто використовуваних. Під час планування нового проекту, якщо ви незнайомі з платформою Arduino, раджу почати з Uno.


Запись настроек в постоянную память Arduino

Часто бывает, что нам необходимо сохранить значения некоторых переменных внутри Arduino, на случай его выключения или перезагрузки. К счастью, каждый Arduino имеет внутреннюю электрически стираемое программируемое постоянное запоминающее устройство (EEPROM). Важно также знать, при пользовании EEPROM -  эта память внутри контроллера Arduino имеет жизненный цикл 100000 чтений / записи. Этого может показаться много, но это не так. Используйте EEPROM только, когда очень необходимо. Теперь перейдем к практике и попробуем запрограммировать Arduino для записи, сколько раз мы нажали на кнопку. Если питание выключить, он все равно будет помнить последний подсчет с помощью EEPROM.

Для эксперимента нам понадобится Arduino UNO R3 и подключенная к нему кнопка (подключим её от 12-го дискретного выхода и на общий провод питания).


Следующий код прочитает последнее запомненное количество нажатий кнопки из ячейки памяти EEPROM и дальше,

при каждом нажатии кнопки, будет добавлять единицу к значению этого количества и записывать его назад в EEPROM:


// Подключаем библиотеку работы с EEPROM

#include <EEPROM.h>

int count = 0; // счетная переменная

int address = 9; // Адрес, где мы будем хранить значение переменной в EEPROM

int buttonPin = 12;

void setup(){

// Прочитать последнее сохраненное значение нажатий на кнопку

count = EEPROM.read(address);

pinMode(buttonPin, INPUT_PULLUP);

Serial.begin(9600);

// Напечатать в окне COM порта полученное значение переменной из EEPROM

Serial.print("Initial value: ");

Serial.println(count);

}

void loop(){

// Отслеживаем нажатие кнопки

if (digitalRead(buttonPin) == LOW){

count++; // увеличиваем счетчик на единицу

// Записывает переменную счетчика в ячейку с определенным адресом.

EEPROM.write(address, count % 256);

Serial.println(count);

delay(500); // задержка в пол секунды.

}

}


Микроконтроллер на каждой плате Arduino имеет небольшую внутреннюю память EEPROM, предназначенную для хранения данных, при пропадании питания. Размеры доступной памяти варьируются в зависимости от используемого микроконтроллера. Например, Arduino Uno, который использует ATMEGA 328 имеет 1 кБ, в то время как ATmega2560 используемый в Arduino Mega 2560 имеет 4 Кб. Это означает, что Arduino Uno имеет 1024 ячейки с 1 байтом каждый. Далее попробуем поближе рассмотреть работу с библиотекой для EEPROM.


Как обычно, для начала подключаем необходимую библиотеку EEPROM.h:

#include <EEPROM.h>


Первая функция, которую мы используем из библиотеки EEPROM, следующая:

count = EEPROM.read(address);

Здесь мы читаем значение, найденное в EEPROM по указанному адресу, и сохраняем его в нашей переменной подсчета. Мы делаем это в функции setup(), так что мы можем продолжить подсчет с последнего сохраненного значения.

После этого, мы определяем каждое нажатие кнопки. Когда есть нажатие, мы увеличиваем счетчик и записываем его последнее значение в тот же адрес ячейки EEPROM:

EEPROM.write(address, count % 256);

EEPROM создана из 1-байтных ячеек, и поэтому мы не можем записать число большее чем 255 без переполнения. Мы можем использовать несколько байт для хранения больших значений, но в данном случае, так-как это простое описание, мы используем код % 256, чтобы просто начать с цифры 0, когда прийдет переполнение цифры 255.

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре

Arduino UNO R3 + USB кабель

  • Виробник Arduino
  • Модель UNO R3 ATMEGA16U22
  • Наявність Є в наявності
  • 212.84грн.


Рекомендовані товари

Корпус для Arduino Uno R3

Корпус для Arduino Uno R3

Акриловий прозорий корпус для плати розробника Arduino Uno R3Поставляється в розібраному вигляд..

71.39грн.

Прото шилд для Arduino UNO

Прото шилд для Arduino UNO

Шилд для прототипування під Arduino UNO.Покликаний спростити монтаж невеликих любительських проектів..

49.91грн.

Шилд для підключення датчиків до Arduino UNO

Шилд для підключення датчиків до Arduino UNO

Так званий "сенсор шилд". Шилд розширення для плати мікроконтролера Arduino UNO, що полегшує мо..

61.88грн.

USB шнурок для Arduino UNO, MEGA

USB шнурок для Arduino UNO, MEGA

USB кабель типу A/B для підключення контролерів Arduino UNO або Arduino MEGA до комп'ютера.Також під..

29.14грн.

Нове

Мідний чулок для видалення припою 2мм 1,5м

Мідний чулок для видалення припою 2мм 1,5м

Мідна оплітка - застосовується для залужування доріжок друкованої плати, а також для видалення надли..

Модуль твердотільного реле 4-канальний

Модуль твердотільного реле 4-канальний

Модуль призначений для комутації 4-х навантажень зі змінною напругою живлення 75 ... 264 ВМаксимальн..

Оптопара EL817 SMD

Оптопара EL817 SMD

Оптопара з транзистором на виходіЗастосовується для гальванічної розв'язки дискретного сигналу, а та..

Стабілізатор напруги 5В 2А мікросхема L78S05CV

Стабілізатор напруги 5В 2А мікросхема L78S05CV

Мікросхема стабілізатор напруги L78S05CVЗастосовується для стабілізації пульсуючої напруги в блоках ..

Програматор AVR-контролерів USBASP

Програматор AVR-контролерів USBASP

Програматор для завантаження та відлагодження програм в мікроконтролери компанії ATMEL.Інтерфейс про..

Зсувний регістр 74HC595N

Зсувний регістр 74HC595N

Цю мікросхему використовують для керування світлодіодними гірляндами та символьними індикаторами.Вон..

Світлодіод ультраяскравий 3мм

Світлодіод ультраяскравий 3мм

Над-яскравий світлодіод діаметром 3 ммКорпус прозорий в світлодіодів різного кольору світіння. Тобто..

Вентилятор для Orange PI товщиною 10мм

Вентилятор для Orange PI товщиною 10мм

Вентилятор для охолодження процесора міні-комп'ютера Orange PI або Raspberry PIПрацює дуже тихоЖивле..

Термінальний роз'ємний конектор кутовий 4д

Термінальний роз'ємний конектор кутовий 4д

Роз'ємний 4-дротовий конектор для пайки на друковану платуДроти підводяться паралельно платі та з'єд..

Шестерня для зубчатого ременю на 20 зубців під вісь 5 мм

Шестерня для зубчатого ременю на 20 зубців під вісь 5 мм

Використовується для передачі та редукції обертаючого моменту від двигунаКількість зубців 20 шт.Діам..

Термінальний роз'ємний конектор кутовий 3д

Термінальний роз'ємний конектор кутовий 3д

Роз'ємний трьохдротовий конектор для пайки на друковану платуДроти підводяться паралельно платі та з..

Термінальний роз'ємний конектор кутовий 2д3.81mm

Термінальний роз'ємний конектор кутовий 2д3.81mm

Роз'ємний двохдротовий конектор для пайки на друковану платуДроти підводяться паралельно платі та з'..

Мікроконтролер ATTINY13A

Мікроконтролер ATTINY13A

Мініатюрний економічний AVR 8-бітний мікроконтролер, який можна програмувати як програматором, так і..

Логічний аналізатор 8 каналів

Логічний аналізатор 8 каналів

Надписи на корпусі можуть відрізнятись від наведених на картинці, але сутність приладу незмінна.Цифр..

Лінійний підшипник 8мм

Лінійний підшипник 8мм

Підшипник для лінійного ковзання робочого органу 3D-принтера або CNC за своїми осями.Одягається на ц..

Підшипник для зубчатого ременя GT2 без зубів

Підшипник для зубчатого ременя GT2 без зубів

Підшипник для натяжки зубчатого ременя GT2 6 мм на вісь 5 ммЗастосовується у 3D-принтерах та CNCШири..