Функции работы с пинами
Считывает значение аналогового сигнала на пине 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, чтобы отменить наблюдение за пином.