我製作了一個光傳感器,所以當它在外面黑暗時會打開燈。 所以我連接了現在的光敏傳感器和一個按鈕來校準。 我想知道你是否有任何提示如何優化這個巨大的代碼... 我敢肯定,有什麼地方,因爲我是新的Arduino。優化Arduino此代碼
#include <LiquidCrystal.h>
const int RED_Pin = 9;
const int GREEN_Pin = 10;
const int BLUE_Pin = 11;
const int PHOTO_sense = 0;
const int Button = 12;
int RoomLight;
int Sensor;
LiquidCrystal lcd(7,6,5,4,3,2);
void setup()
{
lcd.begin(16,2);
lcd.clear();
pinMode(RED_Pin,OUTPUT);
pinMode(GREEN_Pin,OUTPUT);
pinMode(BLUE_Pin,OUTPUT);
pinMode(Button,INPUT);
Serial.begin(9600);
sync();
Serial.print(Button);
}
void loop(){
Sensor = analogRead(PHOTO_sense);
Sensor = map(Sensor,0,1023,0,255);
Sensor = constrain(Sensor,0,255);
if(Sensor < RoomLight-5){
digitalWrite(RED_Pin,LOW);
digitalWrite(GREEN_Pin,HIGH);
}else{
digitalWrite(GREEN_Pin,LOW);
digitalWrite(RED_Pin,HIGH);
}
delay(500);
if(digitalRead(Button)==0){ //Buton Is Pressed so We Need to Sync
delay(2000);
if(digitalRead(Button) == 0){
sync();
}
delay(2500);
}
}
int sync(){
lcd.clear();
lcd.print("Calibriting");
int compre [4];
int Sum=0;
for (int Loop = 4;Loop>0;Loop--){
lcd.print(".");
delay(500);
digitalWrite(BLUE_Pin,HIGH);
compre[Loop] = analogRead(PHOTO_sense);
delay(500);
digitalWrite(BLUE_Pin,LOW);
Sum=Sum+compre[Loop];
}
RoomLight = Sum/4;
RoomLight = map(RoomLight,0,1023,0,255);
RoomLight = constrain(RoomLight,0,255);
lcd.clear();
lcd.print("done Calibration");
delay(2500);
return 0;
}
任何運氣這麼遠? – studioj 2014-09-11 16:58:16