Глава 7. Arduino и знакосинтезирующие жидкокристаллические индикаторы
111
lcd.noBlink();
for(int i=0;i<10;i++)
{
int rand1=(micros()+millis());
lcd.setCursor(rand1%15,rand1%4);
delay(1000);
}
delay(1000);
lcd.home();
В заключение рассмотрим пример создания пользовательских символов. Для ре-
жима 5×7 можно создать 8 пользовательских символов с номерами от 0 до 7. Для
вывода на экран дисплея используется метод
write(N)
, где N — номер созданного
символа. Создадим 8 символов. Описываем наши собственные символы в виде мас-
сивов битовых масок. Каждый символ — это восемь масок по пять битов. Выводим
символы на дисплей с интервалом 1 сек. Код представлен в листинге 7.6.
Листинг 7.6
byte s1[8]={B11111,B11111,B11111,B11111,B11111,B11111,B11111};
byte s2[8]={B00000,B00000,B11111,B11111,B11111,B11111,B11111};
byte s3[8]={B00000,B00000,B00000,B00000,B11111,B11111,B11111};
byte s4[8]={B00011,B00011,B00011,B00011,B00011,B00011,B00011};
. . . . . .
void loop()
{
. . . . . .
for(int i=0;i<4;i++)
{
;
}
lcd.createChar(0, s1);
lcd.createChar(1, s1);
lcd.createChar(2, s1);
lcd.createChar(3, s1);
lcd.setCursor(0, 0);
lcd.write(0);lcd.write("");
lcd.write(1);lcd.write("");
lcd.write(2);lcd.write("");
lcd.write(3);lcd.write("");
delay(10000);
}
Полный вариант рассмотренного скетча находится в папке
examples/_07_1
сопро-
вождающего книгу электронного архива. Напоминаю, что этот электронный
архив можно скачать с FTP-сервера издательства "БХВ-Петербург" по ссыл-
ке ftp://ftp.bhv.ru/9785977533379.zip, а также со страницы книги на сайте
www.bhv.ru.
ГЛ А В А
8
Библиотека EEPROM
Микроконтроллеры ATmega имеют на борту энергонезависимую память EEPROM,
не потеряющую записанные в нее данные даже после отключения питания.
512 байтов такой памяти несут ATmega8 и ATmega168, 1024 байта — ATmega328,
4096 байтов — Arduino Mega. Память типа EEPROM допускает несколько десятков
тысяч циклов записи и стирания данных. Она может пригодиться для сохранения
изменяющихся настроек при отключении питания от устройств Arduino. Для рабо-
ты с этой памятью в составе Arduino IDE имеется удобная библиотека
EEPROM
.
8.1. Функции библиотек EEPROM
Библиотека
EEPROM
содержит две функции: чтения и записи в память данных.
8.1.1. Функция чтения EEPROM.read
Функция
EEPROM.read
считывает байт из энергонезависимой памяти EEPROM. Если
байт до этого никогда не перезаписывался — вернет значение 255.
Синтаксис функции
EEPROM.read
:
EEPROM.read(address)
Параметр:
address
— порядковый номер ячейки памяти для чтения от 0 до 512 (или
1024) (
int
);
Возвращаемое значение — байт, хранимый в ячейке памяти.
Пример считывания значения всех байтов энергонезависимой памяти EEPROM
и вывода их в COM-порт представлен в листинге 8.1.
Листинг 8.1
#include
// начальный адрес памяти EEPROM
int address = 0;
Do'stlaringiz bilan baham: |