1 | #define PIN 0
|
2 | #define K1 421.0
|
3 | #define K2 751.0
|
4 |
|
5 | uint32_t time_high, time_low, last_time, new_time;
|
6 | float temperature;
|
7 |
|
8 | void setup() {
|
9 | Serial.begin(12345);
|
10 | pinMode(PIN, INPUT);
|
11 | new_time = last_time = micros();
|
12 | }
|
13 |
|
14 | void loop() {
|
15 | while(digitalRead(PIN));
|
16 | new_time = micros();
|
17 | time_high = new_time - last_time;
|
18 | last_time = new_time;
|
19 | while(!digitalRead(PIN));
|
20 | new_time = micros();
|
21 | time_low = new_time - last_time;
|
22 | last_time = new_time;
|
23 | temperature = K1 - (K2 * time_high) / (float)time_low;
|
24 | Serial.print(time_low); Serial.print(" ");
|
25 | Serial.print(time_high); Serial.print(" ");
|
26 | Serial.println(temperature);
|
27 | }
|