Arduinoで組込み制御、目次
1、Arduinoとは? 2、Arduinoをダウンロードしよう 3、Arduinoのサンプルを使ってみよう 4、フルカラーLEDを点灯させるプログラムを書いてみよう 5、LCDディスプレイで文字を表示してみよう 6、小型DCモータを制御してみよう 7、マトリクスLEDで文字を点灯させようArduinoとは?①
・Arduinoは、Processingをベースにしたソフト ウェアの開発環境でプログラミングをし、ハー ドウェアを制御することができる、フィジカル コンピューティングのプラットフォームです。 ・フィジカルコンピューティングとは、既存の ディスプレイやキーボードやマウスだけではな く必要に応じてハードウェアを使い、コン ピュータと人間とのコミュニケーションを実現 させるもの、新しいデザインや使い勝手の良い ものを生み出す、といったことです。Arduinoとは?②
・Arduinoをもっとわかりやすく言えば、今までよ りも簡単なプログラムでマイコンを制御できて さらに電子部品なども、今までより自由な考え 方で回路を作ることができます。 ・Arduinoは、オープンソースで、Processingはも ちろん「Adobe Flash」、「Max/Msp」でも制御 することができます。 ・Arduino IEDとはソフトウェア開発環境です。Arduinoとは?③
・Arduino IDEを使ってプログラムを書き、Arduino 本体にアップロードして実行させます。 ・Arduino IEDは無料でダウンロードできます。 ・Arduino IDEではプログラムをスケッチと呼びま すが、今回はそのままプログラムと書いています。 ・今回の実験はごく一部のプログラムのみの結果で プログラムはまだまだ沢山あります。Arduino IDEをダウンロードしよう
・Arduinoのファイル を下のWebアドレス からダウンロード しよう。 ・Webアドレス http://arduino.cc/e n/Main/Softwareダウンロードしたファイル
・ダウンロードしたファイ ルを解凍し、ファイルを 開こう。 ・すると右のようなファイ ルが格納されています。 ・arduino.exeというファイ ルのショートカットを製 作して、ディスクトップ に貼り付けましょう。Arduino IDEを起動させよう
・プログラムを書いたり
Arduino IDEの中にあるサンプルを
使ってみよう
Arduino本体のLEDを点灯させる
サンプルプログラム
・File→Examples→ Digital→Blinkでファ イルを開いてみよう。 ・プログラムを確認し 実行してみよう。 ・実行結果に問題がなけ れば、アップロードし てみよう。Arduino本体のLEDを点灯させる
プログラムソース
int ledPin = 13; // LED connected to digital pin 13 // The setup() method runs once, when the sketch starts void setup() {
// initialize the digital pin as an output: pinMode(ledPin, OUTPUT);
}
// the loop() method runs over and over again, // as long as the Arduino has power
void loop() {
digitalWrite(ledPin, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(ledPin, LOW); // set the LED off delay(1000); // wait for a second }
Arduino本体のLEDが点灯する
プログラムの実行結果
フルカラーLEDを点灯させる
プログラムを書いてみよう
・新規(New)でファイ ルを開き、プログラム を書いてみよう。 ・先ほどのLEDの点灯と 同じくフルカラーLED のプログラムを確認ボ タンを押して間違えが なければアップロード する。フルカラーLEDのプログラムソース
int i; int n_ms = 30; void led_off () { analogWrite(3, 255); // 赤を消す analogWrite(6, 255); // 緑を消す analogWrite(5, 255); // 青を消す } void setup() {pinMode(4, OUTPUT); // anode common digitalWrite(4, HIGH); // 4番は常時 オン led_off(); } void loop() { // iの値が小さくなるにつれ明るく光る for (i = 255; i > 210; i--) { analogWrite(6, i); delay(n_ms); } led_off(); for(i = 255; i > 150; i-=2) { analogWrite(5, i); delay(n_ms); } led_off(); for(i = 255; i > 200; i--) { analogWrite(3, i); delay(n_ms); } led_off(); }
フルカラーLEDの実行結果
フルカラーLEDの実行結果
フルカラーLEDの結果の感想
・フルカラーLEDが赤色、青色、緑色へと順番に点 灯したら成功です。光る速度を変えてみたり、 色の順番を変えてみたりと、プログラムを変更 してみるのもよいと思います。 ・実際にはフルカラーLEDの色の変化が、目視では わかりづらいので、LEDに光拡散キャップを付 けた方が、色の変化がわかりやすいです。LCDディスプレイで文字を
表示してみよう
・16文字×2行のキャ ラクタLDCを使って文 字を表示してみました。 ・今回使用したLCDはバッ クライトなしのもので す。可変抵抗は10KBを 使用しました。LCDディスプレイで文字を
表示するプログラムを書く
・プログラムソース ・確認してアップロード
#include <LiquidCrystal.h> // LiquidCrystal display with: // rs on pin 12 // enable on pin 11 // d0, d1, d2, d3 on pins 5, 4, 3, 2 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup()
{ // Print a message to the LCD. lcd.print("hello world");
}
void loop() {
LCDディスプレイで文字を
表示させた実行結果
LCDディスプレイで文字を
表示させた結果の感想
・Arduinoを使って、LCDディスプレイで文字 を表示させた結果、とても簡単なプログラ ムソースで文字が表示できることが確認で きました。応用でいろいろな計測結果の表 示や情報を表示させることもできるので、 さまざまな用途で使用できると感じました。 また今回はバックライトなしで、1行のみ の表示でしたが、時間があるときに2行の 表示や応用を試してみたいです。小型DCモータを制御してみよう
・小型のDCモータを使って 正回転、逆回転の制御し てみました。 ・今回使用した部品は ・小型DCモータ ・モータドライバIC 「TA7291P」 ・可変抵抗10KB ・電池スナップ を使用しました。小型DCモータを制御する
プログラムを書く
・プログラムソース ・確認してアップロード void setup(){ pinMode(1,OUTPUT); //信号用ピン pinMode(2,OUTPUT); //信号用ピン } void loop(){ //アナログ入力:0番ピンの値を2で割 る int val=analogRead(0)/2; //0~511if(val>=255 && val<=256){ //静止 //LOW,LOWでデジタル出力 digitalWrite(1,LOW);
digitalWrite(2,LOW); }
else if(val>256){ //正転 //HIGH,LOWでデジタル出 力
digitalWrite(1,HIGH);
digitalWrite(2,LOW); //valが大きいほど出力値も大きくな る
analogWrite(3,val-256); //出力値:1~255
}else{ //逆転(val<255) //LOW,HIGH でデジタル出力 digitalWrite(1,LOW); digitalWrite(2,HIGH); //valが小さいほど出力値は大きくな る analogWrite(3,255-val); //出力値:1~255 } }