利用測速碼盤與光耦成為計數器
碼盤與光耦的位置要確認可以正確收到訊號
其中
attachInterrupt 請參考 Arduino > Function > attachInterrupt。
Timer1 請參考 Arduino > Library > TimerOne。
#include <TimerOne.h>
long counter_val=0;
void setup(){
Serial.begin(115200);
attachInterrupt(0, counterL, CHANGE);
Timer1.initialize(1000000); //設置定時器中斷時間,單位微秒
Timer1.attachInterrupt(timerIsr); //打開定時器中斷
interrupts(); //打開外部中斷
}
void loop(){
}
//定時器中斷處理函數
void timerIsr(){
Serial.println(counter_val);
counter_val=0;
}
void counterL(){
counter_val += 1;
}