C言語
① 5秒間 1秒間隔で点滅を繰り返す
② 3秒間 0.5秒間隔で点滅を繰り返す
①→②→①→②・・・これを繰り返す
上記のようなものを作成したいです。
以下のようにdigitaとdelayを複数並べていけば作成できますが,式が長くなってしまいます。よろしくお願いします
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
No.5ベストアンサー
- 回答日時:
>すみません。
上記を参考に1時間ほど頑張りましたが,上手く行きませんでした…void A(void){
は、No.4で回答した通り
void A1(void){
digitalWrite(LED_BUILTIN, HIGH); delay(1000);
digitalWrite(LED_BUILTIN, LOW); delay(1000);
digitalWrite(LED_BUILTIN, HIGH); delay(1000);
digitalWrite(LED_BUILTIN, LOW); delay(1000);
digitalWrite(LED_BUILTIN, HIGH); delay(1000);
}
と
void A2(void){
digitalWrite(LED_BUILTIN, LOW); delay(1000);
digitalWrite(LED_BUILTIN, HIGH); delay(1000);
digitalWrite(LED_BUILTIN, LOW); delay(1000);
digitalWrite(LED_BUILTIN, HIGH); delay(1000);
digitalWrite(LED_BUILTIN, LOW); delay(1000);
}
ですよ
「①→②→①’→②’→①→②→①’→②’・・・これを繰り返す」
部分は、例えば
void loop(void) {
for (i=0;i<6;i++){
A1();B1();A2();B2();
}
}
な感じですかね
No.4
- 回答日時:
<おまけ>
① 5秒間 1秒間隔で点滅を繰り返す
これは曲者ですよ。
5秒間ということは、点滅点滅点 滅点滅点滅 の2種類あり、関数はA1、A2を用意する必要があるということ。
その直後の3秒間も、点滅点滅点滅 滅点滅点滅点 の2種類があり、関数はB1、B2を用意する必要があるということですよ
ということは、
「①→②→①→②・・・これを繰り返す」
も正確には、
「①→②→①’→②’→①→②→①’→②’・・・これを繰り返す」
ですよ
すみません。上記を参考に1時間ほど頑張りましたが,上手く行きませんでした…
本当に申し訳ないのですが,コード全文を教えて頂けないでしょうか?
※下のコードではAを実行したあとBに移行したのですが,そのままBを繰り返してしまいました。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
int i;
int k;
void A(void){
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
void B(void){
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
void loop() {
for (i=0;i<6;i++){
A();
}
for(k=6;k<9;i++){
B();
}
}
No.3
- 回答日時:
>それが分からないので質問させて頂きました。
「それ」ってどこのことですか?
「関数」なら
void A(void){
① 5秒間 1秒間隔で点滅を繰り返す
}
「①→②→①→②・・・これを繰り返す」なら
for(i=0; i<N; i++) {
A();
B();
}
No.1
- 回答日時:
どれだけ長くなっても、「作ろうと思ったもの」がその通りに動作すれば、それは「正しいプログラム」です。
> 以下のようにdigitaとdelayを複数並べていけば作成できます
ならそれでも別に悪いわけではない。
/* メモリが小さいから行数を減らしたいとかでなければ */
たとえば、そのプログラムの
void loop()
を
void loop(int t)
等と引数でdelayに指定する値を受けとれるようにして
delay(1000); を delay(t); と、受け取った引数を使うようにすれば
点→1秒→滅→1秒
と
点→0.5秒→滅→0.5秒
は loop(1000) とloop(500) と引数を変えるだけでよくなる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 コードを書いたのですが上手く実行出来なかったです。どこが間違ってますか? 【作成したいもの】 1 2022/05/04 11:36
- C言語・C++・C# c言語 Arduino 作成したコードを実行してみたところ,エラーが出てしまいました。どうすれば良い 4 2022/05/06 17:28
- その他(教育・科学・学問) A地点からB地点までの距離は16mで52秒で到着します。 その間30秒間隔でA地点からは製品が払い出 3 2023/08/19 11:19
- その他(ネットショッピング・通販・ECサイト) 初期不良の対応について 5 2023/07/21 19:46
- Windows 10 Windowsの立ち上げ 立ち上げてWindowsマークが出る 直前にアンダーバー?が出ます 点滅し 3 2022/11/28 16:05
- モニター・ディスプレイ パソコンの画面の一番下に、一定の間隔で点線が出たり消えたりする 1 2022/07/09 10:10
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- CPU・メモリ・マザーボード HP製パソコンのBIOSの立上げ方を教えて下さい。 2 2022/10/28 18:28
- 物理学 Scratchの簡単なプログラム 2 2023/04/09 08:31
- モニター・ディスプレイ デュアルディスプレイ環境で、メインモニターが暗転を繰り返すことがあります。 OS:win10 GPU 1 2022/08/02 12:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
DirectInput でのエラー
-
既定のコンストラクタがありま...
-
【gcc・cygwin】multiple defin...
-
C++にてtemplateで受け取った任...
-
int main()、void main()、void...
-
コールバック関数とクラスとの...
-
C++ strlenに関して
-
Notepad++の関数リスト表示の変...
-
関数ポインタについて
-
privateなnamespaceメンバ
-
VC++でGetKeyboardStateがうま...
-
const_castのつかいどころを教...
-
AKI-h8 3069f C言語 HEW マイ...
-
4桁7セグでダイナミック点灯
-
ドラッグしたときにマウスカー...
-
beginthread 引数
-
画面上をクリックするとクリッ...
-
C# Controls.Addで動的に配置し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
既定のコンストラクタがありま...
-
静的でないメンバ関数の呼び出...
-
gcc: incompatible pointer type
-
C# Controls.Addで動的に配置し...
-
int main()、void main()、void...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
void*型の配列について
-
C# KeyDownイベントでショート...
-
const_castのつかいどころを教...
-
H8マイコンのシリアル通信につ...
-
コールバックって・・・
-
関数ポインタについて
-
void main()って誰が最初?:AN...
おすすめ情報