#embedded-hal-driver #temperature #thermocouple #max6675

no-std max6675-hal

MAX6675 数字热电偶转换器的嵌入式-hal 驱动程序

3 个版本 (1 个稳定版)

1.0.0 2024年5月2日
1.0.0-rc.12024年2月2日
0.4.0 2024年5月1日
0.3.1 2023年12月20日

#403嵌入式开发

每月47次 下载

MIT 许可证

17KB
110

max6675-hal

license badge docs.rs badge crates.io badge GitHub badge GitHub Actions badge

MAX6675 数字热电偶转换器的 embedded-hal 驱动程序。

用法

此示例代码将根据您使用的 HAL 设备驱动程序而有所不同。一个 arduino-hal 项目的 SPI 与一个 esp32-hal 项目的 SPI 不一样。

但是,您只需要关注两个部分

  1. 一个 CS(芯片选择)引脚作为 OutputPin
  2. 某些 SPI 表示形式不专属于 CS 引脚(比如 linux-embedded-hal!)

您的 SPI 设置应使用 MSB(最高有效位)首先,目标时钟速度至少为 4MHz,并使用 SPI 模式 1。

在两者都正确无误后,将它们传递给 Max6675::new(spi, chip_select) 构造函数。 哇!您的 MAX6675 现在得到了良好的利用。

// first, define what pins you're connecting to
let so_pin = pins.("your miso pin").into_pull_up_input();
let cs_pin = pins.("your cs pin").into_output();
let sck_pin = pins.("your sck/clock pin").into_output();

// you may need a mosi pin for your device's SPI, though the max6675 doesn't use one.
// if so, just pick some pin that you're not using ☺️
let dummy_mosi = pins.("some pin you're not using").into_output();

let (spi, cs) = device-hal::spi::Spi::new(
    sck_pin, dummy_mosi, so_pin, cs_pin,
    device-hal::spi::Settings {
        // pick some settings that roughly align like so:
        data_order: MostSignificantFirst,
        clock: 4MhzClockSpeed,
        mode: embedded_hal::spi::MODE_1,
    }
);
let mut max = Max6675::new(spi, cs)?; // your spi and chip select here

let temp = max.read_celsius()? // ayo! we got the temperature

贡献

欢迎对此项目做出贡献!由于它相当小,请随时提交 PR。您也可以提出一个问题 - 我可能会很快处理它!

帮助

如果您遇到任何问题,请不要犹豫,提出一个问题!

如果您能,请提交一个 hw-probe 报告,以及您可能有的任何错误消息或有用的日志!

依赖项

~1.5MB
~37K SLoC