كود:
volatile byte half_revolutions;
unsigned int rpm;
unsigned long timeold;
void setup()
{
pinMode(13, OUTPUT);
pinMode(2, INPUT);
Serial.begin(9600);
attachInterrupt(0, magnet_detect, RISING);
half_revolutions = 0;
rpm = 0;
timeold = 0;
}
void loop()
{
if (half_revolutions >= 60) {
rpm = 30*1000/(millis() - timeold)*half_revolutions;
timeold = millis();
half_revolutions = 0;
int S = analogRead(A0);
Serial.println(S);
}
}
void magnet_detect()
{
half_revolutions++;
}
ممكن شرك الكود باللون الاحمر
وشكرا