我的Arduino自动发光二极管';夜灯';它不起作用了

我的Arduino自动发光二极管';夜灯';它不起作用了,arduino,processing,led,arduino-ide,arduino-uno,Arduino,Processing,Led,Arduino Ide,Arduino Uno,我有一个Arduino Uno,我正试图编写一个程序,如果光刻胶检测到少量光线,LED就会亮起。这是我的密码 int led = 2; int phores = A4; int val = 0; void setup() { pinMode(led, OUTPUT); pinMode(phores, INPUT); Serial.begin(9600); } void loop() { val = analogRead(phores); if(val > 256) { d

我有一个Arduino Uno,我正试图编写一个程序,如果光刻胶检测到少量光线,LED就会亮起。这是我的密码

int led = 2;
int phores = A4;
int val = 0;

void setup() {
 pinMode(led, OUTPUT);
 pinMode(phores, INPUT);
 Serial.begin(9600);
}

void loop() {
 val = analogRead(phores);
 if(val > 256) {
  digitalWrite(led, HIGH);
}

if(val < 256) {

digitalWrite(led, LOW);
}
Serial.println(val);
}
int led=2;
int-phores=A4;
int-val=0;
无效设置(){
引脚模式(led,输出);
pinMode(信号量,输入);
Serial.begin(9600);
}
void循环(){
val=模拟读数(单位);
如果(val>256){
数字写入(led,高电平);
}
if(val<256){
数字写入(led,低电平);
}
序列号println(val);
}

您可能需要将第二个if块放入循环函数中。我很确定这会解决问题。添加一个小的延迟可能也是一个好主意,以避免在每次迭代时进行此检查。

我有一些在开始学习时使用的旧代码,这应该可以工作,而且非常简单

int sensePin = 0;
int ledPin = 9;

void setup(){
  analogReference(DEFAULT);
  pinMode(ledPin, OUTPUT);

}

void loop(){
  int val = analogRead(sensePin);
 if (val < 100) digitalWrite(ledPin, HIGH);
 else digitalWrite(ledPin, LOW);
}
int sensePin=0;
int-ledPin=9;
无效设置(){
模拟参考(默认);
引脚模式(LED引脚,输出);
}
void循环(){
int val=模拟读数(sensePin);
如果(val<100)数字写入(ledPin,高);
else数字写入(ledPin,低电平);
}

我没有将第二条if语句放在if块中,添加延迟也没有帮助。我是指void循环块,而不是if块。&。。。发生了什么?它崩溃了,还是没有给出预期的答案?您期望发生什么?发生了什么?println的输出是什么?数值读数是否正确?