Программирование

Цифровой ввод/вывод

Номера контактов в Arduino непосредственно соответствуют контактам номеров ESP8266 GPIO.

esp12

pinMode(pin, mode)
– pin: номер вывода, режим работы которого будет конфигурироваться.
– mode: принимает значения INPUT, OUTPUT или INPUT_PULLUP.

digitalWrite(pin, value)
– pin: номер вывода
– value: значение HIGH или LOW

digitalRead(pin)
– pin: номер цифрового вывода, с которого необходимо считать значение (int)

Цифровые контакты 0-15 могут  быть в режимах INPUT, OUTPUT, или INPUT_PULLUP.
Pin 16 может быть INPUT , OUTPUT или INPUT_PULLDOWN_16 . При запуске, контакты настроены как INPUT.

Цифровые контакты 6-11 используются для подключения флэш -памяти чипа на большинстве модулей. Попытка использовать эти контакты, вероятно, приведет к краху программы.

Пины могут также служить для других функции, такие как последовательный, I2C, SPI. Эти функции обычно активируются соответствующими библиотеками.

Внешние прерывания

Прерывания поддерживаются через attachInterrupt, detachInterrupt функций.
Прерывания могут быть присоединены к любому контактакту GPIO, за исключением GPIO16.

attachInterrupt(pin, function, mode)
pin: номер вывода
function: функция, которую необходимо вызвать при возникновении прерывания;
эта функция должна быть без параметров и не возвращать никаких значений. Такую функцию иногда называют обработчиком прерывания.
mode: определяет условие, при котором должно срабатывать прерывание. Может принимать одно из трез предопределенных значений:
CHANGE – прерывание будет срабатывать всякий раз, когда меняется состояние вывода
RISING – прерывание сработает, когда состояние вывода изменится с низкого уровня на высокий
FALLING – прерывание сработает, когда состояние вывода изменится с высокого уровня на низкий.

detachInterrupt(pin) – Запрещает заданное прерывание.
– pin: номер вывода, соответствующее прерывание которого необходимо запретить

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

ESP8266 имеет один канал АЦП доступной для пользователей. Это может быть использован либо для чтения напряжение на АЦП, или для считывания напряжение питания модуля (VCC).

analogRead (A0)
Чтобы прочитать внешний напряжение, приложенное к АЦП, используйте analogRead (A0) .
Диапазон входного напряжения: 0 – 1,024.

ESP.getVcc ()
Чтобы прочитать напряжение питания,  и контакт АЦП должен быть отключен. Кроме того, следующая строка должна быть добавлена ​​к эскизе:
ADC_MODE (ADC_VCC);
Эта строка должна появиться вне всяких функций, например сразу после #include строки эскиза.