Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| theory:data [2020/08/12 18:00] – alexnik | theory:data [2020/08/14 12:07] (текущий) – alexnik | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Константы | + | ===== Константы ===== |
| Константами в языке Ардуино называют некоторые предопределенные значения. Они позволяют сделать код программы более легким для восприятия. | Константами в языке Ардуино называют некоторые предопределенные значения. Они позволяют сделать код программы более легким для восприятия. | ||
| - | ===== Логические константы | + | ==== Логические константы ==== |
| **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 Вольт. К этому порту можно подключать нагрузку как к земле, как описано выше на примере светодиода.\\ | ||
| - | ===== Задание режима порта входа/ | + | ==== Задание режима порта входа/ |
| Цифровые порты входа/ | Цифровые порты входа/ | ||
| + | |||
| **INPUT**\\ | **INPUT**\\ | ||
| Порты Контроллера установленные в режим INPUT находятся в высокоимпедансном состоянии. Это означает, | Порты Контроллера установленные в режим INPUT находятся в высокоимпедансном состоянии. Это означает, | ||
| + | |||
| **OUTPUT**\\ | **OUTPUT**\\ | ||
| - | Порт установленный в режим выхода — OUTPUT, находится в низкоимпедансном состоянии. Он может пропускать через себя довольно большой ток, до 40 mA, достаточный для запитывания внешней цепи, например, | + | Порт установленный в режим выхода — OUTPUT, находится в низкоимпедансном состоянии. Он может пропускать через себя довольно большой ток, до 40 mA, достаточный для запитывания внешней цепи, например, |
| + | |||
| + | ===== Типы данных ===== | ||
| + | Тип определяет возможные значения и их смысл, операции, | ||
| + | |||
| + | ==== boolean ==== | ||
| + | Может принимать одно из двух значений true или false. boolean занимает в памяти один байт.\\ | ||
| + | |||
| + | ==== char ==== | ||
| + | Переменная типа char занимает 1 байт памяти и может хранить один алфавитно-цифровой символ (литеру). При объявление литеры используются одиночные кавычки: | ||
| + | |||
| + | Символ хранится в памяти как число, соответствующее коду символа в таблице кодировки символов ASCII. Т.к. символ хранится как число в памяти над ним возможно производить арифметические действия (например, | ||
| + | |||
| + | Тип char знаковый тип, т.е. число (код) хранящийся в памяти может принимать значения от -128 до 127. Если необходима беззнаковая однобайтовая переменная, | ||
| + | |||
| + | ==== byte ==== | ||
| + | Тип данных byte 8-ми битное беззнаковое целое число, в диапазоне 0..255.\\ | ||
| + | |||
| + | ==== int ==== | ||
| + | Тип данных int (от англ. integer - целое число) один из наиболее часто используемых типов данных для хранения чисел. int занимает 2 байта памяти, | ||
| + | |||
| + | Для размещения отрицательных значений int использует, | ||
| + | |||
| + | Arduino компилятор сам заботиться о размещении в памяти и представлении отрицательных чисел, поэтому арифметические действия над целыми числами производятся как обычно.\\ | ||
| + | Когда переменная типа int в следствие арифметической операции достигает своего максимального значения, | ||
| + | |||
| + | ==== unsigned int ==== | ||
| + | Тип данных unsigned int - без знаковое целое число, также как и тип int (знаковое) занимает в памяти 2 байта. Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1).\\ | ||
| + | Отличие кроется в том как unsigned int использует старший бит, иногда называемый знаковый бит. Если старший бит равен 1, то для типа int компилятор Arduino считает, | ||
| + | |||
| + | ==== long ==== | ||
| + | Тип данных long используется для хранения целых чисел в расширенном диапазоне от -2, | ||
| + | ==== unsigned long ==== | ||
| + | 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. Строковые константы, | ||