最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

arduino从零开始(20)数码温度计

Arduino 少儿编程 1805浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

arduino从零开始(20)数码温度计


你将学到什么

你将学到如何结合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;

  }





您必须 登录 才能发表评论!