X



トップページ電気・電子
1002コメント371KB
Arduino初心者熱烈大歓迎質問スレ part19 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん
垢版 |
2017/07/23(日) 02:45:28.96ID:pdkxknW8
http://www.arduino.cc/

【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
 詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね

【分裂騒ぎ】
おさまった模様。くわしくはぐぐれ。

関連スレ
【Arduino】フィジカル・コンピューティング4【OSC】
http://wc2014.2ch.net/test/read.cgi/denki/1407830304/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/

前スレ
Arduino初心者熱烈大歓迎質問スレ part18 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.net/test/read.cgi/denki/1451893274/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.net/test/read.cgi/denki/1451909868/
0005774ワット発電中さん
垢版 |
2017/07/23(日) 21:28:07.83ID:Mu6dMeUY
おったんたちんくえ
0006774ワット発電中さん
垢版 |
2017/07/24(月) 14:15:36.85ID:21Ld/xHe
arduinoって3.3v駆動した方がアナログ入力の精度って上がる?
入力電圧が3.3vになる欠点があるが
0007774ワット発電中さん
垢版 |
2017/07/24(月) 16:44:18.63ID:uqTgJpNT
arduinoとdfplayer miniを使っています。
今までdelayを使って次の行のBGMに行くようにしていたのですが当然ながらのBGMの長さによって途切れてしまったり無音が長くなったりしています。
busyから再生が終わったかの信号を取ることができるのはわかったのでdelayの代わりにwhileを使ってみたのですがうまくいきません。
再生が終わったら次の指定した曲に行くにはどんな風にすればいいのでしょうか?

sound=digitalRead(6); //busy

mp3_play(1);

while(sound==1){ 
} 
mp3_play(2);
0009774ワット発電中さん
垢版 |
2017/07/24(月) 18:04:28.65ID:8pkZ3f/q
>>7
0になるまで、ずっと見るんじゃね。

mp3_play(1);
while(digitalRead(6)==1){}
mp3_play(2);
0010774ワット発電中さん
垢版 |
2017/07/24(月) 21:24:06.34ID:6eveDh3P
>>9
やってみましたが1曲目飛ばしていきなり2曲目再生になってしまいます。
0011774ワット発電中さん
垢版 |
2017/07/24(月) 22:31:13.01ID:8pkZ3f/q
>>10
busyピンはLowで演奏中みたいなんで
while(digitalRead(6)==0){}
に変えてみたらどう。
0012774ワット発電中さん
垢版 |
2017/07/24(月) 23:27:37.44ID:6eveDh3P
>>11
やってみましたが同じように1曲目が再生されず2曲目だけが再生されます。
0014774ワット発電中さん
垢版 |
2017/07/25(火) 06:01:38.21ID:M5CZzmWQ
>>12
うーん
BUSYピンとdigital6ピンが繋がってるのならどちらか==1または==0のwhile文に必ずひっかかるので1番の曲だけ演奏するケースがあると思うんだがどちらも2番だけ演奏というのが解せない。
1) pinMode(6,INPUT)の設定してるよね。
2) While文のカッコの中の式は==じゃなく=書いていない?
ワーニングエラーが出そうだけど念のため
3) 電源はaruduinoの3.3vを dfplayer miniにつないでるんだよね。
5Vに繋いでるなら1kの抵抗をarduinoのデジタル6と dfplayer miniのBUSYピンの間に入れてください。
4)あとはBUSYピンが変化するまで一定時間かかるのかもしれない(MP3には曲名とかアルバム名とかが書かれている部分が先頭にありそれを読み飛ばしてから曲の演奏が始まる)から1~2秒delayを入れてからwhile文呼ぶようにしてみたらどんなかね。
5) dfplayer miniのデータシートみるとBUSYピンの説明が表にのってる説明と本文に書いてある説明で逆になってるから上記1)~4)確認するとき==0と==1の両方試してみてください。
0015774ワット発電中さん
垢版 |
2017/07/25(火) 21:12:01.88ID:OK1xhaPX
>>14
試してみました。
4)でした。再生しようとしていたファイルが2秒くらいのものだったのでおっしゃられた通りbusyが変化する前に終わってしまっていたようです。delayで解決しました。他のファイルでもうまく再生できました。
このスレには前にも今回も助けていただきました。
本当に助かりました。ありがとうございます。
0017774ワット発電中さん
垢版 |
2017/07/26(水) 10:53:23.96ID:UepfD/ag
arduinoのLチカできたから赤外線Lチカしたよ!
でも届く範囲が2mくらいで短いみたい。
2.8mくらい離れたところから操作したいのだけれど、LEDの数を増やすくらいしか方法はないですか?
赤外線LEDは内部抵抗のないピンに直接さしちゃってます。
0019774ワット発電中さん
垢版 |
2017/07/26(水) 13:14:13.91ID:UepfD/ag
>>18
はいそうです、扇風機回したいです。
部屋の床が1.2m×6mとか小学校の算数みたいな形をしていて
対角線上壁付近に扇風機が置いてありますので
どちらかの扇風機にLEDを近づけるとどちらかが反応しなくなるという状況です。
0022774ワット発電中さん
垢版 |
2017/07/26(水) 19:04:16.68ID:eJXCtm++
>>ID:UepfD/ag
赤外線LEDの指向性の問題と到達距離の問題を分けて考えんと無理。
あと、その説明じゃ物の位置関係の全容が伝わらん。
>小学校の算数みたいな形
とかw
小学校の国語からやり直せ。
0023774ワット発電中さん
垢版 |
2017/07/26(水) 19:31:57.95ID:UepfD/ag
>>20
径が5mmのものとしか。
HiLetgo 新しい 赤外線IRワイヤレス リモートコントロール モジュール キット 部品番号 3-01-1145-A
てやつの付属品。
秋月で一般的な見てみると、だいたい50mAか100mAくらい必要のようですが…
一般的にはLEDの出力上げるには最大電流が流れていれば数を増やす以外には仕方ないですよね。

>>21
抵抗器は取り付けていません。
0024774ワット発電中さん
垢版 |
2017/07/27(木) 10:12:41.48ID:6kUWs2pL
IOから直接100mA流す能力ないからトランジスタを介さないとだめだよ。2sc2120で10オームの抵抗くらいだと広範囲に届くようになる。回路図は検索するとネットにたくさんある。
0025774ワット発電中さん
垢版 |
2017/07/28(金) 08:41:31.23ID:Z5WWC61A
Adafruit_NeoPixelのライブラリを使っています。

RGBLed.setPixelColor(0, 150,0,0) ;
これの0,150,0,0を変数にする事はできますか?
led=0,150,0,0だとうまくいかなくて。
0027774ワット発電中さん
垢版 |
2017/07/28(金) 14:06:55.41ID:fTiDAR0x
>>26
まじかcurieもやめるのかよ
インテルは完全にマイコン系はやる気無いんだな…
0028774ワット発電中さん
垢版 |
2017/07/28(金) 16:37:36.88ID:6vmqVPf4
>>27
単価が低い上に、枯れたのが好まれるから数も出ない。ARMは、革命的だったけど。
0029774ワット発電中さん
垢版 |
2017/07/28(金) 23:08:07.77ID:a+HXjfLV
arduino UNOとLCD-09067を使ったプログラムです。ヘッダは<WProgram.h>と<avr/io.h>を#includeしてます

スイッチのバウンス対策でdelay命令を入れると必ずその部分で動作(画面出力?)が完全に止まってしまいます
delayの仕様上の問題なのでしょうか
またどのような対処法がありますでしょうか

ttp://www.dotup.org/uploda/www.dotup.org1322033.jpg
0030774ワット発電中さん
垢版 |
2017/07/28(金) 23:43:43.21ID:0ju0cBab
>>29
ちゃんと追ってないけど、move==1になって内側のループを抜けて、
その他蛾のループを頭からやり直して毎回 mae=0; にして
おなじ表示を繰り返しているだけだったりしないかい
0031774ワット発電中さん
垢版 |
2017/07/28(金) 23:44:37.34ID:0ju0cBab
× その他蛾のループ
○ 外側のループ

指がもつれてる上に見逃したぜ。寝るわ。
0032774ワット発電中さん
垢版 |
2017/07/29(土) 00:05:52.33ID:pv1tXr1d
>>28
儲からなくても社会還元でやり続ければいいのになあ。
インテルはそろばん勘定優先だな。
0033774ワット発電中さん
垢版 |
2017/07/29(土) 02:58:28.91ID:/QbyCY2G
>>32
株主にどうやって「社会還元だから赤字事業だけど続けます」
と説明すればいいのか、お前がインテルに教えてやるといいんじゃないか
0034774ワット発電中さん
垢版 |
2017/07/29(土) 03:08:41.21ID:uFYYd5rQ
さすがネトウヨ。
0035774ワット発電中さん
垢版 |
2017/07/29(土) 03:32:33.56ID:15fL5ic6
>>30
大事なこといいわすれてました
この内側のループ抜けたらすぐ(画面外)に数字じゃないものが表示されるはずなんです
ついでにdelayを抜けばバウンス以外は正常に動作するんです
0039774ワット発電中さん
垢版 |
2017/07/30(日) 01:22:37.83ID:jXQaG3MP
http://i.imgur.com/ROtrBFX.jpg
以前壊れたウォシュレットから取ってキープしてた部品モジュールをばらしてみたら
中から赤外線測距モジュールらしき物が出てきてちょっと得した気分

便器の分際で一々距離迄見てるとは思わなかった
0041774ワット発電中さん
垢版 |
2017/07/30(日) 04:37:51.59ID:jXQaG3MP
>>39はタンク上部のだったけど、糞まみれでタンク下の方に同じ様なモジュール
あったの思い出して開けてみたらこっちは測距モジュールだけが入ってた

てっきりリモコンの受光部かと思ってたら、測距で便座に座ってるのか
小便なのか判定してんだな
0042774ワット発電中さん
垢版 |
2017/08/01(火) 17:36:55.62ID:4o2Bq2tZ
LEDをブザーの音声に合わせて光らせたいと思い
プログラミングしたら単純にLチカさせるより
何故か暗くなったんですがプログラム上の問題が
何かあるのでしょうか?

比較したプログラムはこんな感じです。

while(hogehoge){
digitalWrite(ledPin, HIGH);
tone(bpin,392,200);
digitalWrite(ledPin, LOW);
delay(200);
}
※実際はメロディーラインに合わせてtoneの音程部分は変更

while(hogehoge){
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
delay(200);
}
0043774ワット発電中さん
垢版 |
2017/08/01(火) 18:40:41.82ID:O2Pd1mDs
toneが非同期処理だからすぐにリターンしてくるんだろ
while(hogehoge){
digitalWrite(ledPin, HIGH);
tone(bpin,392,200);
delay(200);  //←入れる
digitalWrite(ledPin, LOW);
delay(200);
}
0044774ワット発電中さん
垢版 |
2017/08/01(火) 22:24:51.47ID:ayn1aFdz
すいません
ttp://www.dotup.org/uploda/www.dotup.org1326137.jpg
ttp://www.dotup.org/uploda/www.dotup.org1326138.jpg
この16*2液晶についてるこのSparkFunのパーツの名称分かりますか
回路図を作らなければならないのですがfritzingで同じものが見つけられないので助けてください
0046774ワット発電中さん
垢版 |
2017/08/02(水) 07:15:18.67ID:MRy9XLTf
前にAVRtiny2313使って、RS232CのTxD〜秋月の並列接続LCDの3線式(電源ライン込み)変換器を
作った事を思い出した。
これは役に立つ、いつかは必ず使うと作ったけど、もう何年も経つのにいまだ出番が無い・・・。
0048774ワット発電中さん
垢版 |
2017/08/02(水) 11:04:14.63ID:tLFuqzeT
>>43
ありがとうございます。
参考にしてプログラム中にdelay関数を入れてみたのですが
鳴らしてるメロディーも変化してしまいました。

同じメロディーラインでLチカさせる方法はないんでしょうか?
鳴らすのを繰り返せばうまくいくかもと思ってこれも試してみたけどうまくいきませんでした

while(hogehoge){
  digitalWrite(ledPin, HIGH);
  while(kurikaesi <10){
   tone(bpin,392,20);
kurikaesi = kurikasesi++;
}
kurikaesi = 0;
digitalWrite(ledPin, LOW);
delay(200);
}
0049774ワット発電中さん
垢版 |
2017/08/02(水) 13:08:44.62ID:CoHKKkde
エンベロープ取り出すかコンプレッションかけて積分か平均化
005046
垢版 |
2017/08/02(水) 14:31:09.98ID:MRy9XLTf
RX232C/I2C〜LCD変換器の写真を探したら出てきた、日付を見たら5年前!
裏面の左端に実装した16ピンコネクタを秋月のLCD側のコネクタにダイレクトに挿して、
LCD基板とネジ止め連結する。
ボード幅もLCDに合わせた。
ショート用ピンがいっぱいあるのはUART/I2Cの切り替え、UARTボーレィト/I2Cアドレスの選択、
I2Cをプルアップする/しないの選択など。
http://i.imgur.com/k2SZb85.jpg

論点からズレているし、誰も写真アップなんて望んでいないだろうけど、
人の工作物を見てケチ付けるのは楽しい一時でしょ?w
0051774ワット発電中さん
垢版 |
2017/08/02(水) 15:37:22.95ID:CbA+Zn+v
論点からズレているし、誰も写真アップなんて望んでいない。
なので、自分のブログでやれや。
005346
垢版 |
2017/08/03(木) 17:05:15.53ID:lELc2iB4
誰も望んでいないしケチも無いシリーズ第2弾
ただし、ここArduino板向きでは無いと思うので、AVR板に書きます。
0054774ワット発電中さん
垢版 |
2017/08/03(木) 17:35:01.88ID:vRAHTWul
ブログの1つも立ち上げられない奴の作品なんてたかが知れてる。
人の迷惑考えず自分はみんなから必要とされていると思い込んでるジジイほど迷惑な物は無い。
という「ケチ」は書いても目に入らんのだろうなw
0056774ワット発電中さん
垢版 |
2017/08/05(土) 18:00:33.51ID:EwN386vY
>持続的な成長のために財務状況の健全化に努める

逆にいうと今危ないって事かね?
0057774ワット発電中さん
垢版 |
2017/08/05(土) 21:30:25.06ID:UKwwbK7f
http://codepad.org/0R54pkaR

上のプログラムでコンパイル時に↓のエラーがでます
adobe_fude_v5:54: error: expected initializer before 'void'
adobe_fude_v5:88: error: expected initializer before 'void'

しかし54行目にどう考えてもエラーの要素がなく、コンパイルできずに困っています。
色々調べてみると書式が間違っている時にでるエラーらしいのですが、
54行目周辺を見渡してもそれらしきミスが見当たりません。

どこが間違っているのでしょうか?
0058774ワット発電中さん
垢版 |
2017/08/05(土) 21:37:03.98ID:UKwwbK7f
セミコロンがない行を発見しました死んできます

54行目より前をずっと探してたけど54行目のずっと後ろにあった・・・
なぜ54行目にエラーが出るのか分かりませんがとりあえず解決です
0060774ワット発電中さん
垢版 |
2017/08/08(火) 14:54:21.76ID:TP5di19F
キーボード作るのにREVIVE USBつかってるんだけど、Arduino microおすすめされた

でもなにがなんだか?さっぱりです
どのサイト読めばいいでしょうか
0061774ワット発電中さん
垢版 |
2017/08/08(火) 18:19:02.49ID:XLRT1k5y
3つのLEDを1つのタクトスイッチで光らせようとしています。

タクトスイッチを1回押すとAのLEDがフェード点灯、続いてBもフェード点灯、
続いてCもフェード点灯し、Cだけが明滅を繰り返します。
2回目タクトスイッチを押すとABCが一緒にフェード消灯するというものです。

Cの明滅部分をwhileでくくり、スイッチがHIGHになればwhileを抜けるという
条件にしてみたのですがうまくいきません。
(何回もぽちぽちしているとたまに消える)
どのようにすれば目的の動作を実現できるのか、ヒントをいただけないでしょうか。
0064774ワット発電中さん
垢版 |
2017/08/08(火) 20:20:01.61ID:6noEYqNa
>>63
>Cの明滅部分をwhileでくくり、スイッチがHIGHになればwhileを抜けるという

old_val が泣いていますよ(抽象的表現)
0065774ワット発電中さん
垢版 |
2017/08/08(火) 22:29:53.60ID:wtrKwlta
>>61
>何回もぽちぽちしているとたまに消える
while1回まわすだけで数秒掛かり、その間スイッチの値は読まれないから、
ずっと押し続けるとか、消えかけた時をねらって押すとかしないと…。
その後、1度放してから再度押せば消える。

以上のようなプログラムになっているようだから自分で確認してみて。
ただ、私なら外部割込み使うかな。
0066774ワット発電中さん
垢版 |
2017/08/08(火) 23:44:53.74ID:6UhQB9FG
1.Cの明滅部分のwhileをやめて、違う方法にする。
2.スイッチの入力を割込にする。

拡張性考えると1かなぁ。。。
0067774ワット発電中さん
垢版 |
2017/08/09(水) 00:57:30.84ID:WZ6xjWm7
>Cの明滅部分のwhileをやめて、違う方法にする。
それ、参考までに教えて下さい。
割り込みでフラグの値増減してループ内のcase文で条件分岐する。
くらいしか浮かばないわ。
0068774ワット発電中さん
垢版 |
2017/08/09(水) 06:42:49.90ID:8qnaHehl
逆にタイマー割り込みでLED制御するかディレイカウントすれば?
メインはスイッチリードとLEDへのコマンド設定ステータス判定にして高速で回す
006961
垢版 |
2017/08/09(水) 08:44:07.90ID:qoQHn8dp
皆様ありがとうございます。

>>65
現状おっしゃる通りの動作になっております…
007061
垢版 |
2017/08/09(水) 09:01:14.92ID:qoQHn8dp
>>66
これはやはり>>65
>while1回まわすだけで数秒掛かり、その間スイッチの値は読まれないから
ということですよね。
whileはこの場合ふさわしくないということですね。
0071774ワット発電中さん
垢版 |
2017/08/09(水) 12:42:56.04ID:k+orHPav
Arduinoでセンサーの値を読み取り,それをスマホ経由でサーバーやクラウドに上げようと考えています.

イーサネットシールドを使って「Arduino-有線LAN-USBアダプタ-microUSBアダプタ-スマホ」
Wi-Fiシールドを使って「Arduino-スマホ」

という二つの選択肢を今のところ考えています.
どちらが初心者にとって簡単とか,ネットの情報が多いとか,個人的にオススメだとかあるでしょうか.
0073774ワット発電中さん
垢版 |
2017/08/09(水) 13:38:22.23ID:k+orHPav
>>72
こういうのもあるんですね,知りませんでした.検討してみます.
ありがとうございます.
0074774ワット発電中さん
垢版 |
2017/08/09(水) 14:23:20.99ID:/osJLcAW
>>70
whileがふさわしくないってんじゃない
ループ内にこれ入れりゃいい
val = digitalRead(sw);

もちろん、他にもいろいろ変更の必要な点があって、
最終的には違ってくるとは思うけど、
直前の問題から1つ1つ理解していかないと堂々巡りになるよ
0075774ワット発電中さん
垢版 |
2017/08/09(水) 15:16:33.23ID:gNLo1lkX
30キーのキーボード作りたいけどmicroでいいんでしょうか
あと書き込んだあとのキーボードは別のパソコンへ繋いでもそのまま使える?
0076774ワット発電中さん
垢版 |
2017/08/09(水) 15:17:56.43ID:gNLo1lkX
追加 1キーにALT+F8+↑+Enter

とか振れます?
0077774ワット発電中さん
垢版 |
2017/08/09(水) 16:16:57.53ID:NDVnnNaL
>>70
arduino IDEのコンパイルの仕様でloop関数内で長い時間待つのは基本的に駄目だと思う。
今回のスイッチとLEDだけなら問題無いがシリアル通信を使うと問題が発生する。
なので拡張性(シリアル通信など)を考えると、2番が良いと書きました。
0078774ワット発電中さん
垢版 |
2017/08/09(水) 16:28:51.47ID:/AhYV6/0
だいたいその辺りは一部関数で内部的にnoInterrupts()呼び出されてることがしばしばって話だけどな。
とりあえず処理をしている時にどこの範囲だけでループしてるのか理解した方がいいというか、紙にスクリプトでも書いとけ
007961
垢版 |
2017/08/09(水) 16:44:30.50ID:qoQHn8dp
>>68
>>74
>>77
トグルスイッチだと割とすんなり出来たのでタクトでやってみたくなったのですが
こんなに難しくなるとは思っていませんでした…。
いただいたヒントをまだ理解できていませんので勉強します。
0081774ワット発電中さん
垢版 |
2017/08/09(水) 17:09:45.88ID:+QiK9SRX
横から眺めていて興味を持ち、
>>63のコードを拝借して外部割込みに挑戦してみた初心者です。
ほとんど>>61さんのねらった動作をしますが、
まれにAB消灯、C点滅という私的にはあり得ない状態になります。
色々考えましたが何が悪いのか分かりません。

勝手にコードを拝借した上に割り込んで申し訳ありませんが、
よろしければぜひ添削お願いします。
http://codepad.org/NSoCmm8z
008261
垢版 |
2017/08/10(木) 09:06:57.44ID:r2jBChWU
>>81
とんでもないです。ありがたいです。
早速試してみたのですが、
'changesw' was not declared in this scope
と、コンパイルエラーが発生してしまいました…
0083774ワット発電中さん
垢版 |
2017/08/10(木) 14:16:36.89ID:6BT/e0Fu
Aduino IDEのバージョン古くない?
うち1.8.1だけどそのエラーはちょっと前に良く出た気がする。
バージョンアップするか、それが面倒なら、
暗黙の宣言問題なので、
void changesw() {
}

void setup() {

より上に移動すればOK。
0084774ワット発電中さん
垢版 |
2017/08/10(木) 15:55:13.24ID:bI2/WI8y
microほしいけど足いらないんだよね
どうすれば外れるかな
0085774ワット発電中さん
垢版 |
2017/08/10(木) 16:22:24.63ID:UE3iG3Yu
>>84
つ半田ごて
0086774ワット発電中さん
垢版 |
2017/08/10(木) 16:26:36.72ID:bI2/WI8y
ほかのピンヘッダ抜こうとして折れた
008761
垢版 |
2017/08/10(木) 17:17:59.01ID:r2jBChWU
>>83
ありがとうございます。
1.8.3に上げました。

>>81
Cのみ点滅という動作がなくなればまさに私の希望通りの動きです!
0088774ワット発電中さん
垢版 |
2017/08/10(木) 18:58:09.95ID:yZJd+dL7
>>87
Cのみ点滅はあなたの環境でもなりますか?
操舵とするとやっぱ原因究明しないといかんな。
Arduinoで割り込みは初めてなので…。
008961
垢版 |
2017/08/11(金) 00:04:37.10ID:L1Pwj+Vt
>>88
はい。
何回かに一回発生しております。
初めてでここまで出来るのですね…。
まず割り込みを一から学ぶことにします。
0090774ワット発電中さん
垢版 |
2017/08/11(金) 01:01:25.79ID:A8qgGp5U
>>89>>61
http://codepad.org/2HRun7DT

スイッチもLEDも割り込み使ってメインループを空っぽにしてみた

※タイマーつかう都合上でLEDのピンを A=5 B=6 C=9 に変更してるので要LED差し替え

ライブラリ:MsTimer2 でタイマー使ったから
↓からダウンロードして メニューのスケッチ→ライブラリ→ZIP形式をインクルード で読み込んでね
http://www.arduino.cc/playground/uploads/Main/MsTimer2.zip

割り込み関数なのに長すぎるし汚いけど
0091774ワット発電中さん
垢版 |
2017/08/11(金) 01:07:12.76ID:A8qgGp5U
あ、ごめん書き忘れた
スイッチを内部プルアップにしてます(ブレッドボードでテストしてたので)

あと消灯させるときは綺麗に見えるようにCがフェードアウトしていくタイミングにAとB揃えてます
なのでCのタイミングによっては押した瞬間に消灯シークエンスに入りません
009361
垢版 |
2017/08/12(土) 02:59:04.67ID:ccOW3ip9
>>90
ありがとうございます。
素晴らしすぎて言葉も出ません。
ここまでしていただいた上に大変申し訳ないのですが、解説をしていただけませんでしょうか…。
0094774ワット発電中さん
垢版 |
2017/08/12(土) 03:17:31.54ID:+HjEaUg1
部外者だけどfに対してのswitch~caseの使い方に感心した
なんでもかんでもbreakつけてただの分岐にしか使ってなかったけどこういう使い方もあるのね…
0095774ワット発電中さん
垢版 |
2017/08/12(土) 05:32:34.71ID:3BTB2P74
case文で下に抜けるコードは、バグの温床になりやすい。
最低限、下に抜けるというコメントを次のcaseの直前に入れる。
例えば /* FALL THROUGH */とか。

バグの温床になる理由
一般にcase文はbreakで抜ける独立したブロックの事が多い。
そのため、caseの順序を変えたり、caseを間に追加する事が行われることが多く、
caseブロック間に依存関係があるコードに対する考慮が忘れがち。
0096774ワット発電中さん
垢版 |
2017/08/12(土) 13:07:51.15ID:vTWR1ouM
>>93
さすがに行きなり全部解説してじゃなくて
最低限、各変数をホワイトボードに書きながら自分の脳で1行ずつ実行して
分からない命令があればまず自分で調べて
それでもわからん時にどこがどうしてこうなるのか分からない、とか聞いたらどう?
0100774ワット発電中さん
垢版 |
2017/08/13(日) 12:54:46.44ID:J7lrDMru
>99
どういう意味ですか?
■ このスレッドは過去ログ倉庫に格納されています