NをDCCで自動運転 その3 LokSound micro V4.0を試してみた [Arduinoで自動運転(DCC)]
こんばんは。今日の都内は朝から青空で残暑が夏の名残を感じました。
それにしても、台風の被害が酷いですね。
お見舞い申し上げます。
そして、週末から来週にかけて、また台風が。。。
被害が出ないことを祈ります。
さて、名古屋方面では、基盤作成も着々と進んでいるようですが、私も作業を始めたDCC/MM2シールドですが、なんとなく使い方が解ってきました。
前回は、デジトラックスのDZ-125でやってみたのですが、今回は、本命のESUのLokSound micro V4.0を試してみました。
ESUのLokSound micro V4.0を使うの自体、超久々だったので、プログラマを起動したらこんな画面が!
プログラマの版数が4.4.14だったのが、4.4.24になってます。
他の方の情報によると、GUI関係がかなり変わったよなので楽しみです。
ただ、今日起動したら、既に4.4.25が公開されているようです。
で、今回のArduinoのプログラムですが、デコーダーをデコーダーテスタに繋いでの動作確認をしました。
やってみて解ったのは、サウンドの有り、無しで、デコーダーの動きが変わるようです。
サウンドが有りの状態で、プログラムを作れば、サウンドをOFFにしても動作は変わらないとは思います。
提供されているファンクション関連の関数とかは、関数コールをした後に、少々ディレイのような感じに時間を空けて、次の関数をコールしないと、どうも、動きが安定しませんでした。
今回は、デコーダーテスタでの確認でしたが、次回は、デコーダーを搭載した車輌で確認してみようと思います。
いろいろ
それにしても、台風の被害が酷いですね。
お見舞い申し上げます。
そして、週末から来週にかけて、また台風が。。。
被害が出ないことを祈ります。
さて、名古屋方面では、基盤作成も着々と進んでいるようですが、私も作業を始めたDCC/MM2シールドですが、なんとなく使い方が解ってきました。
前回は、デジトラックスのDZ-125でやってみたのですが、今回は、本命のESUのLokSound micro V4.0を試してみました。
ESUのLokSound micro V4.0を使うの自体、超久々だったので、プログラマを起動したらこんな画面が!
プログラマの版数が4.4.14だったのが、4.4.24になってます。
他の方の情報によると、GUI関係がかなり変わったよなので楽しみです。
ただ、今日起動したら、既に4.4.25が公開されているようです。
で、今回のArduinoのプログラムですが、デコーダーをデコーダーテスタに繋いでの動作確認をしました。
やってみて解ったのは、サウンドの有り、無しで、デコーダーの動きが変わるようです。
サウンドが有りの状態で、プログラムを作れば、サウンドをOFFにしても動作は変わらないとは思います。
提供されているファンクション関連の関数とかは、関数コールをした後に、少々ディレイのような感じに時間を空けて、次の関数をコールしないと、どうも、動きが安定しませんでした。
今回は、デコーダーテスタでの確認でしたが、次回は、デコーダーを搭載した車輌で確認してみようと思います。
いろいろ
#include <avr/wdt.h> #include <SPI.h> #include "DSGatewayLib.h" #define CHANGETIME 500 DSGatewayLib Gateway; void setup() { Serial.begin(9600); pinMode(12,OUTPUT); // チェック用LED pinMode(8,INPUT); // プッシュボタン Serial.println("Step100"); Gateway.begin(); delay(5000); Serial.println("Step200"); Gateway.SetPower(true); } void loop() { int aSpeed; word aLocAddr = ADDR_DCC + 49; //DCCアドレスを指定 digitalWrite(12, HIGH); // LED 点灯 if (digitalRead(8)==HIGH){ Serial.println("Step101"); digitalWrite(12, LOW); // LED 消灯 // Go forward Gateway.SetLocoDirection( aLocAddr, 1); // 前進 delay(3000); Serial.println("Step201"); Gateway.SetLocoFunction( aLocAddr, 1, 1 ); // F1 サウンドON delay(40000); Serial.println("Step202"); aSpeed =1; Gateway.SetLocoSpeed( aLocAddr, aSpeed); // 加速 delay(10000); Serial.println("Step203"); Gateway.SetLocoFunction( aLocAddr, 0, 1 ); // F0 ライトON delay(3000); Gateway.SetLocoFunction( aLocAddr, 2, 1 ); // F2 汽笛長ON delay(1000); Gateway.SetLocoFunction( aLocAddr, 2, 0 ); // F2 汽笛長OFF delay(6000); Serial.println("Step204"); aSpeed =512; Gateway.SetLocoSpeed( aLocAddr, aSpeed); // 加速 delay(10000); Serial.println("Step205"); aSpeed = 0; Gateway.SetLocoSpeed( aLocAddr, aSpeed); // 減速 delay(15000); Serial.println("Step206"); // Go reverse Gateway.SetLocoDirection( aLocAddr, 2); // 後進 delay(5000); Serial.println("Step301"); aSpeed =1; Gateway.SetLocoSpeed( aLocAddr, aSpeed); // 加速 delay(20000); Serial.println("Step302"); aSpeed =512; Gateway.SetLocoSpeed( aLocAddr, aSpeed); // 加速 delay(10000); Serial.println("Step302"); aSpeed = 0; Gateway.SetLocoSpeed( aLocAddr, aSpeed); // 減速 delay(15000); Serial.println("Step401"); Gateway.SetLocoFunction( aLocAddr, 0, 0 ); // F0 ライトOFF delay(3000); Serial.println("Step402"); Gateway.SetLocoFunction( aLocAddr, 1, 0 ); // F1 サウンドOFF delay(18000); Serial.println("Step500"); } }
関数は連続してセットすると詰まってしまうので、50msくらいのウェイトが必要です。delay関数はms単位で設定できるので、50をセットしてもらえれば問題ないはずです。
by Yaasan (2016-09-03 19:45)
Yaasanさん、こんばんは。
>関数は連続してセットすると詰まってしまうので、50msくらいのウェイトが必要です。
やはりそうなんですね。ありがとうございます。
>delay関数はms単位で設定できるので、50をセットしてもらえれば問題ないはずです。
わかりました。
by 目黒のダンボ (2016-09-06 18:52)