#define PIN 0 #define K1 421.0 #define K2 751.0 uint32_t time_high, time_low, last_time, new_time; float temperature; void setup() { Serial.begin(12345); pinMode(PIN, INPUT); new_time = last_time = micros(); } void loop() { while(digitalRead(PIN)); new_time = micros(); time_high = new_time - last_time; last_time = new_time; while(!digitalRead(PIN)); new_time = micros(); time_low = new_time - last_time; last_time = new_time; temperature = K1 - (K2 * time_high) / (float)time_low; Serial.print(time_low); Serial.print(" "); Serial.print(time_high); Serial.print(" "); Serial.println(temperature); }