arudinoはwroom-02とシリアル通信をするんだけど、
どうもうまく通信できないorz

考えられる問題は3つある。

・wroom-02の電源電圧
3.3V駆動だから、arduinoの5V出力から3端子レギュレータで降圧して
電圧かけてるんだが。手持ちのオシロがボロすぎて発信しちゃってるかどうか
確かめようがない。
がっつり電圧かかってるとは思うんだけど、
明日は9V1Aアダプターから分圧して直接印加してみる。
ていうかそもそもarduinoからの印加だと、どのタイミングで
wroom-02に電源が入ったかわ分からん。

・arduinoシリアル通信の不便さ
arduinoはシリアル通信を1系統しか持たないため、
PCでモニタリングをするのに1系統使うとそれでいっぱいになってしまう。
ただし、仮想的にシリアル通信をピンから出す「ソフトウェアシリアル」
という方法で2系統のシリアル通信を制御できる。
しかし……この方法だと最高9600bpsでしか通信できない。
wroom-02は初期設定で15200bps通信であるため、
通信に成功しても最初は絶対に文字化けする。
これが混乱に拍車をかける。

・通信電圧の違い
arduinoが5Vで通信するのに対して、
wroomは3.3vで通信する。
よってレベル変換が必要らしいが、
変換せずともarduinoから送信はできるとの説もある。
この辺頭が混乱してきたので、
ardinoからの信号をちゃんと3.3Vに合わせてみようと思う。

今日は寝るorz

[PR]
# by siroirukamania | 2018-08-13 02:18 | Comments(0)
開封してUSBでつないでプログラムを書き、LEDを光らせる。
ここまで30分くらいだった。すごいなArduino!

単純に、ピン番号を指定して5V出す。
これを分圧してLEDにつっこむだけ。
Arduinoでは、ピン出力の状態を
 HIGH(5V出力)
 LOW(0V)
という風に簡単に書けるので(マイコンなら当たり前かもしれんが……)わかりやすい。

具体的にプログラムで言うと、


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

プログラム冒頭、セットアップ必ず、ピンアサインなどの下準備をする。
この例の場合、13番ピン(デジタル)を
アウトプットに使いますよ~という宣言をしてるってこと。

void loop() {
digitalWrite(13,HIGH);
delay(500);

digitalWrite(13, LOW);
delay(500);
}

で、実行処理。
マイコンは電源が入ったら勝手にロムからプログラムを読んで延々実行するから
ループ みたいな名前になるわけです。
この場合、13番から5V出した状態で500ms待機、0vにして500ms待機、
という処理を死ぬまで続けます。
で、13番ピンにLED電球のアノードをさして、
GRDにカソードぶっさせばチカチカ光る(よい子は適当に分圧しよう)。
それだけの話だ!

IDEは日本語化されてるしシンプルで使いやすい!
無料で落とせるので、興味のある人はIDEだけを触ってみてもいいかもね。


今日はとりあえずアナログピンの入力を解析するところまでイったんだけど、
入ってきた値の単位がよくわからなかったので寝ます(^q^)




[PR]
# by siroirukamania | 2018-08-08 03:42 | 技術 | Comments(0)