Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
If statement Arduino ledPin if else语句直到值_If Statement_Arduino - Fatal编程技术网

If statement Arduino ledPin if else语句直到值

If statement Arduino ledPin if else语句直到值,if-statement,arduino,If Statement,Arduino,我有一个关于我的阿杜伊诺·莱昂纳多的问题。我想用我的Arduino做的是,AnalogWrite的值越高,点亮的灯就越多。我使用了if-else语句,但我需要一个'until-value'函数。现在所有的灯都会亮起来,因为我只使用了一个值,而不是从0到50,50到100等等的值。有人能知道我需要怎么写这个吗 int analogInPin = A3; int sensorValue = 0; int ledPin1 = 3; int ledPin2 = 5; int ledPin3 = 6; i

我有一个关于我的阿杜伊诺·莱昂纳多的问题。我想用我的Arduino做的是,AnalogWrite的值越高,点亮的灯就越多。我使用了
if-else
语句,但我需要一个'until-value'函数。现在所有的灯都会亮起来,因为我只使用了一个<>值,而不是从0到50,50到100等等的值。有人能知道我需要怎么写这个吗

int analogInPin = A3;
int sensorValue = 0;
int ledPin1 = 3;
int ledPin2 = 5;
int ledPin3 = 6;
int ledPin4 = 9;
int ledPin5 = 10;

int analogPin = 3; 

void setup() {    
  Serial.begin(9600);

  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
}

void loop() {
  sensorValue = analogRead(analogInPin);

  Serial.println("sensor = ");
  Serial.println(sensorValue);

  delay(2);
  if ( sensorValue < 50 ) {
    analogWrite(ledPin1, sensorValue); 
  } else if ( sensorValue > 50 ) {
    analogWrite(ledPin2, sensorValue);
  }

  if ( sensorValue < 100 ) {
    analogWrite(ledPin2, sensorValue); 
  } 

  if ( sensorValue < 150 ) {
    analogWrite(ledPin3, sensorValue); 
  }  

}
int-analogInPin=A3;
int-sensorValue=0;
int-ledPin1=3;
int-ledPin2=5;
int-ledPin3=6;
int-ledPin4=9;
int-ledPin5=10;
int模拟引脚=3;
无效设置(){
Serial.begin(9600);
引脚模式(LED引脚1,输出);
引脚模式(LED引脚2,输出);
引脚模式(LED引脚3,输出);
引脚模式(LED引脚4,输出);
引脚模式(LED引脚5,输出);
}
void循环(){
传感器值=模拟读取(模拟输入);
Serial.println(“sensor=”);
Serial.println(传感器值);
延迟(2);
如果(传感器值<50){
模拟写入(ledPin1,传感器值);
}否则如果(传感器值>50){
模拟写入(ledPin2,传感器值);
}
如果(传感器值<100){
模拟写入(ledPin2,传感器值);
} 
如果(传感器值<150){
模拟写入(ledPin3,传感器值);
}  
}

如果值介于50和100之间,则首先您的else if和您的if(传感器值<100)将同时为两个

如果我理解,您想打开0-50范围内的led引脚1、50-100范围内的led引脚2和100-150范围内的led引脚3吗

if (sensorValue >= 0 && sensorValue <= 50 ) {
  analogWrite(ledPin1, sensorValue); 
  analogWrite(ledPin2, LOW); 
  analogWrite(ledPin3, LOW); 
}
else if (sensorValue > 50 && sensorValue <= 100) {
  analogWrite(ledPin2, sensorValue);
  analogWrite(ledPin1, LOW); 
  analogWrite(ledPin3, LOW); 
}
else if (sensorValue > 100 && sensorValue <= 150) {
  analogWrite(ledPin3, sensorValue);
  analogWrite(ledPin1, LOW); 
  analogWrite(ledPin2, LOW); 
} 

if(sensorValue>=0&&sensorValue 50&&sensorValue 100&&sensorValue如果答案对你有帮助,你应该接受答案。我看到你提出的另一个问题,你不接受任何答案,也许你是新来的。这正是我需要的,谢谢。但是现在,如果值为20,以后为0,灯仍然亮着(LedPin2)。我如何确保如果值再次为零,它们将熄灭?我更正我的答案,我将>0,而你必须将>=0设置为零!它对ledPin1有效,但ledPin2和ledPin3仍处于开启状态。我是否应该与ledPin1相同,ad=>而不是>?现在的情况是什么错误?不。在值范围内思考。现在的情况是,ledPin1将继续如果值为0到50,ledPin2将从50继续到100,依此类推。。。