Arduino, LED 제어하기

이도현·2023년 8월 9일
0

아두이노 학습

목록 보기
6/34
post-custom-banner

1. 브레드 보드(Bread baord, 빵판)

  • 납땜이 필요없는 프로토타입용 보드

    1) VCC(빨간색): Votage of Commonollecter, 5V
    2) GND(검은색): Ground, 접지, 0V
    3) 부품 연결선

2. 점퍼선

  • 브레드 보드에 부품들을 서로 연결할 때 사용

3. LED 발광 다이오드

  • 전류가 흐르면서 빛을 발하는 반도체
  • 다이오드: 전류를 한쪽 방향으로만 흐르게함
  • 과다 전류가 흐를 경우 파손되므로 LED 앞에 저항을 배치

4. 저항

  • 전기 흐름을 제한

5. LED 연결방식

  • 플로팅 현상: 스위치가 연결되지 않은 상태에서 전류가 흐르는지 안흐르는지 알 수 없는 상태
  • 이를 방지하기 위해 저항을 회로에 연결함

1) pullup 방식

  • 저항을 앞에 붙임
  • 스위치가 닫히면 모든 전력은 GND로 흐른다.

2) pulldown 방식

  • 스위치가 열린상태에선 어디로도 전류가 흐르지 않음

  1. 4개의 순차점멸
  • Arduino는 libraries폴더를 따로 생성해서 class와 h를 관리한다.
//Led.h
#pragma once

#include <Arduino.h>

class Led{
protected:
	int pin; //연결할 핀 번호

public:
	void on();
	void off();
	void setValue(int value);
	int toggle();
};
// Led.cpp
#include "Led.h"

Led::Led(int pin): pin(pin) {
// this ->pin = pin;
	pinMode(pin, OUTPUT);
}
void Led::on() {
	digitalWrite(pin, HIGH);
}
void Led::off() {
	digitalWrite(pin, LOW);
}
void Led::setValue(int value) {
	digitalWrite(pin, value);
}
int Led::toggle() {
	int v = !digitalRead(pin);
	digitalWrite(pin, v);
	return v;
}
#include "Led.h"
	Led leds[4] = { Led(3), Led(4), Led(5), Led(6) };
	int out_no = 0; // 출력 값 출력 순서 번호(0-3)
void setup() {
}
void loop() {
	for(int n = 0;n < 4;n++){ 
		if(n == out_no) {
			leds[n].on();
		} 
		else {
		leds[n].off();
		}
	}
	out_no = (++out_no) % 4;
	delay(1000);
}
profile
좋은 지식 나누어요
post-custom-banner

0개의 댓글