Содержание

Функции работы с пинами

analogRead(pin)

Считывает значение аналогового сигнала на пине pin и возвращает результат в виде числа в диапазоне [0.0; 1.0].

Пин должен поддерживать чтение аналоговых сигналов. См. функции пинов в документации на свою плату.

Если перед вызовом не вызывалась функция pinMode, пин будет автоматически переведён в режим 'analog'.

analogWrite(pin, value[, opts])

Выдаёт аналоговый сигнал на пине pin. Используется аппаратный ШИМ или ЦАП, если они доступны на пине. См. функции пинов в документации на свою плату.

В случае ШИМ value задаёт скважность, в случае ЦАП — величину напряжения. В любом случае ожидается значение в диапазоне [0.0; 1.0].

В качестве необязательного параметра opts принимается объект с полями:

analogWrite(P9, 0.5);
analogWrite(P8, 0.4, {freq: 20});
analogWrite(P7, 0.1, {freq: 20, soft: true});

Если перед вызовом функции не вызывалась pinMode, пин будет автоматически переведён в режим 'output'.

clearWatch([id])

Останавливает наблюдение за пином. Параметр id — идентификатор, который вернула setWatch.

var id = setWatch(function() { print('Hello'); }, P3);
// ...
clearWatch(id);

Если id опущен, будут остановлены все наблюдения за пинами.

digitalPulse(pin, value, time)

Генерирует импульс на пине pin длительностью time миллисекунд. value задаёт значение пульса: 1 — высокий сигнал, 0 — низкий.

Для точности функция использует аппаратный таймер и не блокирует исполнение программы, т.е. возвращается до того, как закончится импульс. Передайте 0 в качестве time, чтобы дождаться окончания предыдущего импульса.

В качестве time можно передать массив. В этом случае будет выдана серия импульсов с противоположными значениями длительностью, определяемой значением элементов массива, начиная с value.

digitalPulse(A3, 1, 1.5); // высокий импульс на 1.5 мс
digitalPulse(A3, 1, 0); // остановка до завершения импульса
 
// 100 мкс — низкий сигнал
// 200 мкс — высокий
// 300 мкс — снова низкий
digitalPulse(A3, 0, [0.1, 0.2, 0.3]); 

Используйте функцию для коротких и очень точных импульсов. Для работы с периодами свыше нескольких миллисекунд используйте setTimeout.

Если перед вызовом не вызывалась функция pinMode, пин будет автоматически переведён в режим 'output'.

digitalRead(pin)

Считывает цифровой сигнал с пина pin. Возвращает 1, если на пине — логическая единица и 0, если на пине — логический ноль.

В качестве pin можно передать массив пинов. В этом случае, функция вернёт число где значения сигнала размещены в битах. Последний элемент массива будет соответствовать младшему биту результата.

var x = digitalRead(A0); // считываем с одного пина
 
// считываем с группы
x = digitalRead([A2, A1, A0]);
// если на A2 и A1 — единица, а на A0 — ноль,
// результатом будет 0b110

Если перед вызовом не вызывалась функция pinMode, пин будет автоматически переведён в режим 'input'.

digitalWrite(pin, value)

Устанавливает цифровой сигнал на пине pin: логическую единицу, если value1 или true, логический ноль, если value0 или false.

В качестве pin можно передать массив пинов. В этом случае считается, что число value кодирует значения для пинов на соответствующих позициях битов. Последнему элементу массива pin соответствует младший бит value. Выставление значений происходит последовательно, начиная с последнего пина, т.е. справа налево. Вы можете использовать один и тот же пин в массиве несколько раз, чтобы реализовать очень короткий импульс.

digitalWrite(P3, 1); // выставляем логическую единицу на P3
 
// делаем короткий импульс на P5 и сразу после него
// короткий импульс на P4
digitalWrite([P4, P5], 0b0101);

Если перед вызовом не вызывалась функция pinMode, пин будет автоматически переведён в режим 'output'.

getPinMode(pin)

Возвращает текущий режим работы пина pin в виде строковой константы. Смотрите pinMode для возможных значений.

pinMode(pin[, mode])

Устанавливает режим работы пина pin в соответствие с mode:

Функции для работы с пинами — например digitalRead или digitalWrite — самостоятельно устанавливают нужный режим работы пина, если вы предварительно не вызвали pinMode явно. Чтобы вернуть автоматический режим, вызовите pinMode без параметра mode.

setWatch(callback, pin [, opts])

Заставляет платформу вызвать функцию callback при изменении цифрового сигнала на входе pin. В качестве opts принимается объект с полями:

В callback при вызове система передаёт параметр-объект с полями:

// Наблюдаем за кнопкой
setWatch(function(e) {
  console.log(%%'%%BTN1 was just pressed%%'%%);
}, BTN1, {
  repeat: true,
  edge: 'falling',
  debounce: 10
});
 
// Измеряем длину импульса с логическим нулём
setWatch(function(e) {
  print(%%'%%Pulse length:%%'%%, e.time - e.lastTime, %%'%%seconds%%'%%);
}, P4, {edge: 'rising'});

Функция возвращает число-идентификатор, который можно передать в clearWatch, чтобы отменить наблюдение за пином.