初歩の電子工作とデジカメの日記

電子工作備忘録とデジカメで撮影した写真のブログです。

Arduino備忘録5 (タクトスイッチでLEDを点滅させる)

2016-07-18 12:00:41 | Arduino Uno
タクトスイッチのON-OFFでLEDの点灯、消灯を切り替えるArduino電子工作です


回路図作成ソフトは[Bsch3v]を使用しています
タクトスイッチのON-OFを切替えることで接続されているLEDが点滅する回路図です



スケッチはArduino IDEの[ファイル]→[スケッチの例]→[02.digital]→[Button]を利用します



/* タクトスイッチでLEDを点滅させるスケッチ
*/

const int buttonPin = 2;
const int ledPin = 13;

int buttonState = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);

}

void loop() {
buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}

}


tact sw led

Arduino備忘録4 (8LEDの順送り点灯)

2016-07-15 11:11:39 | Arduino Uno
2個のLED交互点灯スケッチの応用で今回は8個のLEDが順送りで点灯するArduino電子工作です。


在庫品に8Pの集合抵抗器があったので使っています。抵抗値は220Ωx8pです。



// 8LED順送り点灯スケッチ・・・ナイトライダー?

void setup() {
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(10, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);

}

void loop() {
digitalWrite(13, LOW);
digitalWrite(2, HIGH);
delay(150);
digitalWrite(2, LOW);
digitalWrite(4, HIGH);
delay(150);
digitalWrite(4, LOW);
digitalWrite(6, HIGH);
delay(150);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(150);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay(150);
digitalWrite(8, LOW);
digitalWrite(10, HIGH);
delay(150);
digitalWrite(10, LOW);
digitalWrite(12, HIGH);
delay(150);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(150);

}


8led nightrider

動画でArduino本体の下に映っているのはモバイルバッテリーです。(ANKER製)
Arduinoはスケッチの書き込みが完了したら、別電源が取ればPCとのUSB接続をはずしてもOKです。





Arduino備忘録3 (2LED交互点灯)

2016-07-14 10:25:23 | Arduino Uno
前回LEDを2個使って同時点滅の回路をやったので、今回は2個のLEDが交互に点灯するArduino電子工作です。


2個のLEDが交互に点灯する回路図



// 2個のLEDが交互に点灯するスケッチ

void setup() {
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);

}

void loop() {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1000);

}


2led change

Arduino備忘録2(2LED同時点滅)

2016-07-13 11:26:12 | Arduino Uno
前回の回路の応用で2個のLEDが同時にON-OFFを繰り返す回路はスケッチは同じで回路だけ変えれば実現する


2個のLEDが同時にON-OFFを繰り返す回路図



2led couple


スケッチは前回と同じなのでファイル→スケッチの例→01.basic→Blinkで同時点滅は実現する




Arduino備忘録1(Lチカ)

2016-07-12 10:50:32 | Arduino Uno
いろいろなマイコン(PIC,Arduino,Mbed,Raspberry pi,AVR,ARM,ichigojamなど)を取り扱ってきたが電子工作ド素人の自分にはArduinoが一番馴染んでいるようなので復習を兼ねてこのブログに備忘録を作ることにした。その第1回はLチカです。


LED点滅の回路(Lチカ)

このLED点滅回路(Lチカ)のスケッチ(プログラム)は ArduinoIDEのファイル→スケッチの例→01.Basics→Blinkを順にクリックすると出てくる。

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://www.arduino.cc

This example code is in the public domain.

modified 8 May 2014
by Scott Fitzgerald
*/


// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}


led01 mov


ESP-WROOM-02開発ボードを使う3 (ArduinoOTA)

2016-02-17 09:51:21 | Arduino Uno
「ESP-WROOM-02開発ボードを使う」記事の3回目です。[開発ボード]はいろいろとできることがあるようなので、少しずつやり方を覚えていこうと思ってます。今回は"WiFi"機能を使ってArduinoのスケッチを「開発ボード」に書き込むことをやってみます。


手順の最初は今まで通り「開発ボード」とPCを[USBシリアル変換アダプター]で接続した状態でスケッチを「開発ボード」に書き込みます
書込むスケッチは[ファイル]→[スケッチの例]→[ArduinoOTA]→[BasicOTA]
Arduinoのバージョンが1.6.7でOTAはサポートされてるらしい。そして[Python2.7]がPCにインストルされていることが必要となっている。



書き込み完了→シリアルモニター画面にIPアドレスが表示されたのでOTAで書き込む段階になった。



Arduino IDEを一度閉じて再度開くと[ツール]→[シリアルポート]に新たに[esp8266・・・・]ポートが追加された。これがOTAポートらしい。



LED点滅のスケッチにするためサンプルのスケッチに書き加えます
1行目 #define ledPin 4 // LEDを接続するピン GPIO 4
7行目 SSID // WiFiルータのSSID
8行目 PASSWORD // WiFiルータ接続のパスワード



さらに51,52,57-60行目を書き加えてOTA用のLED点滅スケッチを作成しました。
書き込み手順
1.PCとのUSBケーブル接続をはずす。(有線→無線へ)
2.「開発ボード」の電源はモバイルバッテリーを利用した。
3.Arduino IDEの[ツール]→[シリアルポート]→[esp266・・・](OTAポート)を選択してスケッチを書込む



ESP WROOM 02 ArduinoOTA

画像の通り「開発ボード」にLED,抵抗そしてモバイルバッテリー(奥の白い長方形の物体)を接続した簡単な配線で[Arduino IDE]のスケッチを書込み、実行できるなんてまったく「びっくりポン!」です。
[ArduinoOTA]のサンプルスケッチに新たなスケッチを加筆、利用することで簡単に無線で書込み、実行ができるわけで今後いろいろと使えそうだ。





ESP-WROOM-02開発ボードを使う 2

2016-02-15 11:26:20 | Arduino Uno
「ESP-WROOM-02開発ボードを使う」記事の2回目です。いよいよ「開発ボード」にArduinoスケッチ(プログラム)を書込み、動作を確認します。これにより「開発ボード」がArduinoとして利用できることになります。



このスケッチはHP[Aruduino Tutorial]をお手本にしました。

ESP WROOM 02開発ボードを使う

黄色LEDの光がだんだん明るくなり、そしてだんだん暗くなっています。
Arduinoのスケッチが「開発ボード」で(Arduino本体は使わず)そのまま使えるのが分かりました。



サーボモーターを0-180度回転させるスケッチです。このスケッチはArduinoのスケッチの例を利用しています。
[ファイル]→[スケッチの例]→[Servo]→[Sweep]



ESP WROOM 02開発ボードにサーボM接続

サーボモーターの電源は「開発ボード」とは別にACアダプターで5Vの電圧を使っています。
スケッチの設定ではサーモモーターの回転幅は0度から180度になっているのだが、実際は120度ぐらいの幅でしか動作していない。何故だろう?・・・わかりません



ESP WROOM 02開発ボードを使う

2016-02-13 21:21:16 | Arduino Uno
昨年9月に「マイクロテクニカ製 ESP-WROOM-02ブレイクアウトボード」を使ったWiFi通信記事をアップしたが、今回部品接続が簡略化されたスイッチサイエンスの「ESP-WROOM-02開発ボード」を手に入れ早速使ってみた。
ESP-WROOM-02開発ボードをArduino IDEで開発するまでの記事です


「開発ボード」は<ESP=WROOM-02 WiFiモジュール>,<USB-シリアル変換IC FT231XS>,<3.3 V出力レギュレータ>が搭載されているのでピンヘッダをはんだ付けすればブレッドボードに挿せてすぐに使うことができる超扱いやすいボードになっている。
端子が2x10pinなのでブレッドボードにあらかじめピンヘッダを挿しておく。
画像でブレッドボードの右にあるのは、同じくスイッチサイエンスで販売されているそのままブレッドボードに挿せるDCジャックです



「開発ボード」をピンヘッダの上に載せ、ピンとボードの間に隙間ができないように注意する



20pjnのはんだ付けが完了



「開発ボード」をブレッドボードに挿し、このボードとPCはUSBケーブル(A-microB)で接続する。
Arduino IDEスケッチの書き込み作業までであれば、別電源は必要ないので右のDCジャックは配線しません。
「開発ボード」とUSBケーブルだけでいろいろな動作ができるのでこれは楽ちん!



「開発ボード」を使用するための準備

他HP等を参考にして「開発ボード」がArduino IDEが扱えるマイコンボードとなるように必要フォルダ、ファイルをダウンロード、インストールして画像の通り、マイコンボードに"Generic ESP8266 Module"が表示されるようにする。
「ツール」タブでの詳細設定ではReset Methodをデフォルトのckからnodemcuに変更する
これは開発ボードにはリセットボタンとIO0のモード切替ボタンが付いているが、Reset Methodをnodemcuに設定していればボタンの操作をしなくとも、自動的に書き込みを行なってくれるから。
シリアルポート番号を確認してチェックをいれておく

以上で「開発ボード」がArduino化されたことになり、Arduino IDEのスケッチを「開発ボード」に書き込めるようになった。



シリアルモニターを使ってATコマンドを「開発ボード」に送る
この後色々なATコマンドを送ってみた。
AT+CWMODE=1 // WiFiモードの設定 1 station 2 softAP 3 station + softAP


OK
AT+CWJAP="SSID","PASSWORD" // WiFiへの接続 引数「SSID」,「PASSWORD」

BUFFALO SSID BUFFALO-xxxxx PASSWORD xxxxxxxxxx


WIFI CONNECTED
WIFI GOT IP

OK
AT+CIFSR // Macアドレスの取得

+CIFSR:STAIP,"192.168.x.xxx"
+CIFSR:STAMAC,"xx:xx:XX:XX:XX:XX"

OK
AT+GMR

AT version:0.23.0.0(Apr 24 2015 21:11:01)
SDK version:1.0.1
compile time:May 5 2015 14:03:58

OK

AT+CIPSTA? // IPアドレスの確認

+CIPSTA:ip:"192.168.1.xxx" // ESP-WROOM-02のIPアドレス
+CIPSTA:gateway:"192.168.1.xxx"
+CIPSTA:netmask:"255.255.255.xxx"

OK

AT+CWLAP // アクセス可能なアクセスポイントの一覧が表示される。

+CWLAP:(4,"BUFFALO-xxxxxxxxxxxxxxxx)
+CWLAP:(2,"D25HW-xxxxxxxxxxxxxxxxxx)


OK

次はいよいよArduinoのスケッチを「開発ボード」に書き込んで動作を確認します









Arduinoでモーションセンサ(人感センサ)を使う

2015-07-27 12:15:09 | Arduino Uno
市販されている防犯用自動点灯LEDライトは焦電センサといわれる動体をキャッチして動作させるセンサーを使っているらしい。 そこで自宅で玄関のドアを開けてから電灯スイッチを押すまでの間の暗がりを解消するためこのセンサを利用して自動点灯LEDライトを作った。


千石電商で買った「Napion MPモーションセンサ(黒)標準検出タイプ」で通称人感センサとも言う。 センサより2mの距離で約30cmの動きを検出する機能で今回の製作目的には充分な性能だ。



プログラムは書かないで済ませるようにチャージポンプICやタイマIC555を使う回路も試みたが失敗を繰り返すのみだったので、最後の頼みで[Arduino UNO]を使って回路を組んだ。 LEDは明るさも考慮して角型LED(Flux LED)を3個使うことにした。



Arduin IDEのスケッチ(プログラム)
LEDの点灯時間はdelay関数で設定。delay(20000)は20秒間点灯する。



[Arduino UNO]からスケッチ書き込み済のIC 「ATmega328p」を取り外し、以前製作した「eJackino」の付録基板「eJackino-Mini」にセット。ユニバーサル基板にはいつでも取り外しができるようにピンソケットをハンダ付けしてそれに「eJackino-Mini」を挿す。ICを単体で使用するための配線は済んでいるので楽チン。
ユニバーサル基板には人感センサ、電源電池(単3乾電池x3本)接続のためのピンソケット、そして3個の角型LEDもそれぞれハンダ付けした。



製作した基板と電池ケースを一体化するため、アクリル板をサイズに万能ノコギリでカットし、5mmのスペーサを噛ましてM3ネジ、ナットで固定。



アクリル板の裏面
ここに単3乾電池3本用の電池ケースを強力粘着両面テープで貼り付けた。
フックに吊り下げられるようにウィやー用に穴も開けておく。



電池ケースを接着した。吊り下げ用のワイヤー(黄色)も結ぶ。



テスト点灯・・・・20秒後に消灯

赤外線リモコン受信モジュールの動作テスト

2014-08-05 11:09:03 | Arduino Uno
名刺サイズの小さなパソコン"Raspberry Pi"が家電製品のリモコンになるという記事を読んで、秋葉原の秋月電商で赤外線リモコン受信モジュールを買い求めた。
 Raspberry Pi関連の本やHPを見ながら配線やソフトのインストール、モジュールファイルの編集、デバイスファイルの設定まで順調に進め、いざ受信テストをしたら何の反応も示さないのです。配線のチェックや、手順の再確認などをして何度か再チャレンジしたのですが、どうしてもちゃんと動作してくれません
せっかく買った"赤外線リモコン受信モジュール"を無駄にはしたくないので、別のマイコンボード"Arduino Uno"で検証したレポートです。こちらのブログ記事をお手本にしました。


3本足の赤外線リモコン受信モジュール"OSRB38C9AA" 画像で
右のリード線を電源ラインへ
中央のリード線を GND ラインへ
左のリード線を Arduino の D2p へ それぞれ接続します



部品配置図はソフト "Fritzing" で作図しました。
リモコンから発射される赤外線を受信モジュールが受信している様子は肉眼では確認できません。
画像左の普通の赤色LEDが点灯する回路で受信を確認します



ブレッドボード上に配置図通りに部品を配置、結線しました。
LEDへの抵抗は 330Ωを使っています。

お手本ブログに載っているプログラム(スケッチ)コピーしてArduino IDE にペーストすれば作業は完了です。

画像右のリモコン受信モジュールに向けて普段使っているテレビ用のリモコンのボタンを押すと左の赤色LEDが点灯したので受信動作を確認できました。
動作確認の動画を "You Tube" にアップしました。


赤外線リモコン受信モジュールの動作テスト