シリアル通信ってなに?
今日はシリアル通信をやってみる。シリアル通信とはデータを1ビットごと送る通信のことらしい。僕も良く知らない。でも難しいことなんて知る必要はない。Arduinoの流儀のひとつ、「Circuit Bending(理論を知らなくてもごり押しでOK)」に習おう。
以下のコードを使う。この前のものからLEDをひとつにしてシンプルな作りにした。回路図は前回のままでもいい。
// Original 03:簡単なシリアル通信 const int red_LED = 13; // 赤LEDが接続されているピン int val = 0; // 光センサの値を格納する int state = 0; // LEDの状態(0ならオフ、1ならオン) void setup() { pinMode(red_LED, OUTPUT); // ArduinoにLEDが出力であると伝える Serial.begin(9600); // シリアル通信の転送レートを指定 } void loop() { val = analogRead(0); //センサから値を取得します Serial.println(val); // シリアルポートにデータを出力 if(val/4 < 90){ state=0; }else{ state=1; } //変化があるかどうかチェック if (state == 0) { digitalWrite(red_LED, LOW); } else { digitalWrite(red_LED, HIGH); } delay(100); }
Arduinoに書き込んだら、エディタ右上の虫眼鏡のアイコン「シリアルモニタ」をクリックしよう。数字がスゴい速さで書き込まれているのがわかる。今回の数値はCdSセンサから読み取った電圧(0から5V)を0から1023の数値に変換されたものが表示されている。
次回はArduinoの頼れる相棒、Processingを使って世界とArduinoをつなげてみたいと思う。
- 出版社/メーカー: カルビー
- メディア: 食品&飲料
- 購入: 109人 クリック: 318回
- この商品を含むブログ (47件) を見る