aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-12-20 17:25:23 +0000
committerGitHub <[email protected]>2022-12-20 17:25:23 +0000
commit46fd82d18404706be7b1de5203d4c0e7de3ae2cc (patch)
tree4a02cbc43c538ce1ae1b6fb07aa0c90dbac75093 /examples
parente221d91330fcb4a5d67936703be8f74c664028eb (diff)
parent5ae91ed3b64a086b15a949477a5762a3876307c5 (diff)
Merge #1119
1119: add convert_to_celsius function in the adc module r=lulf a=overheat modify RP2040 adc example to get inside biased bipolar diode voltage, then convert this temperature sensor data into Celsius degree, according to chapter 4.9.5. Temperature Sensor in RP2040 datasheet. Co-authored-by: Aaron Tsui <[email protected]>
Diffstat (limited to 'examples')
-rw-r--r--examples/rp/src/bin/adc.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/examples/rp/src/bin/adc.rs b/examples/rp/src/bin/adc.rs
index 2a9e93732..4202fd394 100644
--- a/examples/rp/src/bin/adc.rs
+++ b/examples/rp/src/bin/adc.rs
@@ -27,7 +27,12 @@ async fn main(_spawner: Spawner) {
27 let level = adc.read(&mut p28).await; 27 let level = adc.read(&mut p28).await;
28 info!("Pin 28 ADC: {}", level); 28 info!("Pin 28 ADC: {}", level);
29 let temp = adc.read_temperature().await; 29 let temp = adc.read_temperature().await;
30 info!("Temp: {}", temp); 30 info!("Temp: {} degrees", convert_to_celsius(temp));
31 Timer::after(Duration::from_secs(1)).await; 31 Timer::after(Duration::from_secs(1)).await;
32 } 32 }
33} 33}
34
35fn convert_to_celsius(raw_temp: u16) -> f32 {
36 // According to chapter 4.9.5. Temperature Sensor in RP2040 datasheet
37 27.0 - (raw_temp as f32 * 3.3 / 4096.0 - 0.706) / 0.001721 as f32
38}