MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Arduinoの基礎のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Arduinoの基礎
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Arduinoのスケッチには、setup()関数とloop()関数が存在する。<br> setup()関数はスケッチの実行開始時(電源を投入した直後)、またはボードのリセット後に1度だけ呼ばれる。<br> 変数の初期化や、ピンモードの設定、ライブラリの初期化などを行うのに適している。<br> loop()関数は、setup()関数が呼ばれた後に繰り返し呼び出される。<br> <br><br> == スケッチのダウンロード == まず、スケッチをコンパイルする。<br> 次に、Arduino IDEの[ツール]メニューバー - [ボード]メニューでArduinoボードを選択する。<br> 更に、Arduino IDEの[ツール]メニューバー - [ポート]メニューでCOMポートを選択する。<br> 最後に、[マイコンボードに書き込む]ボタンを押下して、コンパイルしたスケッチをダウンロードする。<br> <br><br> == LEDの点滅(ArduinoのHello World)のサンプルコード == 次に示すのは、LEDを点滅させるサンプルコードである。<br> <source lang="c++"> const int LED_PIN = 13; void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { digitalWrite(LED_PIN, HIGH); delay(1000); digitalWrite(LED_PIN, LOW); delay( 1000 ); } </source> <br><br> == Arduinoで電圧を測定する(アナログ入力を読み取る) == Arduinoボードは、A0 - A5までの6チャネルの10ビットのADCを持っている。<br> Arduino Uno等の動作電圧が5[V]のボードでは、0[V] - 5[V]までの電圧は、0 - 1023までの整数に対応付けられる。<br> <br> Arduino IDEでは、analogRead()関数を用いることで、指定したアナログピンから値を読むことができる。<br> analogRead()関数は読み取った値を0 - 1023までの整数値で返す。<br> 従って、5[V]を1023に対応する場合は、'''"analogRead()関数の戻り値 * 5 / 1023"'''とすれば電圧が分かる。<br> <br> 尚、デフォルトでanalogRead()の戻り値である0 - 1023が、0[V] - 5[V](Arduino Gemmaのような3.3[V]の動作電圧の場合は0[V] - 3.3[V])に<br> 対応付けられているが、analogReference()関数を用いてこの範囲を変更することは可能だが、設定可能な値はボードに依存する。<br> <br> <center>'''図.1 電圧を測定する回路図'''</center><br> [[ファイル:Arduino AnalogRead 01.png|フレームなし|中央]] <br> 次に記述するのは、電圧を読み取った結果をシリアルモニタに出力するサンプルコードである。<br> これによって 1秒毎にシリアルモニタに電圧が表示される。<br> <br> <center>'''図.2 電圧を測定してシリアルモニタに表示'''</center><br> [[ファイル:Arduino AnalogRead 02.png|フレームなし|中央]] <br> <source lang="c++"> const int PIN_ANALOG_INPUT = 5; void setup() { Serial.begin(9600); } void loop() { int iVoltage = analogRead(PIN_ANALOG_INPUT); float fVoltage = iVoltage * 5.0 / 1023.0; Serial.println(fVoltage); delay(1000); } </source> <br><br> == 割り込みとISR == Arduinoのスケッチでのハードウェア割込み(hardware interrupt)の利用方法について記載する。<br> <br> Arduino Unoでは、2個のピン(D2, D3)が割込みに利用できる。D2は割込み番号が0、D3は割り込み番号が1である。<br> Arduino Mega2560では、6個(D2, D3, D18, D19, D20, D21)が使えます使用できる。割込み番号は順に0, 1, 5, 4, 3, 2が設定されている。<br> <br> 割込みサービスルーチン(ISR, interrupt service routine)は、引数および戻り値が無い(void)の関数が割り当てられる。<br> attachInterrupt(割込み番号, 関数名, モード)でISRをセットする。<br> また、attachInterruptの引数にはピンの番号ではなく、割込み番号を指定することに注意すること。<br> ピン番号から割込み番号の解決には、digitalPinToInterruptを使用する。<br> <br> 次のサンプルコードでは、toggle_ledという名前のISRを、D2ピンでの割込み処理に指定している。<br> モードのFALLINGはHIGHからLOWの状態へ遷移したことで割込みを発生させることを意味する。<br> ISRでLEDが接続されたピンの状態を表す変数をLOWまたはHIGHに変化させている。<br> そして、loop()関数でその変数をdigitalWrite()関数に渡している。<br> <source lang="c++"> const byte PIN_LED = 10; const byte PIN_INTERRUPT = 2; volatile byte state = LOW; void setup() { pinMode(PIN_LED, OUTPUT); digitalWrite(PIN_LED, state); attachInterrupt(digitalPinToInterrupt(PIN_INTERRUPT), toggle_led, FALLING); } void loop() { digitalWrite(PIN_LED, state); } void toggle_led() { state != state; } </source> <br><br> __FORCETOC__ [[カテゴリ:Arduino]]
Arduinoの基礎
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse