整理最近开发的一个例程,在Proteus中用arduino UNO读取MAX6675的的数据,通过I2C通讯由PCF8574转接显示在LCD1602上
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
Arduino源程序如下:- #include <GyverMAX6675.h>
- #include <LiquidCrystal_I2C.h>
- #define SLK_PIN 5 //MAX6675时钟引脚
- #define CS_PIN 6 //MAX6675时钟引脚
- #define SO_PIN 10//温度采集芯片T4
- #define lcdAddress 0x27 //LCD IIC地址
- GyverMAX6675<SLK_PIN, SO_PIN, CS_PIN> T4; //绑定温度采集芯片T1引脚
- LiquidCrystal_I2C lcd(lcdAddress, 16, 2); //设定LCD相关参数
- void setup() {
- lcd.init(); //LCD初始化
- lcd.backlight();//打开LCD背光
- }
- void loop() {
- if (T4.readTemp()) { //判断温度T1标志是否存在
- lcd.clear(); //清空显示屏,
- lcd.setCursor(2, 0); //显示位置
- lcd.print(" Temp Val");
- lcd.setCursor(0, 1); //显示位置
- lcd.print(" Temp:" + String(T4.getTemp() - 24));
- }
- delay(1000);//间隔一秒刷新一次温度
- }
复制代码
Proteus中有原安装的arduino UNO非我图片中所展示的,而是需要搜索 ATMEG328P。如果需要我图片中所展示的,
这个链接有详细的arduino UNO文件安装教程。
www.arduino.cn/thread-94070-1-1.html
这是所有的工程源文件
工程文件.zip
(485.25 KB, 下载次数: 58)
|