“第二十四课--Microduino 数码管温度计/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with "{{Language|Lesson_24--Microduino_Digital_Tube_Thermometer}} {| style="width: 800px;" |- | ==目的== 本教程将教大家使用DS18B20温度传感器在Microduino上通过数...")
 
Pkj讨论 | 贡献
程序
第53行: 第53行:
  
 
==程序==
 
==程序==
<source lang="cpp">
+
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/MicroduinoDigitalThermometer
 
 
byte digit0 = 10; //十位数Microduino pin
 
byte digit1 = 11; //个位数Microduino pin
 
byte dotPin = 2; //数码管小数点对应的pin
 
 
 
byte sevenSegmentPins[] = {
 
  2,3,4,5,6,7,8}; //A,B,C,D,E,F,G  对应的Microduino pin
 
byte sevenSegment[10][7] =
 
{
 
  //a b c d e f g
 
  {
 
    0,0,0,0,0,0,1  }
 
  ,  // = 0
 
  {
 
    1,0,0,1,1,1,1  }
 
  ,  // = 1
 
  {
 
    0,0,1,0,0,1,0  }
 
  ,  // = 2
 
  {
 
    0,0,0,0,1,1,0  }
 
  ,  // = 3
 
  {
 
    1,0,0,1,1,0,0  }
 
  ,  // = 4
 
  {
 
    0,1,0,0,1,0,0  }
 
  ,  // = 5
 
  {
 
    0,1,0,0,0,0,0  }
 
  ,  // = 6
 
  {
 
    0,0,0,1,1,1,1  }
 
  ,  // = 7
 
  {
 
    0,0,0,0,0,0,0  }
 
  ,  // = 8
 
  {
 
    0,0,0,1,1,0,0  }  // = 9
 
};
 
 
 
void setup() {
 
 
 
 
 
  //初始化全部亮起
 
  pinMode(dotPin, OUTPUT); //pin 2
 
  pinMode(digit0, OUTPUT); //pin 10
 
  pinMode(digit1, OUTPUT); //pin 11
 
 
 
  for(int i=0; i<7; i++)
 
  {
 
    pinMode(sevenSegmentPins[i], OUTPUT);
 
  }
 
  digitalWrite(dotPin, HIGH);
 
  digitalWrite(digit0, HIGH);
 
  digitalWrite(digit1, HIGH);
 
 
 
}
 
 
 
//显示数字
 
void segmentWrite(byte digit)
 
{
 
  byte pin = 2;
 
  for (byte i=0; i<7; ++i)
 
  {
 
    digitalWrite(pin, sevenSegment[digit][i]);
 
    ++pin;
 
  }
 
}
 
 
 
void loop() {
 
 
 
  int n = analogRead(A0);    //读取A0口的电压值
 
  int vol = n * (5.0 / 1023.0*100);  //使用浮点数存储温度数据,温度数据由电压值换算得到
 
 
 
  //取个位数
 
  int sd=vol%10;
 
  //取十位数
 
  int td=vol/10;
 
 
 
  digitalWrite(digit0, LOW);  //熄灭十位数码管
 
  segmentWrite(sd);            //显示个位
 
  delay(10);                  //10ms 延迟
 
  digitalWrite(digit0, HIGH);  //点亮十位数码管
 
  digitalWrite(digit1, LOW);  //熄灭个位数码管
 
  segmentWrite(td);            //显示十位
 
  delay(10);                  //10ms 延迟
 
  digitalWrite(digit1, HIGH);  //点亮个位数码管
 
 
 
}
 
 
 
 
 
 
 
</source>
 
  
 
==调试==
 
==调试==

2014年3月26日 (三) 08:42的版本

Language English

目的

本教程将教大家使用DS18B20温度传感器在Microduino上通过数码管显示温度

设备

  • Microduino-Core
  • Microduino-FT232R
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • DS18B20温度传感器 一个
    • 数码管 一个
    • USB数据连接线 一根

扬声器

第二十四课-DS18B20温度传感器.jpg

常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

正确连线,面对着扁平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该传感器总是显示85℃的原因。正确接法:面对着扁平的那一面,左负右正。

原理图

第二十四课-Microduino数码管温度计原理图.jpg

引脚表

Microduino引脚 数码管引脚
D2 10(A)
D3 9(B)
D4 1(C)
D5 4(D)
D6 3(E)
D7 6(F)
D8 5(G)
9 2(DP)
D10 8(LED1)
D11 7(LED2)

程序

https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/MicroduinoDigitalThermometer

调试

步骤一:代码复制到IDE中编译

步骤二:编译不出错的话开始连接电路,如下图:

第二十四课-Microduino数码管温度计连接图.jpg

步骤三:连接好后,运行代码。

步骤四:看数码管显示,找一个比较热的东西靠近温度传感器,看看数码管变化。


结果

传感器靠近热源后,数码管显示数值会升高

视频

http://v.youku.com/v_show/id_XNjgyMzE4ODg4.html