一,MAX6675热电偶介绍
见此链接
MAX6675
二,Arduino仿真MAX6675
Arduino的仿真配置见此链接
Arduino在Proteus上的仿真配置
Proteus上MAX6675及热电偶元件号:
在英文状态下按下‘’P“ 键,输入MAX6675,如下图:
输入TCK 找到K型热电偶
绘制好的整体电路图如下图:
三,编程过程:
1,打开arduino IDE软件
2,加载MAX6675库
(1)选择菜单栏 -> 工具 ->管理库…
(2)输入max6675,下载安装库
3,新建工程文件,包含max6675头文件,编写程序
4,生成.HEX文件
在file选择preferences中勾选编译按钮即可生成.HEX文件
具体生成的.HEX在哪个位置,可以通过以下界面进行查找:
5,在Proteus中加载.HEX文件
6,仿真
仿真效果图:
四,arduino实物图
五,实物效果图:
六,实物图整体
七,程序源码:
此次程序并没有使用官网提供的MAX6675官网库,而是直接通过定义相关引脚利用程序模拟SPI采集程序
程序源码:
#define SCK 6
#define CS 7
#define SO 5
typedef struct __MAX6675
{
int temperature;
float finallyDat;
char displaydat[4];
char flag;
}MAX6675;
MAX6675 max6675={0,0.0,0};
void MAX6675_ReadData(void)
{
char i=0;
int dat=0;
digitalWrite(CS,LOW);
digitalWrite(SCK,LOW);
for(i=0;i<16;i++)
{
digitalWrite(SCK,HIGH);
dat=dat<<1;
if(digitalRead(SO))
dat=dat|0x01;
digitalWrite(SCK,LOW);
}
digitalWrite(CS,HIGH);
max6675.temperature=dat;
max6675.temperature>>=3;//读出来的数据的D3~D14是温度值
max6675.temperature&=~(0xf<<12);
max6675.finallyDat=max6675.temperature*0.25;
}
//只运行一次,用于初始化IO口等
void setup() {
Serial.begin(9600);
pinMode(SO,INPUT_PULLUP);
pinMode(SCK,OUTPUT);
pinMode(CS,OUTPUT);
}
//死循环
void loop() {
// Reads temperature
MAX6675_ReadData();
Serial.print("Temperature: ");
Serial.print(max6675.finallyDat);
Serial.print(" C\r\n");
delay(1000);
}