lonelyman 发表于 2016-2-27 12:40:12

求助,温度传感器问题

    刚刚制作了一个DS18B20的温度传感报警器,将测得温度通过1602lcd显示,在温度大于30摄氏度时蜂鸣器报警,但实际操作中并不会报警,请大家帮忙看看,问题到底出在哪里,谢谢大家。#include <LiquidCrystal.h>

#include <OneWire.h>
#include <SPI.h>//这里我使用了arduino.cc上的lcd与寄存器配合使用的库
#include <DallasTemperature.h>//感谢海神提供的DS18B20库

LiquidCrystal lcd(10);

int pin_tem=7;
int i;
OneWire onewire(pin_tem);
DallasTemperature sensors(&onewire);
int pin=2;
void setup() {
lcd.begin(16,2);
lcd.setCursor(0,0);
sensors.begin();//初始化设置
}
void loop() {

lcd.setCursor(0,0);
sensors.requestTemperatures();//温度请求
lcd.print("T=");
lcd.setCursor(2,0);
lcd.print(sensors.getTempCByIndex(0));//输出温度
if(sensors.getTempCByIndex(0)>30){
for(i;i<100;i++){

digitalWrite(pin,HIGH);

}
}
else{

digitalWrite(pin,LOW);

}
}

18353626527 发表于 2016-2-27 13:00:15

for循环是干嘛用的。。。

lonelyman 发表于 2016-2-28 09:14:59

设置蜂鸣器的频率

林定祥 发表于 2016-2-29 10:11:26

lonelyman 发表于 2016-2-28 09:14 static/image/common/back.gif
设置蜂鸣器的频率

for(i=0;i<100;i++)

lovezypj 发表于 2016-3-10 14:09:48

lonelyman 发表于 2016-2-28 09:14 static/image/common/back.gif
设置蜂鸣器的频率

无源蜂鸣器?为啥不直接用tone更简单点

lonelyman 发表于 2016-3-18 19:31:23

用tone怎么控制蜂鸣器开关啊

lovezypj 发表于 2016-3-18 22:44:03

lonelyman 发表于 2016-3-18 19:31 static/image/common/back.gif
用tone怎么控制蜂鸣器开关啊

你去看看api就不会提问了 notone

lonelyman 发表于 2016-3-21 18:42:03

lovezypj 发表于 2016-3-18 22:44 static/image/common/back.gif
你去看看api就不会提问了 notone

好吧,有时间我试一下行不行,感谢你的回复

lonelyman 发表于 2016-4-23 10:42:03

那个,现在的确成功了,但是又有一个问题:为什么使用tone()可以,而使用digitalWrite和for循环配合就不行呢?

林定祥 发表于 2016-4-23 11:11:32

lonelyman 发表于 2016-4-23 10:42 static/image/common/back.gif
那个,现在的确成功了,但是又有一个问题:为什么使用tone()可以,而使用digitalWrite和for循环配合就不行 ...

for没有意义,建议删除。超30 蜂鸣器打开,低于30蜂鸣器关了。

lonelyman 发表于 2016-4-29 16:45:06

林定祥 发表于 2016-4-23 11:11 static/image/common/back.gif
for没有意义,建议删除。超30 蜂鸣器打开,低于30蜂鸣器关了。

那么我要是加一个led灯,岂不是不能用digitalWrtie()?

林定祥 发表于 2016-5-1 08:30:17

lonelyman 发表于 2016-4-29 16:45 static/image/common/back.gif
那么我要是加一个led灯,岂不是不能用digitalWrtie()?

for(i;i<100;i++){

digitalWrite(pin,HIGH);

}
意思为对digitalWrite(pin,HIGH)操作一百次!

Ansifa 发表于 2016-5-2 11:02:24

#include <LiquidCrystal.h>

#include <OneWire.h>
#include <SPI.h>//这里我使用了arduino.cc上的lcd与寄存器配合使用的库
#include <DallasTemperature.h>//感谢海神提供的DS18B20库

LiquidCrystal lcd(10);

int pin_tem = 7;
int i;
OneWire onewire(pin_tem);
DallasTemperature sensors(&onewire);
int pin = 2;
void setup()
{
        lcd.begin(16, 2);
        lcd.setCursor(0, 0);
        sensors.begin();//初始化设置
}
void loop()
{

        lcd.setCursor(0, 0);
        sensors.requestTemperatures();//温度请求
        lcd.print("T=");
        lcd.setCursor(2, 0);
        lcd.print(sensors.getTempCByIndex(0));//输出温度
        if (sensors.getTempCByIndex(0) > 30)
        {
                for (i=0; i < 100; i++)
                {
                        digitalWrite(pin, HIGH);
                        delay(10);
                        digitalWrite(pin, LOW);
                        delay(10);
                }
        }
}

zzk22510 发表于 2016-5-5 17:12:57

直接换个有源的蜂鸣器,多简单。
有源蜂鸣器:直接高电压就可以响
无源蜂鸣器:需要自己产生人可以听到的频率。相当于喇叭。
页: [1]
查看完整版本: 求助,温度传感器问题