본문 바로가기

Embedded/Arduino

예제

int bluePin = 8;
int redPin = 9;

void setup()
{
  pinMode(bluePin , OUTPUT);
  pinMode(redPin , OUTPUT);
}

void loop()
{
  // 1초동안 LED 켜기 	
  digitalWrite(bluePin , HIGH);
  delay(1000); 
  // 1초동안 LED 끄기
  digitalWrite(bluePin , LOW);
  delay(1000);   
  // 1초동안 LED 켜기 	
  digitalWrite(redPin , HIGH);
  delay(1000); 
  // 1초동안 LED 끄기
  digitalWrite(redPin , LOW);
  delay(1000); 
  
}

2개의 LED 동시에 켜고 끄기 반복

int bluePin = 8;
int redPin = 9;

void setup()
{
  pinMode(bluePin , OUTPUT);
  pinMode(redPin , OUTPUT);
}

void loop()
{
  // 1초동안 LED 켜기 	
  digitalWrite(bluePin , HIGH);
  digitalWrite(redPin , HIGH);
  delay(1000);   
  
  // 1초동안 LED 끄기
  digitalWrite(bluePin , LOW);
  digitalWrite(redPin , LOW);
  delay(1000); 
}

// C++ code
//
int pinArr[8] = {12,11,10,9,7,6,5,4};

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

void loop()
{
  for(int i=0; i<8 ; i++){
  	digitalWrite(pinArr[i], HIGH);
  	delay(300); 
  	digitalWrite(pinArr[i], LOW);
  	delay(300); 
  }
}

// C++ code
//
int redPin = 13;
int bluePin = 12;
int greenPin = 11;
int delayTime = 300;

void setup()
{
  pinMode(redPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop()
{
  // red only
  digitalWrite(redPin, HIGH);
  delay(delayTime); 
  digitalWrite(redPin, LOW);
  delay(delayTime); 
  
  // blue only
  digitalWrite(bluePin, HIGH);
  delay(delayTime); 
  digitalWrite(bluePin, LOW);
  delay(delayTime); 
  
   // green only
  digitalWrite(greenPin, HIGH);
  delay(delayTime); 
  digitalWrite(greenPin, LOW);
  delay(delayTime);
  
  // red+green = yellow
  digitalWrite(redPin, HIGH);
  digitalWrite(greenPin, HIGH);
  delay(delayTime); 
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, LOW);
  delay(delayTime);
  
  // red+blue = magenta
  digitalWrite(redPin, HIGH);
  digitalWrite(bluePin, HIGH);
  delay(delayTime); 
  digitalWrite(redPin, LOW);
  digitalWrite(bluePin, LOW);
  delay(delayTime);
  
  // green + blue = cyan
  digitalWrite(greenPin, HIGH);
  digitalWrite(bluePin, HIGH);
  delay(delayTime); 
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, LOW);
  delay(delayTime);
  
  // red+ blue+ green = white
  digitalWrite(redPin, HIGH);
  digitalWrite(greenPin, HIGH);
  digitalWrite(bluePin, HIGH);
  delay(delayTime); 
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, LOW);
  delay(delayTime);

  
}

 

3개 LED 밝기비교

void setup()
{
  pinMode(11, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
}

void loop()
{
  analogWrite(11, 255);
  analogWrite(9, 128);
  analogWrite(6, 32);
}

 

 

3개 LED 동시에 밝아졌다가 어두워짐

int redPin1 = 11;
int redPin2 = 9;
int redPin3 = 6;

void setup()
{
  pinMode(redPin1 , OUTPUT);
  pinMode(redPin2 , OUTPUT);
  pinMode(redPin3 , OUTPUT);
}
void loop()
{
  for(int i=0; i<=255;i+=5){
     analogWrite(redPin1, i);
    analogWrite(redPin2, i);
    analogWrite(redPin3, i);
     delay(30);
  }
  for(int i=255; i>=0;i-=5){
     analogWrite(redPin1, i);
    analogWrite(redPin2, i);
    analogWrite(redPin3, i);
     delay(30);
  }
  delay(100); 
}

 

 

3개 LED 연속 FADE

int redPin1 = 11;
int redPin2 = 9;
int redPin3 = 6;

void setup()
{
  pinMode(redPin1 , OUTPUT);
  pinMode(redPin2 , OUTPUT);
  pinMode(redPin3 , OUTPUT);
}
void loop()
{  
  // RED LED1 FADE
  for(int i=0; i<=255;i+=5){
     analogWrite(redPin1, i);
     delay(30);
  }
  for(int i=255; i>=0;i-=5){
     analogWrite(redPin1, i);
     delay(30);
  }
  delay(100);
  // RED LED2 FADE
  for(int i=0; i<=255;i+=5){
     analogWrite(redPin2, i);
     delay(30);
  }
  for(int i=255; i>=0;i-=5){
     analogWrite(redPin2, i);
     delay(30);
  }
  delay(100);
  // RED LED3 FADE
  for(int i=0; i<=255;i+=5){
     analogWrite(redPin3, i);
     delay(30);
  }
  for(int i=255; i>=0;i-=5){
     analogWrite(redPin3, i);
     delay(30);
  }
  delay(100);
}

 

3개  LED 번갈아 FADE 후 전체 LED FADE 

int ledArr[3] = {11, 9, 6};
int ledArrLength = sizeof(ledArr) / sizeof(int);

void setup()
{
  for(int i=0; i<ledArrLength;i++)
  	pinMode(ledArr[i] , OUTPUT);
}
void loop()
{ 
  for(int i=0; i<ledArrLength; i++){
    fadeInOut(ledArr[i]);
    delay(100);
  }
  
  delay(300);
  allFade(ledArr, ledArrLength);
  delay(300);
}

// fadePin FADE
void fadeInOut(int fadePin)
{
  for(int i=0; i<=255;i+=5){
     analogWrite(fadePin, i);
     delay(30);
  }
  for(int i=255; i>=0;i-=5){
     analogWrite(fadePin, i);
     delay(30);
  }
}

// 전체 핀 FADE (전체 LED 핀 개수 동적 할당)
void allFade(int *arr, int arrLength)
{
  for(int i=0; i<=255;i+=5){
    for(int j=0; j<arrLength; j++){
      analogWrite(arr[j], i);
    } 
    delay(30);
  }
  for(int i=255; i>=0;i-=5){
    for(int j=0; j<arrLength; j++){
      analogWrite(arr[j], i);
    } 
    delay(30);
  }
}

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

Arduino-2  (0) 2021.06.10
MultiTasking with Arduino  (0) 2021.06.09
02. Tinkercad 시작하기  (0) 2021.06.09
01. Arduino 설치하기  (0) 2021.06.09
초음파센서+브라킷+서보모터  (0) 2021.05.26