Считывает значение аналогового сигнала на пине pin
и возвращает результат в виде числа в диапазоне [0.0; 1.0].
Пин должен поддерживать чтение аналоговых сигналов. См. функции пинов в документации на свою плату.
Если перед вызовом не вызывалась функция pinMode
, пин будет автоматически переведён в режим 'analog'
.
Выдаёт аналоговый сигнал на пине pin
. Используется аппаратный ШИМ или ЦАП, если они доступны на пине.
См. функции пинов в документации на свою плату.
В случае ШИМ value
задаёт скважность, в случае ЦАП — величину напряжения. В любом случае ожидается значение в диапазоне [0.0; 1.0].
В качестве необязательного параметра opts
принимается объект с полями:
freq
— частота ШИМ в герцах;soft
— если true
и аппаратный ШИМ не доступен на пине, будет использован программный ШИМ;forceSoft
— если true
, будет использован программный ШИМ даже при наличии аппаратного.analogWrite(P9, 0.5); analogWrite(P8, 0.4, {freq: 20}); analogWrite(P7, 0.1, {freq: 20, soft: true});
Если перед вызовом функции не вызывалась pinMode
, пин будет автоматически переведён в режим 'output'
.
Останавливает наблюдение за пином. Параметр id
— идентификатор, который вернула setWatch
.
var id = setWatch(function() { print('Hello'); }, P3); // ... clearWatch(id);
Если id
опущен, будут остановлены все наблюдения за пинами.
Генерирует импульс на пине 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'
.
Считывает цифровой сигнал с пина pin
. Возвращает 1
, если на пине — логическая единица и 0
, если на пине — логический ноль.
В качестве pin
можно передать массив пинов. В этом случае, функция вернёт число где значения сигнала размещены в битах. Последний элемент массива будет соответствовать младшему биту результата.
var x = digitalRead(A0); // считываем с одного пина // считываем с группы x = digitalRead([A2, A1, A0]); // если на A2 и A1 — единица, а на A0 — ноль, // результатом будет 0b110
Если перед вызовом не вызывалась функция pinMode
, пин будет автоматически переведён в режим 'input'
.
Устанавливает цифровой сигнал на пине pin
: логическую единицу, если value
— 1
или true
, логический ноль, если value
— 0
или false
.
В качестве pin
можно передать массив пинов. В этом случае считается, что число value
кодирует значения для пинов на соответствующих позициях битов. Последнему элементу массива pin
соответствует младший бит value
. Выставление значений происходит последовательно, начиная с последнего пина, т.е. справа налево. Вы можете использовать один и тот же пин в массиве несколько раз, чтобы реализовать очень короткий импульс.
digitalWrite(P3, 1); // выставляем логическую единицу на P3 // делаем короткий импульс на P5 и сразу после него // короткий импульс на P4 digitalWrite([P4, P5], 0b0101);
Если перед вызовом не вызывалась функция pinMode
, пин будет автоматически переведён в режим 'output'
.
Возвращает текущий режим работы пина pin
в виде строковой константы. Смотрите pinMode для возможных значений.
Устанавливает режим работы пина pin
в соответствие с mode
:
'analog'
— аналоговый вход;'input'
— цифровой вход;'input_pullup'
— цифровой вход с внутренним подтягивающим резистором (~40 кОм);'input_pulldown'
— цифровой вход с внутренним стягивающим резистором (~40 кОм);'output'
— цифровой выход;'opendrain'
— цифровой выход с открытым стоком, для которого логическая единица замыкает пин на землю, а логический ноль формирует разрыв цепи;'af_output'
— цифровой выход встроенной периферии;'af_opendrain'
— цифровой выход с открытым стоком внутренней периферии;
Функции для работы с пинами — например digitalRead
или digitalWrite
— самостоятельно устанавливают нужный режим работы пина, если вы предварительно не вызвали pinMode
явно. Чтобы вернуть автоматический режим, вызовите pinMode
без параметра mode
.
Заставляет платформу вызвать функцию callback
при изменении цифрового сигнала на входе pin
. В качестве opts
принимается объект с полями:
repeat
— если true
, функция будет вызвана каждый раз при изменении; если false
— однократно; по умолчанию false
.edge
— 'rising'
для фиксации только восходящего фронта, 'falling'
— только нисходящего, 'both'
— при изменении в любую сторону; по умолчанию 'both'
.debounce
— время в миллисекундах для программного подавления дребезга сигнала.
В callback
при вызове система передаёт параметр-объект с полями:
state
— текущее значение пина: 0
или 1
;time
— системное время в секундах, когда произошло наблюдаемое изменение сигнала;lastTime
— системное время в секундах, когда последний раз происходило любое изменение сигнала; для значений edge
'rising'
и 'falling'
это значение не совпадает с временем предыдущего вызова.// Наблюдаем за кнопкой 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
, чтобы отменить наблюдение за пином.