前提
エクセルのdata streamerを利用してarduinoにシリアル値が送られて
来て,文字データを取得して,エクセルの入力へ文字を出力する所までは
確認できました。
その文字データを利用して3つのLEDをanalogWriteで
光らせたいのです。
例としてエクセルのdata streamerの出力
CH1 5 CH2 90 CH3 250 をそれぞれ入力すると
送られて来たシリアル値は,以下のように配列に入ります。
最後は\nが送られるようです。
dat[0]='5' dat[1]=',' dat[2]='9' dat[3]='0'
dat[4]=',' dat[5]='2' dat[6]='5' dat[7]='0'
dat[8]=',' dat[9]=',' dat[10]=',' dat[11]=','
dat[12]=',' dat[13]=',' dat[14]=',' dat[15]=','
dat[16]='\n'
実現したいこと
カンマで区切られて送られてきた文字を
整数に変換して配列に入れたいのですが
やり方が分からないので教えて頂きたい
です。
d[0]=5 d[1]=90 d[2]=250
analogWrite( 9,d[0]);
analogWrite(10,d[1]);
analogWrite(11,d[2]);
該当のソースコード
Arduino
1ソースコード 2```// ----------------------------------------- 3// EXCEL Arduino SERIAL 4// ----------------------------------------- 5const int Max=60; 6char data[Max]; 7char num=0; 8int dataIn=0; 9 10void setup(){ 11 Serial.begin(9600); 12 pinMode(9,OUTPUT); 13 pinMode(10,OUTPUT); 14 pinMode(11,OUTPUT); 15} 16 17void loop(){ 18 if(Serial.available()>0){ 19 dataIn = Serial.read(); 20 data[num] = dataIn; 21 num++; 22 if(dataIn == 10){ // 10 == "\n" 23 for(int i=0; i<=num-1; i++){ 24 Serial.print(data[i]); 25 } 26 num = 0; 27 dataIn = 0; 28 for(int i=0; i<=Max-1; i++){ 29 data[i] = 0; 30 } 31 } 32 } 33} 34 35 36