• ベストアンサー

Arduino、LEDを光らせるスケッチについて

h_bopper2002の回答

  • ベストアンサー
回答No.1

30秒の繰り返しのあとに、以下を挿入してみたらどうでしょうか。 delay(300000);

haru45
質問者

お礼

ありがとうございます。うまくいきました。

関連するQ&A

  • Arduino unoでLED点滅周期が乱れる

      Arduino unoでLED点滅周期が乱れる理由は? スケッチ例のblinkプログラムでLED(13ピン)の点滅時間を1マイクロ秒ON・1マイクロ秒offとしデジタルオシロで観測すると、通常は50%dutyでON・OFFをくりかえしている。  しかし数十パルスかそれ以上経過後の1パルスのON時間が約2倍になったり、別のタイミングのOFF時間が同様に約2倍になったりする理由はどうしてか?  もちろん周期は2マイクロ秒にはならず、プログラムのdigitalWrite()の命令時間分は長く約10マイクロ秒となっています。 実験したプログラムを記載します。 int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delayMicroseconds(1); digitalWrite(led, LOW); delayMicroseconds(1); }

  • ARDUINOで5つのLEDをそれぞれ点滅させたり、フェードインさせた

    ARDUINOで5つのLEDをそれぞれ点滅させたり、フェードインさせたりしたい!! ARDUINO初心者です。5つのLEDをそれぞれ上記の様に制御したいと思っています。点滅は点灯、消灯が一定の点滅ではない効果を持たせたく、5つのLEDのうち、2つはフェードインフェードアウトで蛍のような効果にしたいと思っております。 以下、途中まで3つのLEDで試行錯誤してスケッチを構築したのですが、なかなかこれ以上、前へすすみません。 まず、このスケッチでの第一関門はプログラムの並列処理ができない、ということでした。 int ledPina = 9; int ledPinb = 10; int ledPinc = 11; void setup(){ pinMode(ledPina, OUTPUT); pinMode(ledPinb, OUTPUT); pinMode(ledPinc, OUTPUT); //LedPin a b cを出力に設定。 } void loop() { digitalWrite(ledPina, HIGH); // aのLEDをオン delay(500); //待機 digitalWrite(ledPina, LOW); //aをオフ delay(500); digitalWrite(ledPinb, HIGH); // bのLEDをオン delay(800); // 待機 digitalWrite(ledPinb, LOW); //bをオフ delay(300); digitalWrite(ledPinc, HIGH); // cのLEDをオン delay(100); // 待機 digitalWrite(ledPinc, LOW); //cをオフ delay(50); } おわかりの方、いらっしゃいましたら、お教え願えますでしょうか? よろしくお願い致します!!

  • Arduino LEDを任意に点灯させたい

    LEDが3個とプッシュスィッチ1個の構成で LED1とLED2が10秒毎交互に点灯し続けプッシュスィッチを押した時だけLED3が5秒間点灯するスケッチを教えて下さい。 delayを使うとLED1とLED2の動作が終わるまでLED3が点灯しません スィッチを押したら直ぐにLED3が点灯しその間もLED1とLED2は交互に点灯し続けるようにしたいのですがどなたか宜しくお願いします。

  • C言語のプログラムについて(LEDの点灯)

    C言語初心者です. LEDを以下のように点灯させるプログラムをC言語でつくりたいのですが,わからなくて困っており,質問させていただきました. 「LEDを1秒間点灯させ,0.5秒間消灯させ,また1秒間点灯させ,次は0.6秒間消灯させるというように消灯時間を0.1秒おきに増やしていき,消灯時間を1.5秒間まで増やした後,今度は0.1秒おきに消灯時間を減らしていき,消灯時間を0.5秒間まで減らし,これを繰り返す.」(分かりづらくてすみません…) というようなプログラムはどのようにつくればいいでしょうか? ちなみに1秒おきに点灯,消灯を繰り返すプログラムは,メイン関数を void main() { while(1){ LED1_ON(); delay_us(1000); LED1_OFF(); delay_us(1000); } } とすることで出来ました.

  • Arduinoでタンクに自動補給

    回路図の様にフロートSW2個を水を入れるタンクの上と下にセット タンクが空になったら(上のSW1オフ、下のSW2オフ)ポンプ稼働させて 満タン(上のSW1オン、下のSW2オン)になったらポンプ停止するスケッチを作りたいです。 水が減っていく途中の状態ではポンプ停止のままで 水を補給している途中の状態ではポンプ稼働にしたままにしたいのですがどちらの状態も(上のSW1オフ、下のSW2オン)になりますがどうスケッチを書いたら良いのか解りません 基本的にArduinoのスケッチを理解できてませんのでネット上の参考になりそうなコードをコピーして利用してます。 参考例がありそうで見つからないので宜しくおねがいします。

  • ArduinoとXbee、通信によるラグ、遅延

    ArduinoとXbeeによる無線通信を利用して複数の散水ポンプを遠隔操作でON/OFFしようとしていますがラグ(遅延時間)が生じて困っています。 構成としてArduinoとXbee間でシリアル通信を行い、それを二つ使って無線通信をしています。 ([Arduino←シリアル通信→Xbee]←無線通信→[Xbee←シリアル通信→Arduino]) 使用機器等 AVRマイコンはATmega168Pを使用し、互換性のある回路で動作させています。 XbeeRFモジュールはProではありません。 現状として思い通りに通信できているのは 送信側:シリアル通信で「h」,「j」を3秒経つ毎に繰り返し送信 受信側:「h」の時赤色LED出力、「j」の時黄色LED出力 この時はLEDが交互にラグもなく光ってくれます。 しかし、 送信側:デジタル入力でタクトスイッチのON/OFFを検出し、タクトスイッチを押した時にシリアル通信で「h」を、それ以外の場合(押していない時)は「j」を送信 受信側:「h」の時赤色LED出力、「j」の時黄色LED出力(変更なし) とした時、タクトスイッチを押したり離したりしてLEDで確認をするのですが、3回程押すと通信が途切れてしまうのかLEDが光っていたなら光ったまま数秒から十秒程固まってしまいます。 上記の送信側スケッチ例(プログラム) int button = 13; void setup() { Serial.begin(9600); pinMode(button, INPUT); } void loop() { if (digitalRead(button) == HIGH) { Serial.print('h'); } else { Serial.print('j'); } delay(1000); } 規則的な値を送信し、受信できているといった症状から問題は送信側のスケッチ(プログラム)だと思い、ダメもとでif else文ではなくswitch case文で書きましたが症状は変わりませんでした。 反応速度を上げて使用したいと考えておりdelay(100)等にするとラグが大きくなりました。 また、Xbeeの送信側をパソコンに繋ぎ 送信側:パソコンにXbeeを接続してXbeeの設定ソフトX-CTUのterminalから 「h」,「j」を交互に適当な間隔で送信 受信側:「h」の時赤色LED出力、「j」の時黄色LED出力(変更なし) とした時も同様にラグが発生しています さらに、 送信側:[ArduinoとXbee]アナログ入力に可変抵抗を繋ぎその値をシリアル通信で1秒毎に送信 受信側:パソコンにXbeeを接続してX-CTUのterminalでシリアル通信をモニタリング とした場合 シリアル通信で送ってきた値を1秒毎に表示→数秒後に値の表示が停止→数秒後、止まっていた間の値がまとめて表示→シリアル通信で送ってきた値を1秒毎に表示 の繰り返しです。 検索サイトで調べましたが、同様の症状が出でいる方が居られますが解決にまで至っていませんでした。また、同じような構成でラジコンを製作している方の動画ではラグも無く、ボタンやセンサーにすばやく反応している様でしたので何か設定などがあるのかと思い試していますがうまくいきません 何か解決策はないのでしょうか? お願いします。

  • arduinoでミスト機を自作したい

    Arduinoで、本を見ながら複数LEDを光らせた程度の初心者です。 小さいミスト機(面A4サイズx幅7cm)を自作しようと思うのですが、タンクの水(250ml)が無くなる少し前(残量5ml~10ml)に、メールで知らせてくれる機能はどのようにすると良いでしょうか? 必要なパーツ、スケッチ、概要を教えてください。 あとタイマーについての質問ですが、これから自作するiPhoneアプリを使って、Bluetooth-Arduino UNOで、タイマーを制御することはできますか? (Arduino FIOが無線に最適のようですが、Arduino UNOでも基盤にUSB端子を付けて、ノートパソコンにつけるBluetoothのミニ端子つけるとできそうな気もなんとなくするのですが、出来ないものなのでしょうか。。。)

  • LEDイルミの点滅プログラムを教えてください

    プログラミングは超初心者ですが、以下条件でLEDクリスマスイルミネ-ションをマイコン制御したく、適切なソースプログラムを教えて下さい(プリプロセッサ-部含め)? 使用PIC: 12F683-I/Pを予定(もっと適当なもながあればそれでも可) プログラミングソフト: MBLAB X IDE ver.2.20 使用言語: C コンパイラ-: XC8 ver.1.33 書込み器: PIC KIT3 動作内容: 点滅は2個のLED出力を以下内容で行う(使用する内臓クロックは1MHzを希望): LED1(GP0、7番ピン) 起動後1秒間で徐々に明るく(デュ-テイ比0→100)     その後7秒間はON(点灯)維持 その後1秒間で徐々に暗く(デュ-テイ比100→0) その後3秒間はOFF(消灯)維持 合計12秒間のサイクルで元に戻る LED2(GP2、5番ピン) 6秒遅れで上記と同じサイクルを繰り返す。つまり LED1とLED2は点灯が一部重なりあう

  • arduinoでのプログラム

    初心者の質問で申し訳ございませんがご回答いただけましたら幸いです。 どうぞよろしくお願いいたします。 現在、頑張ってプログラム(スケッチ)を書いていますが なかなかうまく動作してくれません。 内容は Button0,Button1,Button2の3入力です。 LED0,LED1,LED2の3出力です。 Button0の入力に対して LED0に100msのHIGH,LOWのパルス信号を(3パルス)出力したい。 Button1の入力に対して LED1に50msのHIGH,LOWのパルス信号を(5パルス)出力したい。 Button2の入力に対して LED2に150msのHIGH,100msのLOWのパルス信号を(7パルス)出力したい。 *delayを使うとなんとなく動作してくれますが Button0,Button1をほぼ同時に使うとButton0の処理が終わるまで Button1の動作を受け付けてくれません。 3入力を同時に処理するには どのようなスケッチを書けばよろしいでしょうか? 是非、ご教授頂けますでしょうか。

  • ArduinoでAVR328のみを使う場合の注意

    こんにちは. マイコンを勉強しています.ArduinoやARMを使って勉強しています. Arduinoは,Arduinoの基盤を用いずにATMega328マイコンのみを用いて使うことができますが,この場合使えなくなる機能などはないのでしょうか? 先日,写真のような回路を組んでオルゴールを作ってみました.事前にArduinoのブートローダを書き込んだATMega328を,Arduinoボードを用いてプログラムを書き込みました.セラロック16MHzのものを加えた以外に,回路はArduinoボードを使って動かすのと変わりません. つまりこれは,クロックさえ供給してやれば,ATMega328のみで動かしても,Arduinoボードを用いて居る場合と同じことができるという理解で合っていますか? さらには,arduinoボードとは,PCとの通信,マイコンへの書き込み,リセットスイッチや動作確認のLED,クロックなどを供給するもので,製品として組み込む場合は特に必要ないもの,あるいは自分で簡単に追加出来るもの,という理解で合っているのでしょうか?もし,マイコンボードが必要な理由,などがあればこちらも回答お願いします . あと少し逸れていても,詳しく解説してある資料など大歓迎です.