LoginSignup
2
1

More than 3 years have passed since last update.

ESP32でSerial.readを使ったCSVデータ読み込み

Last updated at Posted at 2021-02-24

Arudinoでは動くSerial.readを使ったCSVデータ読み込みのプログラムが
ESP32では動かなかったのでまとめてみました。

原因は

Arudino unoではSerial.readするとserialEvent()が機能するが
ESP32では機能しない

Arudinoリファレンス

注意事項と警告
serialEvent() Leonardo、Micro、またはYúnでは機能しません。

書いてるので同じ状況と推測

対策

serialEvent()をプログラム上で呼びだす。

プログラム

#include <Arduino.h>
#include <Wire.h>

String inputString = "";         // a String to hold incoming data
String Set_data[10];

int i=0;

void setup() {
  Serial.begin(115200);
  inputString.reserve(200);
}

void loop() {
serialEvent();      
}

void serialEvent() {
  while (Serial.available()) {

    char inChar = (char)Serial.read();

    if (inChar == ',') {
      Set_data[i]=inputString;
      inputString="";
     // Serial.println(Set_data[i]);
      ++i;     
    }else if(inChar == '\n') {
      Set_data[i]=inputString;
      inputString="";
      //Serial.println(Set_data[i]);
     i=0;
     for (int l=0; l <= 9; l++){ 
      Serial.println(Set_data[l]);
 }
  }else{
 inputString += inChar;    
  }
  }
}

結果

シリアルモニターでテスト

9E3DiS,8JvSXN,6UomdD,53gRvt,3e9kNj,3e9kNj,_FmyZW,XVHhUH,TkUw5i,SqkLKd

を入力したら「,」ごとに区切りSerial.println
cap010.JPG

2
1
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
2
1