본문 바로가기

Embedded/Arduino

Arduino-2

회로구성하기

- 저항 330Ω (옴), LED 5개연결

LED가 위에서 아래로 깜빡이기

int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};

void setup()
{
  for(int i=0; i<5; i++){
    pinMode(ledArr[i],OUTPUT);
  }
}

void loop()
{
  for(int i=0; i<5; i++){
 	blinkLed(ledArr[i]);
  }
}

void blinkLed(int pinNum)
{
  digitalWrite(pinNum, HIGH);
  delay(delayTime); 
  digitalWrite(pinNum, LOW);
  delay(delayTime); 
}

 

아래에서위로 깜빡이기

int delayTime = 500;
int ledArr[5] = {8,9,10,11,12};

void setup()
{
  for(int i=0; i<5; i++)
    pinMode(ledArr[i],OUTPUT);
}

void loop()
{
  for(int i=0; i<5; i++){
 	blinkLed(ledArr[i]);
  }
  
}

void blinkLed(int pinNum)
{
  digitalWrite(pinNum, HIGH);
  delay(delayTime); 
  digitalWrite(pinNum, LOW);
  delay(delayTime); 

}

 

버튼누르면 LED 켜지기

int flag = 0;
int ledCount=0;
int buttonPin=6;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
 
void setup()
{
  for(int i=0; i<5; i++){
    pinMode(ledArr[i],OUTPUT);
  }
  pinMode(buttonPin, INPUT);
}
 
 
void loop()
{
  int inputValue = digitalRead(buttonPin);
  if (inputValue == HIGH) {           
    if (flag == 0){                    
      flag = 1;
      if(ledCount == 6)
        ledCount = 0;
      //blinkLed(ledArr[ledCount]);
      weightedLEDOn(ledCount);
      ledCount++;
    }
  }
  else {                            
    if (flag == 1) {
      flag = 0;           
    }
  }
  delay(100);                         
}

void blinkLed(int pinNum)
{
  digitalWrite(pinNum, HIGH);
  delay(delayTime); 
  digitalWrite(pinNum, LOW);
  delay(delayTime); 
}

void weightedLEDOn(int Count){
  
  if(Count == 5){
    for(int i=0; i<5; i++){
      digitalWrite(ledArr[i],LOW);
    }
  }
  else{
    for(int i=0; i<=Count; i++){
      digitalWrite(ledArr[i],HIGH);
    }
  }
}

 

 

조도 센서사용하기

int photoPin=A0;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
 
void setup()
{
  for(int i=0; i<5; i++){
    pinMode(ledArr[i],OUTPUT);
  }
  pinMode(photoPin, INPUT);
}
 
 
void loop()
{
  int inputValue = analogRead(photoPin);
  int ledCount = inputValue / 172;
  weightedLEDOn(ledCount);

  delay(100);                         
}


void weightedLEDOn(int Count){
  
  if (Count > 5){
    Count = 5;
  }
  
  for(int i=Count; i<5; i++){
      digitalWrite(ledArr[i],LOW);
  }
  
  for(int i=0; i<Count; i++){
      digitalWrite(ledArr[i],HIGH);
  }
}

 

 

어두워지면 LED가 다 켜지는 코드 

int photoPin=A0;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
 
void setup()
{
  for(int i=0; i<5; i++){
    pinMode(ledArr[i],OUTPUT);
  }
  pinMode(photoPin, INPUT);
}
 
 
void loop()
{
  int inputValue = analogRead(photoPin);
  int ledCount = (1023-inputValue) / 172;
  weightedLEDOn(ledCount);

  delay(100);                         
}


void weightedLEDOn(int Count){
  
  if (Count > 5){
    Count = 5;
  }
  
  for(int i=Count; i<5; i++){
      digitalWrite(ledArr[i],LOW);
  }
  
  for(int i=0; i<Count; i++){
      digitalWrite(ledArr[i],HIGH);
  }
}

 

어두워지면 다켜지는 코드 - 2 (min max 적응형)

int photoPin=A0;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
int min = 512;
int max = 512;
 
void setup()
{
  for(int i=0; i<5; i++){
    pinMode(ledArr[i],OUTPUT);
  }
  pinMode(photoPin, INPUT);
  Serial.begin(9600);
}
 
 
void loop()
{
  int inputValue = analogRead(photoPin);
  min = inputValue < min ? inputValue : min;
  max = inputValue > max ? inputValue : max;
  int ledCount = inputValue * 5 / (max-min);
  Serial.print(1023-inputValue);
  Serial.print(" ");
  Serial.println(ledCount);
  weightedLEDOn(5-ledCount);

  delay(100);                         
}


void weightedLEDOn(int Count){
  
  if (Count > 5){
    Count = 5;
  }
  
  for(int i=Count; i<5; i++){
      digitalWrite(ledArr[i],LOW);
  }
  
  for(int i=0; i<Count; i++){
      digitalWrite(ledArr[i],HIGH);
  }
}

'Embedded > Arduino' 카테고리의 다른 글

LilyPad - basic  (0) 2021.06.10
RGB LED  (0) 2021.06.10
MultiTasking with Arduino  (0) 2021.06.09
예제  (0) 2021.06.09
02. Tinkercad 시작하기  (0) 2021.06.09