Digital

Цифровой относится к сигналам, которые либо включены, либо выключены (высокий или низкий уровень, единица или ноль). Это контрастирует с аналоговыми сигналами, которые имеют диапазон значений.


Цифровые входы

Цифровые входы считываются как ВЫСОКИЙ или НИЗКИЙ в коде Arduino. Промежуточных значений нет.

В техническом описании указаны уровни напряжения:

  • Определенный уровень, ниже которого сигнал считается НИЗКИМ.
  • Другой уровень, выше которого сигнал считается ВЫСОКИМ.
  • Обычно существует промежуточный уровень, на котором сигнал не определен (он может быть ВЫСОКИЙ или НИЗКИЙ случайным образом).

Например, на Atmega328P, работающем от источника питания 5 В, уровни для большинства контактов следующие:

  • От -0,5 В до 1,5 В – считается НИЗКИМ
  • Выше 1,5 и ниже 3 В — не определено.
  • от 3 В до 5,5 В — считается ВЫСОКИМ

Цифровые выходы

Цифровые выходы записываются как ВЫСОКИЙ или НИЗКИЙ в коде Arduino. Промежуточных значений нет.

Транзисторы драйвера в процессоре пытаются перевести соответствующий выходной контакт в 0 В для НИЗКОГО уровня и VCC для ВЫСОКОГО (где VCC — напряжение питания для чип, обычно 3,3 В или 5 В).

Например, в техническом описании Atmega328P указано, что (при температуре окружающей среды 85 °C, токе 20 мА и напряжении 5 В) выходной контакт должен быть:

  • Максимум 0,9 В при работе LOW
  • Минимум 4,2 В при работе HIGH

Аналоговые входы

Сравните приведенное выше с аналоговыми входами Arduino, которые используют АЦП (аналого-цифровой преобразователь) для считывания диапазона значений на входном контакте и возврата числа, соответствующего тому, где это напряжение находится в диапазоне от 0 до аналоговое опорное напряжение.

См. также:

Вопросы, связанные с [digital]: