[Arduino]基础练习三、温度传感器

326 阅读2分钟

练习内容

通过接收温度传感器传递的温度值,判断是否达到设定的报警温度,使蜂鸣器的警报响声。

接线图

image.png 可以发现这个这接线图和练习二的很像,其实就是把模拟电位器换成了温度传感器, 然后接收温度传感器里面传来的数值。

电路图

image.png

练习代码

我这里为了方便测试,设置了一个比较低的温度,手握传感器的时候就会升至34度以上发出蜂鸣声。

// 蜂鸣器连接的引脚
const int VOICE_PIN = 9;
// 出发蜂鸣器发出声音的温度值
const float MAX_TEMP = 34.0;
void setup()
{
  // 初始化串口通信频率
  Serial.begin(9600);
}

void loop()
{
  float reading = analogRead(A0);
  // 读取的引脚值转换成温度
  float temperature = reading * (5.0 / 1023.0) * 100;
  // 打印读取A0引脚的值
  Serial.println(temperature);

  // 当温度小于设定的最大温度,蜂鸣器发出声音
  if (temperature >= MAX_TEMP)
  {
    for (int i = 200; i <= 800; i++)
    {
      /* 循环的方式增加频率赫兹 200-800 */
      pinMode(VOICE_PIN, OUTPUT);
      tone(VOICE_PIN, i);
      delay(5);
    }
    for (int i = 800; i >= 200; i--)
    {
      /* 循环的方式降低频率赫兹 */
      pinMode(VOICE_PIN, OUTPUT);
      tone(VOICE_PIN, i);
      delay(10);
    }
  }
  else
  {
    // 停止对应引脚的声音输出
    noTone(VOICE_PIN);
  }
}

练习到这发生了有趣的一件事情。因为电脑一直开着,中午后楼上的温度升高触发蜂鸣器,吵醒了正在楼下睡午觉的我们。感叹这东西真有意思, 哈哈。

扩展练习

将温度传感器读取的温度,输出到1602液晶显示屏上

接线图

image.png

电路图

image.png

第一次用1602的液晶显示屏,最开始接线完成后看不清显示屏上的文字,需要斜着看才能看清楚。查了资料后说是有可能电压过载,加了一个10K的电阻在前面解决了。

1602液晶显示屏又是另外一个比较复杂的元件,还得找时间另外再练习一下中文输出。