Как осуществить задержку (пауза, 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


