Как осуществить задержку (пауза, delay) в Node.js (JavaScript).
Включаю светодиоды через Node.js (JavaScript) через Uart на Atmega88, вот код моей программы (код простой), в которой реализована задержка с помощью – задержки в выполнении функций.
Как установить Node.js – “gameforstreet.ru/ustanavlivaem-node-js/”
Работаю на Linux: ОС Linux Rosa FResh R12 Plasma
ПК подключён через (USB-UART) преобразователь – HW-597 (на микросхеме CH340), но можно сделать его самому на Atmega88 (и других Atmega: ATtiny45/85, ATtiny2313/AT90S2313 и ATmega8/48/88/168), вот писал в одной из своей предыдущей записи:
“gameforstreet.ru/usb-ttl-usb-uart-preobrazovatel-na-atmega/”
А также можно собрать COM-TTL преобразователь – на микросхеме max232 – более подробно здесь – схема и как работает:
“gameforstreet.ru/uart-pic16f690/”
Схема соединения как и в предыдущей записи (“gameforstreet.ru/atmega88-upravlyaem-svetodiodami-s-pk-po-uart-bez-kvarca-vnutrennij-rc-generator-8mgc/”) :
В коде зажигаю светодиод с помощью отправки на микросхему Atmega88 цифры от 1 до 4 (1 зажигает первый светодиод, 2 гасит его, 3 зажигает следующий светодиод, 4 гасит его). Отправляю цифры с помощью команды:
myPort.write('1');
Вышеуказанная команда для каждого действия со светодиодом находится в отдельной функции, а торможу выполнения каждой функции с помощью кода:
setTimeout (l2,3000); setTimeout (l3,5000); setTimeout (l4,7000);
То есть функцию l2 затормозил на 2 секунды, l3 – на 5 секунд, l4 на 7 секунд!
Код:
const { SerialPort } = require('serialport') const myPort = new SerialPort({ path: '/dev/ttyUSB0', baudRate: 9600 }) var fs = require('fs'); fs.open('dataout.txt', 'w', function (err, file) { if (err) throw err;}); var readline = require('readline-sync'); var i=0; var j=0; var k=0; var sum=0; var kk=0; var a = new Array(); var lth = new Array(); var nval = new Array(); var xx,yy,xxn,yyn; var ntot = readline.question("input ntot: "); //Input the number of bytes to be read myPort.on('open', showPortOpen); function l1 () { myPort.write('1'); } function l2 () { myPort.write('2'); } function l3 () { myPort.write('3'); } function l4 () { myPort.write('4'); myPort.on('close', showPortClose); myPort.on('error', showError); myPort.on('data', readdata); } l1 (); setTimeout (l2,3000); setTimeout (l3,5000); setTimeout (l4,7000); console.log("Отправил данные"); function readdata() { myPort.close(showPortClose()); } function showPortOpen() { myPort.flush(); } function showPortClose() { console.log('port closed.'); } function showError(error) { console.log('Serial port error: ' + error); } myPort.open(function (err) { if (err) { return console.log('Error opening port: ', err.message); }});
Скачать файл node.js с вышеуказанным кодом:
– скачать в формате tar.gz
– в формате zip