Cемисегментный индикатор - это еще одно устройство отображения информации, но
в отличии от уже знакомых нам светодиодов, может отображать цифры и даже
некоторые буквы, используя для этого всего восемь проводов. Сегодня такие
индикаторы выпускаются на основе светодиодов:
Индикаторы различаются по типу соединения светодиодов, внутри индикатора
светодиоды могут быть по схеме с общий анодом или общим катодом.
Для примера используем индикатор с общим катодом. Так как индикатор, по сути,
это набор светодиодов, подключать индикатор напрямую к Arduino нельзя, иначе
индикатор просто выйдет из строя:
void setup() { pinMode(13, OUTPUT); //сегмент A pinMode(12, OUTPUT); //сегмент B pinMode(11, OUTPUT); //сегмент C pinMode(10, OUTPUT); //сегмент D pinMode(9, OUTPUT); //сегмент E pinMode(8, OUTPUT); //сегмент F pinMode(7, OUTPUT); //сегмент G pinMode(6, OUTPUT); //сегмент H } void loop() { digitalWrite(13, HIGH); //зажечь сегмент A digitalWrite(12, HIGH); //зажечь сегмент B digitalWrite(11, HIGH); //зажечь сегмент C digitalWrite(10, HIGH); //зажечь сегмент D digitalWrite(9, HIGH); //зажечь сегмент E digitalWrite(8, HIGH); //зажечь сегмент F }Скетч очень простой, как он работает понятно из комментариев, а результатом работы будет:
Мы уже сталкивались с понятием переменная
(см. Урок 2) и выяснили, что переменная, это
место хранения данных, и каждая объявленная переменная может принимать
произвольное значение. Но дело в том, что данные бывают разными. Например,
цифры, целые числа, буквы, символы и так далее. Рассмотрим с какими типами
данных мы можем столкнуться.
int - (от англ. integer - целое число) один их наиболее часто
используемых типов данных для хранения целых чисел, занимает 2 байта памяти
(16 бит), а значит может хранить пятнадцати разрядное двоичное число, и
еще один, старший разряд нужен для того, чтобы указать отрицательное это число
или положительное. Максимальное 15-ти разрядное число в двоичной системе
соответствует числу 32768 в десятичной, а значит переменная, с типом данных
"int" может хранить любое число из диапазона от -32768 до 32767.
unsigned int - беззнаковый тип целых чисел, аналогичен типу "int", также
занимает в памяти 2 байта, но хранит только положительные числа, а значит
использует все 16 разрядов, поэтому может хранить любое число из диапазона
от 0 до 65535
boolean - Логический (булевый) тип данных. Занимает в памяти один байт
и может принимать одно из двух значений "true" или "false".
char - переменные этого типа занимает в памяти один байт и может хранить
в памяти всего один алфавитно-цифовой символ. Строго говоря, никакие символы,
в привычном нам виде, там не хранятся. Там хранится двоичное число,
соответствующее тому или иному символу, в соответствии с таблицей кодировки.
В Arduino используется таблица кодировки ASKII.
Т.к. символ хранится как число в памяти над ним возможно производить
арифметические действия (например, 'A' + 1 будет 66, т.к. ASCII код для
'A' - 65). Тип char знаковый тип, т.е. число (код) хранящийся в памяти может
принимать значения от -128 до 127.
byte - Этот тип данных аналогичен типу "char", хранит 8-ми битное
беззнаковое число, и может принимать значение от 0 до 255.