概要
私のよく使う、ArduinoでのReferenceの閲覧先を項目ごとにまとめさせていただきました。間違っている部分は、ご指摘いただけると助かります。
関数の定義方法
関数の定義方法
voidではない型を使う場合は、下記のような記述
float output(int input){
~hogehoge~
return 10.222 + 20.5 + input;
}
上記の文字でいうと | 項目 | 内容 |
---|---|---|
float | 返却値の型 | 関数が返す値の型。関数が返却できる値は0個もしくは1個。2個以上の値を返却することはできない。(もちろん、float以外の型も使用可能。適宜合わせる) |
output | 関数名 | 呼び出すときに使う名称。(内容に合わせ適宜合わせる) |
int | 仮引数の型 | 仮引数の型の定義(もちろん、int以外も使用可能。適宜合わせる)。複数使用可能 |
input | 仮引数 | 関数に渡す入力値。0個以上の入力を指定することができる |
~hogehoge~ | 内容 | 関数の実行内容 |
return | return文 | 呼び出し元に値が返る。普通の式ならば「xxx = 10.222 + 20.5」となるが、そちらの「xxx」を「return」にし、イコールをなくす。そうすると、呼び出し元にこちらの答えが入る。 |
関数の呼び出し方法
answer = output(18);
このときanswerには「10.222 + 20.5 + 18」の答えが入る。つまり「output(18)」には「10.222 + 20.5 + input」の値が返されている。
※以下を参考にさせていただきました。
[Arduino(C/C++言語)での関数]
(https://garretlab.web.fc2.com/arduino/clang/function/index.html)
マイコン的ノウハウ・Tips
二択での条件分岐の場合、変数はintではなくbooleanを使う
下記のような、二択(0と1)で切り替えわれば十分な場合、このrunをintにするか、boooleanにするかでスケッチ容量がかなり変わる。
if (run == true){
~hogehoge~
run = !run
}
あるスケッチで、このrunをintとbooleanにした場合の比較では、1回しか使わない変数にもかかわらず、18バイトも容量が変わった。int型自体は2バイトを使って格納するにもかかわらず。
型 | スケッチサイズ |
---|---|
int | 7800バイト |
boolean | 7782バイト |
[int (整数型) - Arduino 日本語リファレンス]
(http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=1105)
[sketch - Program button to switch between two values - Arduino Stack Exchange]
(https://arduino.stackexchange.com/questions/8647/program-button-to-switch-between-two-values)
You can set it to true or false, or change it to it's opposite (with
value=!value as shown above). You can also do if value or if !value ("if not value") - these are equivalent to if value=true or if value=false.
pinMode(hogehoge, INPUT); 利用の場合、INPUT_PULLUPを利用すると便利
スイッチ入力などでオフを判断するには、電圧が0である必要がある。入力するピンの電圧が不安定になり、うっかり1の判断しないよう、入力ピンはグラウンドに接続する。その際、スイッチオンの時もVCCからグラウンドに電流が流れてはOnが判断できないため、抵抗を挟んで利用する。
だが、それだと配線が煩雑になる。
そのときに、INPUT_PULLUPを利用すると、INPUTするピンが電流を流す側になり、電流が流れていないときHighになり、スイッチが導通しgroundにつながるとlowになる。このように、スイッチのオンオフの判定は逆になるが、抵抗を外に挟む必要がなくなり、回路がシンプルになる。
詳細は以下にて
意外と知られていない?INPUT_PULLUP | スイッチサイエンス マガジン
スイッチの意図せぬ瞬間的なオンオフ(チャタリング)対策
オンした時に、5〜10ミリ秒後もオンなら「オンと判定」とするようです。オフも同様。
Arduino Playground - Bounce
電子回路で跳ねたり、引っ張り上げたりする話。 - シアトル生活はじめました
資料
[逆引きArduino]
(https://garretlab.web.fc2.com/arduino/reverse_lookup/index.html)
型一覧・データの有効範囲
[Arduino(C/C++言語)でのデータ操作]
(https://garretlab.web.fc2.com/arduino/clang/data/index.html)
I2C
[How I2C Communication Works & How To Use It with Arduino]
(http://howtomechatronics.com/tutorials/arduino/how-i2c-communication-works-and-how-to-use-it-with-arduino/)
マイコンの仕組み
Arduinoではないが、マイコンの基本的な仕組みの理解に役立つ
「マイコン入門!! 必携用語集」最新記事一覧 - ITmedia Keywords