ESP8266 メ モ
覚え書きです。
1 aruduino-IDE 1.8.1 のインストール
2 espボードの登録(Arduino-IDEに) 再掲
3 I2CのGPIOポート番号
4 GPIO15,0pinについて
1 aruduino-IDE 1.8.1 のインストール 2017.03.08
Arduino-IDEで使えるのでESP-8266を使うことにしましたので、このIEDは必須です。Arduinoは2つに別れていたそうですが1.8.1版では再び一つになっているそうです。
このページから、右にあるDOWNLOAD ARDUINO IDEの2つ目にある「WINDOWS ZIP FILE」を利用しました。
解凍してできた arduino-1.8.1を C:\MicroC\Arduino\ に置いています。c:\programfiles には置いていません。
この C:\MicroC\ フォルダには私が使う AVR R8C/M12A mbed などのフォルダを置いています。
C:\MicroC\
+- Arduino −−−+- arduino-1.8.
+- Avr +- sketchbook
+- mbed
+- ESP8266
+- R8C/M12A
sketchbookはこの場所に変更しています。
2 espボードの登録(Arduino-IDEに) 2017.02.13
aruduino-IDEで処理するためにsep8266ボードを登録します。こちらのページを参考にしました。
1.aruduino-IDE 1.8.1 はすでにインストールしてあります。
2.指示に従って上記のページに示された http://arduino.esp8266.com/stable/package_esp8266com_index.json を
Arduino-IDEの「ファイル」→「環境設定」→「追加のボードマネージャーのURL」にペーストします。
3.「ツール」→「ボード」→「Bords Managerをクリック」
4.最後の欄にある ESPボード をクリック。
5.最新バージョンを指定して、「インストール」をクリック。
6.IDEの設定でボードは「Generic ESP8266 Module」を選択します。
7.「Flush Size」は4M(1M SPIFFS)を選びました。(3Mはかけない、という...)
8.書込装置は esptool とのことですが、ないのでデフォルトの 「AVRISP mkII」で書込みができました。
9.Reset Method は ck にしています。(GPIO0は手動設定、リセットも手動)
3 I2CのGPIOポート番号 2017.05.25
ESP8266関係でI2C通信のSDA,SCLのGPIOポートが記事によって変わっています。webを調べると決まっているわけではなく
wire.begin(SDA,SCL);で自由に決められるそうです。多くの記事ではこの記載がなくデフォルトで使っているようですが、例えば AI THINKER のESP8266MODにはSDA,SCLの記載がありません。
そこで、「wire.bigin();//マスター」 のあとに「 wire.begin(4,5);」と書きました。 「 wire.begin(4,5);」と書くだけで十分です。
SDAにIO4をSCLにIO5を割り当てます。問題なく通信できました。
(2017.05.26) WROOM02の装置に wire.begin(5,4); SDAとSCLと入れ替えて書いてみました。予想通り、4と5のpinを入れ替えると正常に表示されました。また、(0,2) と (12,13) も試してみましたが問題なく表示されました。
4 GPIO15,0pinについて 2017.05.28
GPIO1 15 は常時10kΩ程度でプルダウンするように指示されています。このIOは他に使えないかと実験してみました。プログラム例のblinkをIO15に割り当てました。 pinMode(15, OUTPUT);
実行するとプルダウン抵抗に並列に抵抗つきLEDをつなぐとプログラム通りLEDが点滅しました。このことから10kでプルダウンする条件を満たせばこのポートも自由に使えると思います。
なお、リセットスイッチONではLとなって消灯します。また、プログラムダウンロードスイッチON(GPIO0=L)でリセットをかけると(ダウンロードモードです)Hとなって点灯しました。
プログラム書込みモードでは10kでGNDに繋いであるけれどもポートはH状態になっていて、10kの意味がよくわかりません。
GPIO 0 についても調べました。図のような情報がありますが、
このような切り替えをするにはプッシュスイッチでなく2接点の切り替えスイッチが必要です。一般的な抵抗でプルアップしておいて、スイッチでGNDに直に落とす、という方法を取っています。ただし、この方法でIO0ポートがH出力になっているときにスイッチを押すとポートが短絡することになります。このとき、リセットスイッチをONにした状態でIO0のスイッチを押し、リセットスイッチをOFFに戻した後にIO0スイッチをOFFに戻すと(通常の書込み動作です)不要な短絡は防げます。
書込み時はどちらのスイッチを先に押してもいいのですが、IO0がH出力に設定されているときはリセットスイッチを先に押すことにすれば問題はありません。
IO2についても常時プルアップとなっていますが、その状態を保てれば自由に使えるようです。I2CでSCLとして使ったときに問題はありませんでした。
工事中
2017.02.12