Arduino 如何在aurduino flex传感器中以45度启动照明?
我想让led条在flex传感器弯曲时逐渐亮起。但我希望当flex传感器为45度时,led条开始亮起。 我希望led条在45度之前关闭。 这是我在Arduino的代码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
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);