Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 如何使数字输出引脚正常工作_Arduino_Raspberry Pi3_Arduino Uno_Arduino Ide - Fatal编程技术网

Arduino 如何使数字输出引脚正常工作

Arduino 如何使数字输出引脚正常工作,arduino,raspberry-pi3,arduino-uno,arduino-ide,Arduino,Raspberry Pi3,Arduino Uno,Arduino Ide,此代码与预期一样工作,但不会根据颜色改变其打开的led。总是中间的橙色LED亮起。有什么线索吗 #include <LiquidCrystal.h> #include <DHT.h> #include "DHT.h" #define DHTPIN A0 // what pin we're connected to #define DHTTYPE DHT11 // DHT 11 LiquidCrystal lcd(12, 11, 5, 4, 3, 2)

此代码与预期一样工作,但不会根据颜色改变其打开的led。总是中间的橙色LED亮起。有什么线索吗

#include <LiquidCrystal.h>
#include <DHT.h>

#include "DHT.h"

#define DHTPIN A0     // what pin we're connected to

#define DHTTYPE DHT11   // DHT 11


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

DHT dht(DHTPIN, DHTTYPE);

void setup()
{
  Serial.begin(9600);
  for (int DigitalPin = 7; DigitalPin <= 9; DigitalPin++) 
 {
  pinMode(DigitalPin, OUTPUT);
 }
  lcd.begin(16,2); //16 by 2 character display

dht.begin();
}

void loop()
{
  delay(1000);
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(t);
  lcd.print("'C");

  lcd.setCursor(0,1);
  lcd.print("Humid: ");
  lcd.print(h);
  lcd.print("%");

  if (t<=30)
  {
  digitalWrite(7, HIGH);
  digitalWrite(8, LOW);
  digitalWrite(8, LOW);
  }
  else if (t>35)
  {
  digitalWrite(8, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(9, LOW);
  }
  else if (t>=45)
  {
  digitalWrite(9, HIGH);
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  } 

}
#包括
#包括
#包括“DHT.h”
#定义DHTPIN A0//我们连接到的引脚
#定义DHT类型DHT11//DHT 11
液晶显示器(12,11,5,4,3,2);
DHT-DHT(DHTPIN,DHTTYPE);
无效设置()
{
Serial.begin(9600);
对于(int-DigitalPin=7;DigitalPin=45)
{
数字写入(9,高);
数字写入(7,低);
数字写入(8,低);
} 
}

从我一直阅读和查找的内容来看,它似乎应该起作用,但事实并非如此。在此方面的任何帮助都将不胜感激。我把温度传感器放在我的raspberry pi外壳内,以确保它不会变得太热。

我认为你的错误在第二次测试中

else if (t>35)
你必须换成

else if (t>35 && t < 45)
else if(t>35&&t<45)
如果没有此修正,温度为50,指示灯将为橙色而不是红色


但是按照程序内部的逻辑,您忘记了30到35之间的测试,或者出现错误并将30更改为35或35更改为30

  if (t<=30)
  {
    digitalWrite(7, HIGH);
    digitalWrite(8, LOW);
    digitalWrite(9, LOW);
  }
  else if (t>=45)
  {
    digitalWrite(9, HIGH);
    digitalWrite(7, LOW);
    digitalWrite(8, LOW);
  }
  else
  {
    digitalWrite(8, HIGH);
    digitalWrite(7, LOW);
    digitalWrite(9, LOW);
  }
if(t=45)
{
数字写入(9,高);
数字写入(7,低);
数字写入(8,低);
}
其他的
{
数字写入(8,高);
数字写入(7,低);
数字写入(9,低);
}
希望有帮助