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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/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
Arduino 如何在aurduino flex传感器中以45度启动照明?_Arduino_Arduino Uno_Led_Arduino Ide_Circuit - Fatal编程技术网

Arduino 如何在aurduino flex传感器中以45度启动照明?

Arduino 如何在aurduino flex传感器中以45度启动照明?,arduino,arduino-uno,led,arduino-ide,circuit,Arduino,Arduino Uno,Led,Arduino Ide,Circuit,我想让led条在flex传感器弯曲时逐渐亮起。但我希望当flex传感器为45度时,led条开始亮起。 我希望led条在45度之前关闭。 这是我在Arduino的代码 const int ledPin = 3; //pin 3 has PWM funtion const int flexPin = A0; //pin A0 to read analog input int degree; //save analog value int sensor; void setup(){ pinM

我想让led条在flex传感器弯曲时逐渐亮起。但我希望当flex传感器为45度时,led条开始亮起。 我希望led条在45度之前关闭。 这是我在Arduino的代码

const int ledPin = 3;   //pin 3 has PWM funtion
const int flexPin = A0; //pin A0 to read analog input
int degree; //save analog value
int sensor;
void setup(){

  pinMode(ledPin, OUTPUT);  //Set pin 3 as 'output'
  Serial.begin(9600);       //Begin serial communication
}
void loop(){

  sensor = analogRead(flexPin);   //Read and save analog value from potentiometer


  degree = map(sensor, 460, 850, 45, 90);


  Serial.print("analog input: ");
    Serial.print(sensor,DEC);
  Serial.print(" degrees: ");
    Serial.println(degree,DEC); 
     Serial.print(" ---------------------------------- ");
  analogWrite(ledPin, degree);          //Send PWM value to led
  delay(50);                          //Small delay

}
但这不起作用,所以我尝试了这个:

const int ledPin = 3;   //pin 3 has PWM funtion
const int flexPin = A0; //pin A0 to read analog input
int degree; //save analog value
int sensor;
void setup(){

  pinMode(ledPin, OUTPUT);  //Set pin 3 as 'output'
  Serial.begin(9600);       //Begin serial communication
}
void loop(){

  sensor = analogRead(flexPin);   //Read and save analog value from potentiometer

  if(degree<45){

    (sensor = 0);
  }

  degree = map(sensor, 460, 850, 0, 90);


  Serial.print("analog input: ");
    Serial.print(sensor,DEC);
  Serial.print(" degrees: ");
    Serial.println(degree,DEC); 
     Serial.print(" ---------------------------------- ");
  analogWrite(ledPin, degree);          //Send PWM value to led
  delay(50);                          //Small delay

}
const int ledPin=3//引脚3具有PWM功能
常数int flexPin=A0//引脚A0用于读取模拟输入
智力度//保存模拟值
int传感器;
无效设置(){
引脚模式(LED引脚,输出);//将引脚3设置为“输出”
Serial.begin(9600);//开始串行通信
}
void循环(){
传感器=模拟读取(flexPin);//从电位计读取并保存模拟值

如果(度一个问题是,当map函数期望值在460到850范围内时,您将传感器设置为零。当低于45度时,将默认传感器值更改为期望范围内的最低值(460)可能会有所帮助

您还可以删除if条件,然后在程序中进行如下移动:

if (degree < 45) {
  digitalWrite(ledPin, LOW);
 }
else {
   analogWrite(ledPin, degree);
}
int freq = map(degree, 0, 90, 0, 255);