센서값에 따른 Led 밝기 제어 map()함수 사용


센서값을 아날로그 입력핀으로 읽어(값은 0~1023사이의 값으로 읽는다) 
LED출력한다.(출력은 PWM으로 0~255 사이의 값으로 출력)


소스 스케치
----------------------------------------------------------------------------
int ledPin = 9;    //led핀은 9번
int sensorPin = A0;   //센서 입력은 A0핀
int val = 0;   //센서에서 읽은 값을 저장 변수
void setup(){
  pinMode(ledPin, OUTPUT);
}
void loop(){
  val = analogRead(sensorPin);    //센서에서 읽은 값을 저장
  val = map(val, 0, 1023, 0, 255);  //센서에서 읽은  0~1023을 0~255사이의 값으로 변환
  analogWrite(ledPin, val);       //PWM모드로 led에 출력
}
------------------------------------------------------------------------------

작동 영상

외부 빛의 양에 따른 LED깜박이기 + 부저


광센서(밝기에 따라 저항값이 변한다. 밝아지면 저항값이 작아진다)를 이용하여
외부의 빛의 정보를 A0핀에 연결하여 (0~1023사이의 값으로 받는다.)
LED 깜박이는 시간간격, 부저의 소리내는 간격을 조정하여 출력한다.

스케치 소스
-----------------------------------------------------------------------
/*외부 빛의 양에 따라 LED 깜박이고 부저 울리기*/
int sensorPin = A0;    //센서 입력핀
int ledPin = 12;
int sensorval = 0;      //센서값이 저장될 변수
void setup(){
  pinMode(ledPin, OUTPUT);
}

void loop(){
  sensorval = analogRead(sensorPin);
 
  digitalWrite(ledPin, HIGH);
  tone(9,100,(1024-sensorst)/2); 
  delay((1024-sensorst));        // 주변이 밝을수록 빠르게 깜박이도록 시간 계산
 
  digitalWrite(ledPin, LOW);
  delay((1024-sensorst));
 }
------------------------------------------------------------------------

작동영상

풀다운 스위치입력 LED 켜기


2번핀을 입력설정
5~9번핀으 출력
버튼입력시 순차적으로 LED켜고 끄기

스케치 소스
-----------------------------------------------
int ledPin[] = {5,6,7,8,9};
int buttonPin = 2;
void setup(){
  for(int i = 0; i<5; i++){
    pinMode(ledPin[i],OUTPUT);
  }
  pinMode(buttonPin, INPUT);
}
void loop(){
  int bPstate = digitalRead(buttonPin);
  if(bPstate==LOW){
    for(int i = 0 ; i <5 ; i++){
      digitalWrite(ledPin[i], LOW);
      delay(100);
    }
  }
  else{
    for(int i = 0 ; i <5 ; i++){
      digitalWrite(ledPin[i], HIGH);
      delay(100);
    }
  }
}
---------------------------------------------

작동영상

+ Recent posts