Задержка в Node.js: управляем светодиодами через ПК на Atmega88

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

Добавить комментарий