# Arduino

![Arduino Logo](../../assets/languages/arduino.svg)

## Дата и время

- [`__DATE__` и `__TIME__`](date/compile_date_time.c) — Пример, который отображает дату и время компиляции скетча
- [](date/DATE_to_YYYY-MM-DD.c) — Функция для преобразования `__DATE__` в формат `ГГГГ-ММ-ДД`

## Функции

* Функция, которая моргает встроенным светодиодом [`void init_blink(int times, int delay)`](init_blink.h)

## Память

### EEPROM

- [EEPROM](memory/eeprom.ino) — Пример работы с EEPROM

| Тип    | Чтение из программы | Запись из программы | Очистка при перезагрузке |
|--------|---------------------|---------------------|--------------------------|
| Flash  | Да, PROGMEM         | Можно, но сложно    | Нет                      |
| SRAM   | Да                  | Да                  | Да                       |
| EEPROM | Да                  | Да                  | Нет                      |

EEPROM представляет собой область памяти, состоящую из элементарных ячеек
с размером в один байт (как SRAM). Объём EEPROM разный у разных моделей МК:

* ATmega328 (Arduino UNO, Nano, Pro Mini): `1 кБ`
* ATmega2560 (Arduino Mega): `4 кБ`
* ATtiny85 (Digispark): `512 Б`
* ESP8266 / ESP32: `4096 Б`

### RAM

- [EEPROM](memory/variables_sizes.ino) — Размер типов перенных в байтах
- [`free_ram()`](memory/free_ram.c) — Функция, которая возвращает количество свободной RAM

## Serial

- [`serial.find()`](memory/find.ino) — Ищет строку полученную из Serial
