Сделал программку, которая раз в пять минут (setInterval) выводит на десять секунд температуру на экран и по wi-fi отправляет температуру на dweet и через десять секунд отрубает экран (setTimeout запускает отключение экрана). В начале программы прописал setDeepSleep(true) включение режима глубокого сна. Для контроля прописал setSleepIndicator(P8); При работе выдает 1 на P8, при сне выдает 0. При выводе информации загорается светодиод на P8. Потом прога должна заснуть наверное, и через десять секунд как положено экран гаснет, и должен при переходе в сон светодиод гаснуть, но он начинает тускло и часто мигать. Что это может быть такое? Код (Javascript): I2C1.setup({scl:SCL, sda:SDA}); var SSID = 'AP_name'; var PASSWORD = 'xxxxxxxx'; var NAME = 'Amperka'; var dweet = require('@amperka/dweetio').connect(NAME); var mySensor = require('@amperka/thermometer').connect(A4); function start(){ screen.off(); screen.clear(); screen.setFontVector(16); } var screen = require("SSD1306").connect(I2C1, start, { height : 32, width : 128, contrast : 0}); setDeepSleep(true); function run() { setInterval(function() { digitalPulse(P9, 1, 5000); setSleepIndicator(P8); screen.clear(); screen.drawString('Temp: ' + mySensor.read('C').toFixed(0) + ' C', 10, 8); screen.flip(); screen.on(); dweet.send({ dom: mySensor.read('C').toFixed(0) }); setTimeout("screen.off()", 10000); } ,300000); } var wifi = require('@amperka/wifi').setup(function(err) { wifi.connect(SSID, PASSWORD, function(err) { print('Click this link', dweet.follow()); run(); }); });
А во сне можно управлять выводами? Не знаком с этой искрой, поэтому рекомендую в даташите узнать какие есть режимы сна и где там gpio. И узнать нужно - какой режим сна включается вашей командой. Тускло горит, т.к. может быть такой вариант: все выводы переходят в некоторое состояние и через какие-нибудь "утечки" ток доползает до светодиода.
Вот описание команд setDeepSleep(enable) Если enable — true, разрешает режим глубокого сна, когда микроконтроллеру нечем заняться. setSleepIndicator([pin]) Заставляет платформу подавать логический ноль на пин pin, когда она находится в режиме сна и логическую единицу в обычном режиме. Не передавайте параметр pin, чтобы отключить это поведение. Даташит поищу. У меня там еще светодиод подключен, но он не мерцает.
Вот тут почитайте. (англ). У искры есть 3 режима: рабочий, сон и глубокий сон. В глубоком сне (вы его включаете): т.е. все gpio отключаются. Причем, если вы включаете индикатор сна, то он сигнализирует только о том, что искра НЕ спит. т.е. либо так и предполагалась работа, либо что-то еще.