Я упаковал датчик света, поэтому, когда на улице темно, он включит свет. Итак, я подключил на данный момент фоточувствительный датчик и кнопку для калибровки. Я хотел знать, есть ли у вас какие-либо советы Как оптимизировать этот гигантский код ... Я уверен, что есть где, потому что я новичок в 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