Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
theory:data [2020/08/14 11:03] – alexnik | theory:data [2020/08/14 12:07] (текущий) – alexnik | ||
---|---|---|---|
Строка 4: | Строка 4: | ||
==== Логические константы ==== | ==== Логические константы ==== | ||
**false** (ложь) - определяется как 0, в логическом выражении.\\ | **false** (ложь) - определяется как 0, в логическом выражении.\\ | ||
- | **true** (истина) - обычно говорят, | + | **true** (истина) - обычно говорят, |
==== Уровень напряжения на выводах, | ==== Уровень напряжения на выводах, | ||
При работе с цифровыми выводами существует всего два значения, | При работе с цифровыми выводами существует всего два значения, | ||
+ | |||
**HIGH**\\ | **HIGH**\\ | ||
- | Значение константы HIGH может отличатся в зависимости от того, в какой режим переключен контакт (INPUT или OUTPUT). Когда порт входа/ | + | Значение константы HIGH может отличатся в зависимости от того, в какой режим переключен контакт (INPUT или OUTPUT). Когда порт входа/ |
- | Также порт может быть установлен как INPUT функцией pinMode(), и затем установлен в HIGH значение функцией digitalWrite(). Это подключит к порту внутренний подтягивающий резистор 20 кОм, что позволит получать постоянное значение HIGH при чтение этого порта, если только значение не будет приведено к LOW внешней цепью подключенной к этому порту. | + | Также порт может быть установлен как INPUT функцией pinMode(), и затем установлен в HIGH значение функцией digitalWrite(). Это подключит к порту внутренний подтягивающий резистор 20 кОм, что позволит получать постоянное значение HIGH при чтение этого порта, если только значение не будет приведено к LOW внешней цепью подключенной к этому порту.\\ |
Когда порт входа/ | Когда порт входа/ | ||
**LOW**\\ | **LOW**\\ | ||
- | Значение LOW также разное для режима INPUT и OUTPUT. Когда порт сконфигурирован как INPUT, и считывается функцией digitalRead(), | + | Значение LOW также разное для режима INPUT и OUTPUT. Когда порт сконфигурирован как INPUT, и считывается функцией digitalRead(), |
Если же порт установлен в OUTPUT и LOW, то напряжение на выходе порта будет 0 Вольт. К этому порту можно подключать нагрузку как к земле, как описано выше на примере светодиода.\\ | Если же порт установлен в OUTPUT и LOW, то напряжение на выходе порта будет 0 Вольт. К этому порту можно подключать нагрузку как к земле, как описано выше на примере светодиода.\\ | ||
Строка 22: | Строка 23: | ||
==== Задание режима порта входа/ | ==== Задание режима порта входа/ | ||
Цифровые порты входа/ | Цифровые порты входа/ | ||
+ | |||
**INPUT**\\ | **INPUT**\\ | ||
Порты Контроллера установленные в режим INPUT находятся в высокоимпедансном состоянии. Это означает, | Порты Контроллера установленные в режим INPUT находятся в высокоимпедансном состоянии. Это означает, | ||
+ | |||
**OUTPUT**\\ | **OUTPUT**\\ | ||
- | Порт установленный в режим выхода — OUTPUT, находится в низкоимпедансном состоянии. Он может пропускать через себя довольно большой ток, до 40 mA, достаточный для запитывания внешней цепи, например, | + | Порт установленный в режим выхода — OUTPUT, находится в низкоимпедансном состоянии. Он может пропускать через себя довольно большой ток, до 40 mA, достаточный для запитывания внешней цепи, например, |
===== Типы данных ===== | ===== Типы данных ===== | ||
Тип определяет возможные значения и их смысл, операции, | Тип определяет возможные значения и их смысл, операции, | ||
+ | |||
==== boolean ==== | ==== boolean ==== | ||
- | \\ | + | Может принимать одно из двух значений true или false. boolean занимает в памяти один байт.\\ |
- | Может принимать одно из двух значений true или false. boolean занимает в памяти один байт. | + | |
- | \\ | + | ==== char ==== |
+ | Переменная типа char занимает 1 байт памяти и может хранить один алфавитно-цифровой символ (литеру). При объявление литеры используются одиночные кавычки: | ||
+ | |||
+ | Символ хранится в памяти как число, соответствующее коду символа в таблице кодировки символов ASCII. Т.к. символ хранится как число в памяти над ним возможно производить арифметические действия (например, | ||
+ | |||
+ | Тип char знаковый тип, т.е. число (код) хранящийся в памяти может принимать значения от -128 до 127. Если необходима беззнаковая однобайтовая переменная, | ||
+ | |||
+ | ==== byte ==== | ||
+ | Тип данных byte 8-ми битное беззнаковое целое число, в диапазоне 0..255.\\ | ||
==== int ==== | ==== int ==== | ||
Тип данных int (от англ. integer - целое число) один из наиболее часто используемых типов данных для хранения чисел. int занимает 2 байта памяти, | Тип данных int (от англ. integer - целое число) один из наиболее часто используемых типов данных для хранения чисел. int занимает 2 байта памяти, | ||
+ | |||
Для размещения отрицательных значений int использует, | Для размещения отрицательных значений int использует, | ||
+ | |||
Arduino компилятор сам заботиться о размещении в памяти и представлении отрицательных чисел, поэтому арифметические действия над целыми числами производятся как обычно.\\ | Arduino компилятор сам заботиться о размещении в памяти и представлении отрицательных чисел, поэтому арифметические действия над целыми числами производятся как обычно.\\ | ||
Когда переменная типа int в следствие арифметической операции достигает своего максимального значения, | Когда переменная типа int в следствие арифметической операции достигает своего максимального значения, | ||
+ | |||
==== unsigned int ==== | ==== unsigned int ==== | ||
Тип данных unsigned int - без знаковое целое число, также как и тип int (знаковое) занимает в памяти 2 байта. Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1).\\ | Тип данных unsigned int - без знаковое целое число, также как и тип int (знаковое) занимает в памяти 2 байта. Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1).\\ | ||
Отличие кроется в том как unsigned int использует старший бит, иногда называемый знаковый бит. Если старший бит равен 1, то для типа int компилятор Arduino считает, | Отличие кроется в том как unsigned int использует старший бит, иногда называемый знаковый бит. Если старший бит равен 1, то для типа int компилятор Arduino считает, | ||
+ | |||
==== long ==== | ==== long ==== | ||
Тип данных long используется для хранения целых чисел в расширенном диапазоне от -2, | Тип данных long используется для хранения целых чисел в расширенном диапазоне от -2, | ||
==== unsigned long ==== | ==== unsigned long ==== | ||
Unsigned long используется для хранения положительных целых чисел в диапазоне от 0 до 4, | Unsigned long используется для хранения положительных целых чисел в диапазоне от 0 до 4, | ||
+ | |||
+ | ==== float ==== | ||
+ | Тип данных float служит для хранения чисел с плавающей запятой. Этот тип часто используется для операций с данными, | ||
+ | |||
+ | Тип float имеет точность 6-7 знаков, | ||
+ | |||
+ | Хранение в памяти чисел с плавающей точкой в двоичной системе обуславливает потерю точности. Так, например, | ||
+ | |||
+ | Следует также учитывать, | ||
+ | |||
+ | ==== double ==== | ||
+ | Тип данных double, в отличие от большинства языков программирования, | ||
+ | |||
+ | Тип double поддерживается в Arduino для совместимости кода с другими платформами.\\ | ||
+ | |||
+ | ==== word ==== | ||
+ | Тип данных word хранит 16-битное, | ||
+ | |||
+ | ==== array ==== | ||
+ | Массивы (arrays) — именованный набор однотипных переменных, | ||
+ | |||
+ | ==== string ==== | ||
+ | Текстовые строки в Ардуино объявляются как массив (array) типа char (символов - литер), | ||
+ | |||
+ | ==== String ==== | ||
+ | String класс появился в версии Arduino 0019. Этот класс позволяет хранить и манипулировать текстовыми строками, | ||
+ | |||
+ | Обратите внимание при обращение к классу String — он пишется с заглавной S. Массив символов string — с прописной s. Строковые константы, | ||
+ |