🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

925閲覧

johnny-fiveを使って点滅の動作を行いたい

退会済みユーザー

退会済みユーザー

総合スコア0

EJS

EJSは、JavaScript用のテンプレートエンジン。HTMLなどのテンプレートテキストにJavaScriptのロジックを記述することができます。また、変数・関数の実行をテンプレートテキスト内に埋め込むことも可能です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2020/11/23 01:27

前提・実現したいこと

Johnny-fiveでarduinoのLEDを点滅させる動作を行いたい

発生している問題・エラーメッセージ

WebからArduinoを操作できるようにして、LEDのON OFF はできるようになったのですが点滅の動作が出来ません。

該当のソースコード

js

1const express = require("express"); 2const five = require("johnny-five"); 3const board = new five.Board({port:"COM5"}); 4 5const app = express(); 6app.use(express.static("C:\Users*****\AppData\Roaming\npm\node_modules\johnny-five\public")); 7 8const bodyParser = require("body-parser"); 9app.use(bodyParser.urlencoded({extended: false})); 10 11let led; 12 13board.on('ready', function() { 14 led = new five.Led(12); 15}); 16 17const message = "現在の状態:"; 18 19app.get("/", (req, res)=>{ 20 res.render("index.ejs",{ 21 content: message + "off", 22 }); 23}); 24 25app.post("/", (req, res)=>{ 26 if(req.body.operate == "on"){ 27 led.on(); 28 } 29 if(req.body.operate == "off"){ 30 led.off(); 31 }] 32//この下が点滅の動作のプログラム 33 if(req.body.operate == "stop"){ 34 led.on(); 35 sleep(2000); 36 led.off(); 37 } 38//通信 39 res.render("index.ejs",{ 40 content: message + req.body.operate, 41 }); 42}); 43 44 45 46 47const server = app.listen(3000, ()=>console.log("System"));

ejs

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="content-type" content="text/html" charset="utf-8"> 5 <title>NodeWebOperate</title> 6 7 <link type="text/css" href="C:\Users*****\AppData\Roaming\npm\node_modules\johnny-five\style.css" rel="stylesheet"> 8 9<style> 10 .parent { 11 width: 100%; 12 display: flex; 13 display: flex; 14 justify-content: center; 15 align-items: center; 16 } 17 .child { 18 width: 100px; 19 } 20 21 iframe{ 22 overflow: hidden; 23 } 24 25 .buttonstyle{ 26 position: fixed; /* 要素の位置を固定する */ 27 bottom: 0; /* 基準の位置を画面の一番下に指定する */ 28 right: 0; /* 基準の位置を画面の一番右に指定する */ 29 width: 300px; /* 幅を指定する */ 30 } 31 32 33 .html { 34 height: 150px; 35 overflow-y: scroll; 36 -ms-overflow-style: none; /* IE, Edge 対応 */ 37 scrollbar-width: none; /* Firefox 対応 */ 38 } 39 .html::-webkit-scrollbar { /* Chrome, Safari 対応 */ 40 display:none; 41 } 42 43 </style> 44 </head> 45 <body> 46 <main class="parent"> 47 <form action="/" method="post"> 48 49 <button type="submit" id="1" value="on" name="operate" ><svg width="10em" height="10em" viewBox="0 0 16 16" class="bi bi-arrow-right-circle-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 50 <path fill-rule="evenodd" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-11.5.5a.5.5 0 0 1 0-1h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5z"/> 51 </svg></button> 52 </div> 53 54 </form> 55 <form action="/" method="post"> 56 <div> 57 <button type="submit" id="1" value="off" name="operate" > 58 <svg width="10em" height="10em" viewBox="0 0 16 16" class="bi bi-chevron-bar-right" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 59 <path fill-rule="evenodd" d="M4.146 3.646a.5.5 0 0 0 0 .708L7.793 8l-3.647 3.646a.5.5 0 0 0 .708.708l4-4a.5.5 0 0 0 0-.708l-4-4a.5.5 0 0 0-.708 0zM11.5 1a.5.5 0 0 1 .5.5v13a.5.5 0 0 1-1 0v-13a.5.5 0 0 1 .5-.5z"/> 60 </svg></button></div> 61 </form> 62 63 64 </form> 65 <form action="/" method="post"> 66 <div> 67 <button type="submit" id="2" value="on" name="operate" > 68 <svg width="10em" height="10em" viewBox="0 0 16 16" class="bi bi-arrow-up-circle-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 69 <path fill-rule="evenodd" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-7.5 3.5a.5.5 0 0 1-1 0V5.707L5.354 7.854a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 5.707V11.5z"/> 70 </svg></button></div> 71 </form> 72 73 <form action="/" method="post"> 74 <div> 75 <button type="submit" id="2" value="off" name="operate" > 76 <svg width="10em" height="10em" viewBox="0 0 16 16" class="bi bi-chevron-bar-up" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 77 <path fill-rule="evenodd" d="M3.646 11.854a.5.5 0 0 0 .708 0L8 8.207l3.646 3.647a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 0 0 0 .708zM2.4 5.2c0 .22.18.4.4.4h10.4a.4.4 0 0 0 0-.8H2.8a.4.4 0 0 0-.4.4z"/> 78 </svg></button></div> 79 </form> 80 81 <form action="/" method="post"> 82 <div> 83 <button type="submit" id="3" value="stop" name="operate" > 84 <svg width="10em" height="10em" viewBox="0 0 16 16" class="bi bi-chevron-bar-down" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 85 <path fill-rule="evenodd" d="M3.646 4.146a.5.5 0 0 1 .708 0L8 7.793l3.646-3.647a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 0-.708zM1 11.5a.5.5 0 0 1 .5-.5h13a.5.5 0 0 1 0 1h-13a.5.5 0 0 1-.5-.5z"/> 86 </svg></button></div> 87 </form> 88 89 90 </main> 91 </body> 92</html>

補足情報(FW/ツールのバージョンなど)

Arduino Uno
参考 : https://qiita.com/masayasviel/items/e6bf949b81d42da27d9a

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

led.on(); Promise.resolve() .then(wait(10)) // ここで10秒待つ(「Promiseオブジェクトを返す関数」を thenに渡しています) .then(function() { led.off(); }) .catch(function (err) { console.error(err); self.result_message = error; });

投稿2020/11/23 01:49

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問