0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ESP8266でSerial.Beginした後に、Pin3(RX)をGPIO(IN)として使う

Posted at

 ESP8266を使っていると、様々なパッケージ品が市場に出回っているのに気づきます。
その様々な品の中で、システムの検討で役立つのがESP-01/ESP-01Sであります。
1ケ100円台で購入可能なのですから、大量投入による同時試験が可能になります。
おかげで、私のつたないソースコードでも不具合の早期発見が可能になりました。

さて検討でとても役に立つESP-01/ESP-01Sですが、端子は8ピンしかありません。
8ピンのウチで、電源の±で2本・RESETで1本・ENABLEで1本・
シリアルで2本なので自由に使えるピンは2本だけになります。

その自由に使えるピン2本も電源投入時はLOWだと書き込みモードに入ったりして、
面倒なピンだったりします。(汗

なのでセンサー入力で使えるピンが欲しい

 センサー入力なので電源投入時のセンサー状態は不定になるので、自由に使えるピン2本に
入れるとセンサーLOWで電源投入すると書き込みモードで起動したりして使えない訳であります。

そういえばログ出力ってSerialの受信は機能していないのでは?

実をいうと私が作成するプログラムでは簡易デバッグ用にログ出力としてシリアルを使うのですが
ログ出力だけでシリアルからは何も受信していない事に気づきました。
いつも何気なくGND/RX/TXと繋いでいたのですが、電気的にはGND/TXだけでログ出力できちゃう。

て事は、Serial.Begin()後にRXピンをINPUTにモード変更したらどうなる?

どうなるか判らないので、以下のソースを作って試してみました。
動作結果は、TXピンはSerial出力行えて RXピンはGPIO(IN)で使うことができました。

SERIALTEST.INO
# define READPIN 3
int num;

void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println( "SerialInputTest" );
  pinMode(READPIN, INPUT);
  num = 0;
}

void loop() {
   Serial.print( digitalRead(READPIN) );
   Serial.print( ":" );
   Serial.println( num );
   num++;
   delay(1000);
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?