2007年06月07日
Arduino
arduinoに数値を送る
Flash8のaction script2では、バイナリが使えず、文字しか送れないので、
数字を送れるか試してみた。
int sum;
const int KETAMAX = 4; // 桁数
int keta;
void setup() {
Serial.begin(9600);
iniKeta();
}
void loop () {
// データが来た
if(Serial.available()>0){
int val = Serial.read();
if(val == 's'){ // データのはじめ
iniKeta();
}else{ // 数値データ
val -= 48; // アスキー→数値に変換
for(int i=1; i < keta; i++){ // 桁数を計算
val *= 10;
}
sum += val;
keta --;
if(keta == 0){ // すべてのデータ受信終了
Serial.println(sum);
}
}
}
}
// 最初の桁に戻る
void iniKeta(){
keta = KETAMAX;
sum = 0;
}
動作はシリアルで確認、
sの文字の後、4桁の数字を返すのを確認