Sinbum's blog
  • 인셉션 개발자
    • History
    • Editorial Board
    • 세미나
      • MS_빅데이터_분석_교육
      • Databricks_Musinsa_사례분석
      • Databricks_AMOREPACIFIC_사례분석
    • 개발자 꿀팁
  • 리눅스
    • 리눅스 기초
      • 기본명령어
      • 프록시서버
      • 온프레미스
      • systemd
      • 우분투 앱
      • vi 사용법
    • 도커
      • MSA 아키텍처
      • 도커 설명
      • 도커 설치
      • 도커 가이드
        • 컨테이너 만들기
        • 컨테이너 보관
        • 컨테이너 사용
        • 컨테이너 관리
        • 컨테이너 볼륨
        • 컨테이너 통신
        • 도커 연습
  • 언어
    • 자바
      • 자바(JAVA)는 무엇인가?
        • JVM 메모리
      • 자바 설치 가이드
      • 자바 언어 활용
        • 변수
        • static
        • 상수
        • 연산자
        • 제어문
        • 배열
        • CLI-자바사용
        • 클래스
        • 메소드
        • 값에의한 호출
        • GUI 프레임
        • 생성자
        • 오버로딩
        • 상속
        • 상속생성자
        • 접근제한자 와 가비지 컬렉션
        • 추상클래스 와 인터페이스
        • 다중구현
        • 예외처리
        • 컬렉션 프레임워크
        • 쓰레드
        • 네트워크
        • 다중 접속 서버 구현
      • 간단한 채팅 앱 개발하기
    • 파이썬
      • 파이썬(Python)은 무엇인가?
      • 파이썬 설치 가이드
      • 파이썬 언어 활용
        • 변수
        • 입력,출력
        • 타입선언
        • 자료구조
        • 주석처리
        • 문자열
        • 리스트
        • 반복문
        • 연산자
        • 조건문
        • 정규표현식
          • re 모듈
          • 메타문자1
          • 메타문자2
          • 그루핑
          • 전방탐색
          • 문자열 바꾸기
          • Greedy 와 Non-Greedy
      • 마치며...
  • 형상관리,CI/CD
    • 깃허브
      • 깃허브 협업 모델
      • 깃허브 설치 와 ssl
      • 깃허브를 잘쓰는 팁 모음
  • BigData
    • BigData 개념
      • OLTP,OLAP
      • ELT,ETL
      • DW
      • ObjectStorage
      • LambdaArc
      • OGG
    • Kafka
      • 환경설정 및 소스코드 다운로드
      • 아파치 카프카는?
        • 카프카의 시작
        • 카프카 특성
        • 빅데이터 아키텍처
      • 카프카 기초 개념
    • BuildApplications
      • Airflow
      • Grafana
    • PowerBi
      • DAX
        • REMOVEFILTERS
        • DAX_문법
        • DAX_함수
    • Azure
      • SynapseAnalytics
  • IOT
    • 아두이노
      • 설치 및 기초
      • 센서의 종류
      • led 출력하기
      • 시리얼 통신
      • 무선 통신
  • About
    • SINBUM
    • INTEREST
    • PROJECTS
      • 업무 프로젝트
      • 개인 프로젝트
        • 티스토리API를 사용한 블로그 앱
        • 노션 API와 블로그 연동 자동화 하기
        • 로지텍 마우스 수리
    • CONTACT
Powered by GitBook
On this page
  • LED 깜박임 디지털 출력
  • 점점 밝아지고 점점 어두워지는 led 출력
  • 여러개의 led전구를 fadeOn과 fadeOff의 형식으로 출력하기
  • RGB LED 제어하기
  1. IOT
  2. 아두이노

led 출력하기

LED 깜박임 디지털 출력

LED를 아두이노 보드에 다이렉트에 연결할 수 있는 이유는 LED에 이미 저항이 연결되어 있어서 저항 없이 회로를 구성해도 문제가 되지 않습니다.

  • LED 설명

    • LED는 다리가 긴 쪽이 (+)

    • 다리가 짧은 쪽은 (-)

  • LED 연결

    • LED 다리가 긴 쪽을 우노보드 13에 연결 합니다.

    • LED 다리가 짧은쪽을 우노보드 GND에 연결 합니다.

    • LED 다리가 짧은쪽을 우노보드 GND에 연결 합니다.

void setup() {
  // put your setup code here, to run once:
  // SETUP 함수는 보드에 전원 공급 또는 리셋 버튼을 눌렀을때 한번 실행됩니다.
  
  pinMode(13,OUTPUT); // 13번 디지털 핀을 출력으로 설정
}

void loop() {
  // put your main code here, to run repeatedly:
  // loop 함수는 전원이 켜저 있는 동안 무한 반복후 실행됩니다.

  
  digitalWrite(13,HIGH); //번 핀에 high 설정 . LED
  delay(100); // ms 단위. 대기시간지연  
  
  digitalWrite(13,LOW);
  delay(1500); // 딜레이 함수를 한번 더 적용합니다.  
}

점점 밝아지고 점점 어두워지는 led 출력

int ledPin = 9; // 9번 핀에 led 연결
void setup() {
}

void loop() {
  
   //fadeValue 변수를 선언하고 최소값에서 최대값까지 5씩 늘린다.
   for(int fadeValue = 0; fadeValue <= 255; fadeValue += 5){
   analogWrite(ledPin, fadeValue); 
   delay(30); //30ms 대기 
   };

   //fadeValue 변수를 선언하고 최소값에서 최대값까지 5씩 줄인다.
   for(int fadeValue=255;fadeValue>=0;fadeValue -= 5){
   analogWrite(ledPin, fadeValue);    
   delay(30); //30ms 대기 
  };
  
 
}

여러개의 led전구를 fadeOn과 fadeOff의 형식으로 출력하기

int led_pin[4] = {8,9,10,11};

void setup() {
  // put your setup code here, to run once:
  for (int i = 0; i<4; i++){
    pinMode(led_pin[i], OUTPUT);
  }

}

void loop() 
{
  // put your main code here, to run repeatedly:
  for (int i = 0; i<4; i++){
     for(int fadeValue = 0; fadeValue <= 255; fadeValue += 5){
           analogWrite(led_pin[i], fadeValue); 
           delay(30); //30ms 대기 
       }
       delay(50);
  }      
  
  for (int i = 3; i >= 0; i--)
  {
      for(int fadeValue=255;fadeValue>=0;fadeValue -= 5)
      {
         analogWrite(led_pin[i], fadeValue);    
         delay(30); //30ms 대기     delay(500);
      }    
      delay(50);
  }
}
  • 위 코드의 함수화 및 리팩토링.

int led_pin[4] = {8,9,10,11};

void fadeOn(int led_pin)
{
  for(int fadeValue = 0; fadeValue <= 255; fadeValue += 5){
           analogWrite(led_pin, fadeValue); 
           delay(30); //30ms 대기 
       }
}
void fadeOff(int led_pin)
{
  for(int fadeValue=255;fadeValue>=0;fadeValue -= 5)
      {
         analogWrite(led_pin, fadeValue);    
         delay(30); //30ms 대기     delay(500);
      }
}

void setup() {
  // put your setup code here, to run once:
  for (int i = 0; i<4; i++){
    pinMode(led_pin[i], OUTPUT);
  }

}


//실행부
void loop() 
{
  // put your main code here, to run repeatedly:
  for (int i = 0; i<4; i++){
     fadeOn(led_pin[i]);
     delay(50);
  }      
  
  for (int i = 3; i >= 0; i--)
  {
      fadeOff(led_pin[i]);
      delay(50);
  }
}

RGB LED 제어하기

빨간색, 초록색, 파란색 세 종류의 색을 이요해, 0~255 범위의 analogWrite 함수의 인자 값을 조절해 다양한 색을 표현 할 수있습니다.

rgb 기본 코드 설정.

int redPin = 6;
int greenPin = 5;
int bluePin = 3;
int redOff,greenOff,blueOff;

void setup() {

}

void loop() {
  analogWrite (redPin, 255);
  delay(1000);
  analogWrite (redPin, redOff);
  delay(1000);
  analogWrite (greenPin, greenOff);
  delay(1000);
  analogWrite (bluePin, 255);
  delay(1000);
  analogWrite (bluePin, blueOff);  

}
int redPin = 6;
int greenPin = 5;
int bluePin = 3;
int redOff,greenOff,blueOff; // 쓰레기값으로 인식하여 0 으로 받아들임.

void setup() {

}

void loop() {
  analogWrite (redPin, 112);  
  analogWrite (bluePin, 128);
  analogWrite (redPin, 144);
  delay(1000);   
  analogWrite (redPin, 0);  
  analogWrite (bluePin, 0);
  analogWrite (redPin, 0);  
  delay(1000);  
  analogWrite (redPin, 184);  
  analogWrite (bluePin, 134);
  analogWrite (redPin, 11);
  delay(1000);   
  analogWrite (redPin, redOff);  
  analogWrite (bluePin, redOff);
  analogWrite (redPin, redOff);  
  delay(1000);

}
Previous센서의 종류Next시리얼 통신

Last updated 2 years ago

영상보기-클릭
영상보기_클릭_여러개전구
영상보기_클릭_여러개전구_fade
아두이노를 활용한 LED 출력
완성된 사진
img_1.png
img.png
img.png