友情提示:680元/半年,儿童学编程,就上码丁实验室。
你将学到什么
你将学到如何结合LM35温度传感器与两个七段数码管制作一个数码温度计
视频内容
若视频不清晰,1080P视频网址:
https://v.qq.com/x/page/j05585354lg.html
文字代码如下:
int DATA = 6;
//数字6号脚,连在移位寄存器的14号针脚上,通过arduino传输数据
int LATCH = 8;
//digital 8 to pin 12 on the 74HC595
int CLOCK = 10;
//digital 10 to pin 11 on the 74HC595 for clock
int number_LSB[]={252,96,218,242,102,182,190,224,254,246,238,62,156,122,158,142};
void setup() {
// put your setup code here, to run once:
pinMode(LATCH,OUTPUT);
pinMode(CLOCK,OUTPUT);
pinMode(DATA,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
display_num(readTemp(A1));
delay(1000);
}
void display_num(int num)
{
if(num<10)
{
digitalWrite(LATCH,LOW);
//准备传输数据
shiftOut(DATA,CLOCK,LSBFIRST,number_LSB[num]);
//开始传输数据
shiftOut(DATA,CLOCK,LSBFIRST,number_LSB[0]);
//开始传输数据
digitalWrite(LATCH,HIGH);//数据传输完毕
}
else if(num>10)
{
int left = num/10;
int right = num%10;
digitalWrite(LATCH,LOW);//准备传输数据
shiftOut(DATA,CLOCK,LSBFIRST,number_LSB[right]);//开始传输数据
shiftOut(DATA,CLOCK,LSBFIRST,number_LSB[left]);//开始传输数据
digitalWrite(LATCH,HIGH);
//数据传输完毕
}
}
int readTemp(int pin)
{
int temperature = 0;
//设置temperature为整型变量
long val=0;
val=analogRead(pin);
//温度传感器LM35接到模拟PIN0上;val变量为从LM35信号口读取到的数值
temperature = int((val*0.0048828125*100));
//把读取到的val转换为温度数值
//系数一:0.00488125=5/1024,0~5V对应模拟口读数
//1~1024,系数二:100=1000/10,1000是毫伏与伏的转换;
//10是每10毫伏对应一度温升。
return temperature;
}