Arduino: シリアル通信で LED 制御 & 割り込み処理
Mac から Arduino シリアル通信で LED のオンオフと、それに同期したエッジの割り込み検出を試してみた。
// --------------------------------- // LED control // --------------------------------- int ledpin = 13; int state = LOW; volatile int linebreak = 0; int linebreak_max = 40; int delaytime = 1000; void setup(){ Serial.begin(9600); pinMode(ledpin, OUTPUT); attachInterrupt(0, edgedetect, RISING); // Digital Input 3PIN } void loop(){ if(Serial.available()>0){ switch (Serial.read()){ case '1': state = HIGH; digitalWrite(ledpin, state); break; case '0': state = LOW; digitalWrite(ledpin, state); break; default: break; } } switch (state){ case 0: Serial.print('.'); linebreak += 1; break; case 1: Serial.print('o'); linebreak += 1; break; default: break; } delay(delaytime); if(linebreak > linebreak_max){ Serial.println(""); linebreak = 0; } } void edgedetect(){ Serial.print("e"); linebreak += 1; }