現在Arduino UNOを秋月電子から購入勉強中でよろしくお願いします。 先日有難う御座いました投稿してくださった方に

現在Arduino UNOを秋月電子から購入勉強中でよろしくお願いします。 先日有難う御座いました投稿してくださった方に

現在Arduino UNOを秋月電子から購入勉強中でよろしくお願いします。 先日有難う御座いました投稿してくださった方に感謝申し上げます。以下のプログラムで動いています。 ★記号の所教えてくださる方どうかよろしくお願いします。 13番ピンは現在ボードにて成功 12番ピン~8番ピンがOFFから始まりますお願いします。 class Blink { static const int delayStep = 10; enum { OFF=LOW, ON=HIGH }; int pin; long onPeriod, offPeriod; long cnt; int stat; public: Blink(int _pin, long _onPeriod, long _offPeriod) : pin(_pin) { onPeriod = _onPeriod / delayStep; offPeriod = _offPeriod / delayStep; pinMode(pin, OUTPUT); stat = ON; cnt = 0; } void loop() { int led = stat; if (stat == OFF) {//今消灯中? if (cnt > offPeriod) {//消灯時間過ぎた? led = HIGH;//点灯する stat = ON;//点灯サイクルの始まり cnt = 0;//時刻クリア } } else {//今点灯中? if (cnt > onPeriod) {//点灯時間過ぎた? led = LOW;//消灯する stat = OFF;//消灯サイクルの始まり cnt = 0;//時刻クリア } } cnt++;//時刻一つ進める digitalWrite(pin, led);//led設定 } static void delay() { ::delay(delayStep); } }; Blink *bl[6]; void setup() { bl[0] = new Blink(8, 1000, 1000); // ★OFF31分ON15秒OFF50分 ON15秒OFF19分 bl[1] = new Blink(9, 1200, 800); //★OFF28分ON15秒OFF50分 ON15秒OFF22分 bl[2] = new Blink(10, 500, 750); // ★OFF25分ON15秒OFF50分 ON15秒OFF25分 bl[3] = new Blink(11, 5000, 1000); //★OFF6分ON15秒OFF50分 ON15秒OFF44分 bl[4] = new Blink(12, 250, 250); //★OFF3分ON15秒OFF50分 ON15秒OFF47分 bl[5] = new Blink(13, 1000000, 5000); //★ON15秒OFF50分 ON15秒OFF50分 } void loop() { for (int i = 0; i < 6; i++) { bl[i]->loop(); } Blink::delay(); }

> 13番ピンは現在ボードにて成功 12番ピン~8番ピンがOFFから始まります A13とそれ以外のLEDの接続の仕方が違うのでは(間違っているという意味ではなく)ないでしょうか。 Arduinoの回路図で調べればわかると思いますが、A13の接続方法と同様に他のLEDも接続して頂ければONから始まると思います。 回路を変えたくなければソフト側での対応も出来ますけれど。 う~ん、 enum { OFF=LOW, ON=HIGH }; は、あまり関係ないものを結びつけてしまったので失敗でしたね... enum{ OFF=0, ON=1 } とでもしておいたらよかったか。 他の質問で聞きましたけれど、 > // ★OFF31分ON15秒OFF50分 ON15秒OFF19分 というコメントは何を意味しているのでしょう。今後そういうシーケンスで付いたり消えたりするように発展させたい、ということ? それとも、実際にそういう点滅になっている、ということ?いまのプログラムでは30分OFFになりっぱなし、ということはない「ハズ」だけど。

Unoに関する回答

【動画】車・バイクニュース

【動画だから100倍楽しめる】YouTube車・バイク動画(すべて見る)

見て楽しむニュース

【動画だから100倍楽しめる】見て楽しむ車・バイクニュース(すべて見る)

【速報】車・バイクニュース

完全無料で話題の車・バイクニュースがすぐに読める(すべて見る)

【話題】今話題の動画

SNSで1000いいね!以上の話題の動画(すべて見る)

この質問に答えてみる

現在Arduino UNOを秋月電子から購入勉強中でよろしくお願いします。 先日有難う御座いました投稿してくださった方に

現在Arduino UNOを秋月電子から購入勉強中でよろしくお願いします。 先日有難う御座いました投稿してくださった方に感謝申し上げます。以下のプログラムで動いています。 ★記号の所教えてくださる方どうかよろしくお願いします。 13番ピンは現在ボードにて成功 12番ピン~8番ピンがOFFから始まりますお願いします。 class Blink { static const int delayStep = 10; enum { OFF=LOW, ON=HIGH }; int pin; long onPeriod, offPeriod; long cnt; int stat; public: Blink(int _pin, long _onPeriod, long _offPeriod) : pin(_pin) { onPeriod = _onPeriod / delayStep; offPeriod = _offPeriod / delayStep; pinMode(pin, OUTPUT); stat = ON; cnt = 0; } void loop() { int led = stat; if (stat == OFF) {//今消灯中? if (cnt > offPeriod) {//消灯時間過ぎた? led = HIGH;//点灯する stat = ON;//点灯サイクルの始まり cnt = 0;//時刻クリア } } else {//今点灯中? if (cnt > onPeriod) {//点灯時間過ぎた? led = LOW;//消灯する stat = OFF;//消灯サイクルの始まり cnt = 0;//時刻クリア } } cnt++;//時刻一つ進める digitalWrite(pin, led);//led設定 } static void delay() { ::delay(delayStep); } }; Blink *bl[6]; void setup() { bl[0] = new Blink(8, 1000, 1000); // ★OFF31分ON15秒OFF50分 ON15秒OFF19分 bl[1] = new Blink(9, 1200, 800); //★OFF28分ON15秒OFF50分 ON15秒OFF22分 bl[2] = new Blink(10, 500, 750); // ★OFF25分ON15秒OFF50分 ON15秒OFF25分 bl[3] = new Blink(11, 5000, 1000); //★OFF6分ON15秒OFF50分 ON15秒OFF44分 bl[4] = new Blink(12, 250, 250); //★OFF3分ON15秒OFF50分 ON15秒OFF47分 bl[5] = new Blink(13, 1000000, 5000); //★ON15秒OFF50分 ON15秒OFF50分 } void loop() { for (int i = 0; i < 6; i++) { bl[i]->loop(); } Blink::delay(); }

※未入力の場合「乗り物好き」として匿名で回答できます。

※未入力可能

全角10文字以上4000文字以内