구름 조명 코딩 설명

int sensorPin = A2;                                        //변수선언 소리센서핀 A2
int illuminancePin = A0;                               //변수선언 조도센서핀 A0
int ledGreen = 8;                                           //변수선언 초록조명 8
int ledRed = 9;                                              //변수선언 빨간조명 9
int ledBlue = 10;                                           //변수선언 파랑조명 10
int soundSensor = 0;                                    //변수선언 소리센서 정수
int illuminance = 0;                                     //변수선언 조도센서 정수
int Count = 0;                                              //변수선언 카운트 정수
int Power = 0;                                             //변수선언 전원 정수
long randNumber;                                      //변수선언 랜덤숫자 32비트
long randNumber2;                                    //변수선언 랜덤숫자2 32비트

void setup()                                                //통신설정
{
  pinMode(sensorPin, INPUT);
  pinMode(illuminancePin, INPUT);
  Serial.begin(9600);
 
  pinMode(ledGreen, OUTPUT);
  pinMode(ledRed, OUTPUT);
  pinMode(ledBlue, OUTPUT);

}

void loop()                                                 //반복
{
  soundSensor=analogRead(sensorPin) / 4;                      //소리센서 입력값 255로 변환
  illuminance=analogRead(illuminancePin) / 4;               //조도센서 입력값 255로 변환
  Serial.println(soundSensor);
  Serial.println(illuminance);
  Serial.println(randNumber);
  Serial.println(Count);
  Serial.println(Power);
  delay(100);

  if (illuminance <= 40)                                                //조도센서 몇 이하이면 전원 OFF
  {
    Power = 0;
    illuminance = 0;
    analogWrite(ledRed, illuminance);
    analogWrite(ledGreen, illuminance);
    analogWrite(ledBlue, illuminance);
  }
  else
  {
    Power = 1;
    analogWrite(ledRed, illuminance);
    analogWrite(ledGreen, illuminance);
    analogWrite(ledBlue, illuminance);
  }
 
  if (soundSensor > 10 and illuminance > 50 and Power == 1)  
 //소리센서 값과 조도센서 값, 그리고 전원이 들어오면 색이 바뀌게
  {
    Count = +1;
    randNumber = random(0, 255);
    randNumber2 = random(0, 255);
    analogWrite(ledRed, randNumber);
    analogWrite(ledGreen, randNumber2);
    analogWrite(ledBlue, 150);
  }
}

댓글