해적왕과 함께하는 IoT 수업
송원준
회장
1.IoT?
정답! 원준이가 잘하는거요!
1. IoT
인터넷오브띵스!
IoT == HW + SW
1. IoT
오늘은 뭘 하나요?
개념 + 회로기초
+로 가서 -로 온다.
끝.
2. HW 기초
+로 공급 -로 나가기
수도꼭지 물을 사용
하수도로 흘
려버리기
+ (*V) - (GND)LED 반짝반짝 아이 이쁘다
2. HW 기초
전기, 전자, 전압, 전류 전갈 촉! ?
전기 : 엄청 큰개념, 전자, 전압, 전류 다 포함하며 전자가 이동하며 생기는 에너지 자체를 전기라 칭함
전자 : 음전하 성질을 가진 - 극성을 띈 입자, 실질적으로 전기가 흐르는것은 전자가 -에서 +로 이동하기 때문에
- 모두들 +에서 -로 가는것으로 알고 있지만 나중에 밝혀진 연구결과 -에서 +으로 가는 것으로 밝혀졌지만
이미 많은 곳에서 + -> - 로 표기 해놔서 그냥 그대로 씀
전압 V : ‘압’ 전기가 흐르는 이유는 +극의 전압이 높고 -극의 전압이 낮기 때문
전류 A : 전하의 양
저항 I : 아힝 저항, 저항하는 힘
전력 W : 전압V * 전류A = 전력 W
2. HW 기초
소비전력 계산하기
스마트폰 충전기 : 5V 2A = 10W
100시간 사용시 10W * 100 = 1000W = 1kW
1kW = 1130원
2. HW 기초
FREEVOLT?
2. HW 기초
전봇대, 송전탑?
2. HW 기초
전봇대, 송전탑?
2. HW 기초
직류 교류
전압
시간
직류
전압
시간
교류
2. HW 기초
옴의 법칙
회로에 흐르는 전류의 크기는 전압에 비례하고 저항에 반비례한다
저항의 크기를 ~옴이라고 하며 기호는' Ω '를 사용한다
ex 5V 건전지를 가지고 1Ω 저항에 연결, 옴의 법칙에 따라 I = 5/1 이므로 5A 라는 전류가 흐르게 됨.
2. HW 기초
직렬연결, 병렬연결
우리 이 정도는 알잖아? 그치?
2. SW기초
printf
1
2
3
4
5
6
printf(“yeah”);
2. SW기초
for
1
2
3
4
5
6
for(;;){
printf(“yeah”);
}
2. SW기초
if
1
2
3
4
5
6
if(1>0){
printf(“yeah”);
}
3. IoT 장비
아두이노, 라즈베리파이, AVR, ARTMERA, STM
등등
3. IoT 장비
차이?
아두이노 8비트 16MHz = 80년대 컴퓨터
라즈베리파이 32비트, 64비트
4. 아두이노
4. 아두이노
4. 아두이노
4. 아두이노
4. 아두이노
4. 아두이노
포트(PORT)
마이크로컨트롤러 하드웨어 포트를 사용하여 디지털 입출력을 구현한다.
pinMode() - 입출력 방향을 설정한다.
digtalRead(), digitalWrite() - 입출력 함수
하드웨어 시리얼 통신 (Serial,UART)
하드웨어 시리얼 함수는 마이크로컨트롤러의 내부 시리얼 하드웨어 모듈을 사용한다.
Serial 객체
begin(), print(), read(), write(), available(), serialEvent()
if (Serial), find(), findUntil(), flush(), parseFloat(), parseInt(), peek(), readBytes(), readBytesUntil()
readString(), readStringUntil(), setTimeout()
하드웨어 모듈을 사용하므로 보드에 따라 제한된다.
Arduino UNO - Serial(핀0 RX, 핀1 TX)
Arduino Mega - Serial(핀0 RX, 핀1 TX), Serial1(핀19 RX, 핀18 TX), Serial2(핀17 RX, 핀16TX), Serial3(핀15 RX,핀14 TX)
SPI
AVR SPI 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다.
MISO (Master In Slave Out) - 슬래이브(slave)에서 마스터(master)로 보내는 전송라인.
MOSI (Master Out Slave In) - 마스터(master)에서 출력장치로 전송하는 라인,
SCK (Serial Clock) - 마스터(master)에서 만들어 주는 데이터 동기 신호.
SS (Slave Select) - 각 장치를 선택할 수 있는 신호선으로 마스터에서 활성화(enable) 또는 비활성화(disable)할 수 있다. 아두이노
위의 3개의 신호는 하드웨어에 의해 동작하지만 이 칩선택 신호는 디지털 출력을 사용하여 별도로 디지털 출력을 사용하여 제어해야
다. 따라서 임의의 핀으로 설정이 가능하다.그러나 위의 3개 신호는 하드웨어와 연결되어 변경이 불가능하다.
SPI객체
4. 아두이노
SPI
AVR SPI 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다.
MISO (Master In Slave Out) - 슬래이브(slave)에서 마스터(master)로 보내는 전송라인.
MOSI (Master Out Slave In) - 마스터(master)에서 출력장치로 전송하는 라인,
SCK (Serial Clock) - 마스터(master)에서 만들어 주는 데이터 동기 신호.
SS (Slave Select) - 각 장치를 선택할 수 있는 신호선으로 마스터에서 활성화(enable) 또는 비활성화(disable)할 수 있다. 아두이노에서 위의 3개의 신호는 하드웨어에 의해 동
작하지만 이 칩선택 신호는 디지털 출력을 사용하여 별도로 디지털 출력을 사용하여 제어해야 한다. 따라서 임의의 핀으로 설정이 가능하다.그러나 위의 3개 신호는 하드웨어와
연결되어 변경이 불가능하다.
SPI객체
begin(), end() , beginTransaction(), transfer() , endTransaction(),usingInterrupt()
setBitOrder(),setClockDivider(),setDataMode()
I²C (TWI)
AVR I²C 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다.
SDA (data) - 데이터 전송 라인.
SCL (clock) - 데이터 동기신호 라인.
하드웨어 모듈을 사용하므로 각 보드에 따라 핀이 결정되어 있다.
Uno, Ethernet - A4 (SDA), A5 (SCL)
Wire 객체
begin(), beginTransmission(), endTransmission(), write(), read()
requestFrom(), available(), onReceive(), onRequest()
타이머(Timer)
시간 읽기 함수
millis(), micros()
시간 지연 함수
delay(), delayMicroseconds()
4. 아두이노
SPI
AVR SPI 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다.
MISO (Master In Slave Out) - 슬래이브(slave)에서 마스터(master)로 보내는 전송라인.
MOSI (Master Out Slave In) - 마스터(master)에서 출력장치로 전송하는 라인,
SCK (Serial Clock) - 마스터(master)에서 만들어 주는 데이터 동기 신호.
SS (Slave Select) - 각 장치를 선택할 수 있는 신호선으로 마스터에서 활성화(enable) 또는 비활성화(disable)할 수 있다. 아두이노에서 위의 3개의 신호는 하드웨어에 의해 동
작하지만 이 칩선택 신호는 디지털 출력을 사용하여 별도로 디지털 출력을 사용하여 제어해야 한다. 따라서 임의의 핀으로 설정이 가능하다.그러나 위의 3개 신호는 하드웨어와
연결되어 변경이 불가능하다.
SPI객체
begin(), end() , beginTransaction(), transfer() , endTransaction(),usingInterrupt()
setBitOrder(),setClockDivider(),setDataMode()
I²C (TWI)
AVR I²C 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다.
SDA (data) - 데이터 전송 라인.
SCL (clock) - 데이터 동기신호 라인.
하드웨어 모듈을 사용하므로 각 보드에 따라 핀이 결정되어 있다.
Uno, Ethernet - A4 (SDA), A5 (SCL)
Wire 객체
begin(), beginTransmission(), endTransmission(), write(), read()
requestFrom(), available(), onReceive(), onRequest()
타이머(Timer)
시간 읽기 함수
millis(), micros()
시간 지연 함수
delay(), delayMicroseconds()
4. 아두이노
PWM
PWM을 만들기 위해 타이머를 사용한다. 따라서 출력 핀은 해당 타이머 모듈에 의해 정해진 핀으로 제한된다.
analogWrite() - 특별한 설정없이 핀 번호 만을 가지고 자동으로 타이머를 할당한다. OCnA, OCnB핀을 사용하고, 여기서 n는 타이머 모
듈를 지정하는 숫자이고, 보통 각 타이머 마다 2개의 핀이 할당 되어있다. 마이크로컨트롤로 마다 내장 타이머의 숫자가 다르고 핀번호 역
시 다르므로 확인하여 사용하면 된다.
외장 타이머 라이브러리
마이크로컨트롤로의 디지털 하드웨어 회로에 의해 동작하는 타이머를 사용한다. 다음 함수는 아두이노 1.6.5버전에서 라이브러리에 내장
되지 않았다.
Timer 객체
Timer1 라이브러리 객체
Timer3 라이브러리 객체
ADC
AVR의 ADC 모듈 사용하고, 10비트가 내장되어 있다. ADC 모듈이 한개가 있기 때문에 여러 포트를 사용하려면 내부의 아날로그 MUX을
사용한다. 핀 번호에 의해 자동 설정된다.
함수
analogRead(), analogReference()
4. 아두이노
라이브러리들
4. 아두이노? 해보자꾸나
4. 아두이노? 해보자꾸나
4. 아두이노? 해보자꾸나
5. 아두이노? 회로 만들어보지 뭐
빵판
5. 아두이노? 회로 만들어보지 뭐
LED 3초간격 깜빡이
5. 아두이노? 회로 만들어보지 뭐
LED 2초간격 깜빡이
int REDpin = 6; 

int YELLOWpin = 5;
int GREENpin = 4;

void setup() {

  pinMode(REDpin, OUTPUT);

  pinMode(YELLOWpin, OUTPUT);
  pinMode(GREENpin, OUTPUT);
}
void loop() {

  digitalWrite(REDpin, HIGH); 

  delay(2000); 

  digitalWrite(REDpin, LOW);
  digitalWrite(YELLOWpin, HIGH);

  delay(2000); 

  digitalWrite(YELLOWpin, LOW); 

  digitalWrite(GREENpin, HIGH);

  delay(2000);
  digitalWrite(GREENpin, LOW);
}
5. 아두이노? 회로 만들어보지 뭐
LED 2초간격 깜빡이
int REDpin = 6; 

int YELLOWpin = 5;
int GREENpin = 4;

void setup() {

  pinMode(REDpin, OUTPUT);

  pinMode(YELLOWpin, OUTPUT);
  pinMode(GREENpin, OUTPUT);
}
void loop() {

  digitalWrite(REDpin, HIGH); 

  delay(2000); 

  digitalWrite(REDpin, LOW);
  digitalWrite(YELLOWpin, HIGH);

  delay(2000); 

  digitalWrite(YELLOWpin, LOW); 

  digitalWrite(GREENpin, HIGH);

  delay(2000);
  digitalWrite(GREENpin, LOW);
}
준비물
빵판
버튼
엘이디
아 저항
점퍼선
끘
디자인 템플릿 귀찮습니
다.
5. 아두이노? 회로 만들어보지 뭐
버튼 누르면 깜빡이
5. 아두이노? 회로 만들어보지 뭐
LED 2초간격 깜빡이
int LED1 = 6;                                                 LED1 이라는 이름을 디지털 6번핀으로 저장

int LED2 = 5;

int LED3 = 4;

int BUTTON = 2;                                            BUTTON 이라는 이름을 디지털 2번핀으로 저장

int STATUS = 0;                                            STATUS 라는 이름을 0번이라는 변수명에 저장.
                                                             (버튼이 눌릴때 마다 증가하는 숫자값에 따라 어떤 램프를 켤지 결정하는데 사
용)

void setup() {

  pinMode(BUTTON, INPUT);                        BUTTON을 입력(INOUT)장치로 사용

  pinMode(LED1, OUTPUT);                         LED1을 출력(OUTPUT)장치로 사용

  pinMode(LED2, OUTPUT);

  pinMode(LED3, OUTPUT);

}
void loop() {

  if (digitalRead(BUTTON) == LOW)              만약 버튼이 HIGH와 같다면( ==는 비교를 나타냄)          (버튼을 누른다면)

  {

    STATUS = STATUS + 1;                          STATUS 는 STATUS+1의 값이 되고,

    if (STATUS >= 3 )                                  만약 STATUS가 3보다 크거나 같다면

    {

      STATUS = 0;                                        STATUS는 0

    }

  }

  switch (STATUS)                                     

  {

    case 0:                                                STATUS가 0일경우

      digitalWrite(LED1, HIGH);                     LED1에 HIGH(5V)가

      digitalWrite(LED2, LOW);                      LED2에 LOW(0V)가

      digitalWrite(LED3, LOW);                     LED3에 LOW(0V)가

      break;                                               다음 명령 멈춤 

    case 1:

      digitalWrite(LED1, LOW);                       STATUS가 1일경우

      digitalWrite(LED2, HIGH);

      digitalWrite(LED3, LOW);

      break;

    case 2:

      digitalWrite(LED1, LOW);

      digitalWrite(LED2, LOW);

      digitalWrite(LED3, HIGH);

      break; 

  }

  delay(100);                                                 

}
조도센서
씨디에스
함정카드 발동!
5. 아두이노? 회로 만들어보지 뭐
아앗 눈이 너무 부셔욧! 잘생겨서 그래요. 훗.
5. 아두이노? 회로 만들어보지 뭐
void setup() {
Serial.begin(9600);
}
void loop() {
int data = analogRead(A0);
Serial.println(data);
delay(100);
}
5. 아두이노? 회로 만들어보지 뭐
눈부시면 LED를 꺼보자!

만드셈.
화장실 다녀옴 ㅂㅇ
5. 아두이노? 회로 만들어보지 뭐
스마트폰과 통신을 해보자.
Thank You
EDCAN 실세 송원준
song@wonjun.kr

원준갓의 IoT 수업

  • 1.
    해적왕과 함께하는 IoT수업 송원준 회장
  • 2.
  • 3.
  • 4.
    1. IoT 오늘은 뭘하나요? 개념 + 회로기초 +로 가서 -로 온다. 끝.
  • 5.
    2. HW 기초 +로공급 -로 나가기 수도꼭지 물을 사용 하수도로 흘 려버리기 + (*V) - (GND)LED 반짝반짝 아이 이쁘다
  • 6.
    2. HW 기초 전기,전자, 전압, 전류 전갈 촉! ? 전기 : 엄청 큰개념, 전자, 전압, 전류 다 포함하며 전자가 이동하며 생기는 에너지 자체를 전기라 칭함 전자 : 음전하 성질을 가진 - 극성을 띈 입자, 실질적으로 전기가 흐르는것은 전자가 -에서 +로 이동하기 때문에 - 모두들 +에서 -로 가는것으로 알고 있지만 나중에 밝혀진 연구결과 -에서 +으로 가는 것으로 밝혀졌지만 이미 많은 곳에서 + -> - 로 표기 해놔서 그냥 그대로 씀 전압 V : ‘압’ 전기가 흐르는 이유는 +극의 전압이 높고 -극의 전압이 낮기 때문 전류 A : 전하의 양 저항 I : 아힝 저항, 저항하는 힘 전력 W : 전압V * 전류A = 전력 W
  • 7.
    2. HW 기초 소비전력계산하기 스마트폰 충전기 : 5V 2A = 10W 100시간 사용시 10W * 100 = 1000W = 1kW 1kW = 1130원
  • 8.
  • 9.
  • 10.
  • 11.
    2. HW 기초 직류교류 전압 시간 직류 전압 시간 교류
  • 12.
    2. HW 기초 옴의법칙 회로에 흐르는 전류의 크기는 전압에 비례하고 저항에 반비례한다 저항의 크기를 ~옴이라고 하며 기호는' Ω '를 사용한다 ex 5V 건전지를 가지고 1Ω 저항에 연결, 옴의 법칙에 따라 I = 5/1 이므로 5A 라는 전류가 흐르게 됨.
  • 13.
    2. HW 기초 직렬연결,병렬연결 우리 이 정도는 알잖아? 그치?
  • 14.
  • 15.
  • 16.
  • 17.
    3. IoT 장비 아두이노,라즈베리파이, AVR, ARTMERA, STM 등등
  • 18.
    3. IoT 장비 차이? 아두이노8비트 16MHz = 80년대 컴퓨터 라즈베리파이 32비트, 64비트
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
    4. 아두이노 포트(PORT) 마이크로컨트롤러 하드웨어포트를 사용하여 디지털 입출력을 구현한다. pinMode() - 입출력 방향을 설정한다. digtalRead(), digitalWrite() - 입출력 함수 하드웨어 시리얼 통신 (Serial,UART) 하드웨어 시리얼 함수는 마이크로컨트롤러의 내부 시리얼 하드웨어 모듈을 사용한다. Serial 객체 begin(), print(), read(), write(), available(), serialEvent() if (Serial), find(), findUntil(), flush(), parseFloat(), parseInt(), peek(), readBytes(), readBytesUntil() readString(), readStringUntil(), setTimeout() 하드웨어 모듈을 사용하므로 보드에 따라 제한된다. Arduino UNO - Serial(핀0 RX, 핀1 TX) Arduino Mega - Serial(핀0 RX, 핀1 TX), Serial1(핀19 RX, 핀18 TX), Serial2(핀17 RX, 핀16TX), Serial3(핀15 RX,핀14 TX) SPI AVR SPI 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다. MISO (Master In Slave Out) - 슬래이브(slave)에서 마스터(master)로 보내는 전송라인. MOSI (Master Out Slave In) - 마스터(master)에서 출력장치로 전송하는 라인, SCK (Serial Clock) - 마스터(master)에서 만들어 주는 데이터 동기 신호. SS (Slave Select) - 각 장치를 선택할 수 있는 신호선으로 마스터에서 활성화(enable) 또는 비활성화(disable)할 수 있다. 아두이노 위의 3개의 신호는 하드웨어에 의해 동작하지만 이 칩선택 신호는 디지털 출력을 사용하여 별도로 디지털 출력을 사용하여 제어해야 다. 따라서 임의의 핀으로 설정이 가능하다.그러나 위의 3개 신호는 하드웨어와 연결되어 변경이 불가능하다. SPI객체
  • 25.
    4. 아두이노 SPI AVR SPI동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다. MISO (Master In Slave Out) - 슬래이브(slave)에서 마스터(master)로 보내는 전송라인. MOSI (Master Out Slave In) - 마스터(master)에서 출력장치로 전송하는 라인, SCK (Serial Clock) - 마스터(master)에서 만들어 주는 데이터 동기 신호. SS (Slave Select) - 각 장치를 선택할 수 있는 신호선으로 마스터에서 활성화(enable) 또는 비활성화(disable)할 수 있다. 아두이노에서 위의 3개의 신호는 하드웨어에 의해 동 작하지만 이 칩선택 신호는 디지털 출력을 사용하여 별도로 디지털 출력을 사용하여 제어해야 한다. 따라서 임의의 핀으로 설정이 가능하다.그러나 위의 3개 신호는 하드웨어와 연결되어 변경이 불가능하다. SPI객체 begin(), end() , beginTransaction(), transfer() , endTransaction(),usingInterrupt() setBitOrder(),setClockDivider(),setDataMode() I²C (TWI) AVR I²C 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다. SDA (data) - 데이터 전송 라인. SCL (clock) - 데이터 동기신호 라인. 하드웨어 모듈을 사용하므로 각 보드에 따라 핀이 결정되어 있다. Uno, Ethernet - A4 (SDA), A5 (SCL) Wire 객체 begin(), beginTransmission(), endTransmission(), write(), read() requestFrom(), available(), onReceive(), onRequest() 타이머(Timer) 시간 읽기 함수 millis(), micros() 시간 지연 함수 delay(), delayMicroseconds()
  • 26.
    4. 아두이노 SPI AVR SPI동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다. MISO (Master In Slave Out) - 슬래이브(slave)에서 마스터(master)로 보내는 전송라인. MOSI (Master Out Slave In) - 마스터(master)에서 출력장치로 전송하는 라인, SCK (Serial Clock) - 마스터(master)에서 만들어 주는 데이터 동기 신호. SS (Slave Select) - 각 장치를 선택할 수 있는 신호선으로 마스터에서 활성화(enable) 또는 비활성화(disable)할 수 있다. 아두이노에서 위의 3개의 신호는 하드웨어에 의해 동 작하지만 이 칩선택 신호는 디지털 출력을 사용하여 별도로 디지털 출력을 사용하여 제어해야 한다. 따라서 임의의 핀으로 설정이 가능하다.그러나 위의 3개 신호는 하드웨어와 연결되어 변경이 불가능하다. SPI객체 begin(), end() , beginTransaction(), transfer() , endTransaction(),usingInterrupt() setBitOrder(),setClockDivider(),setDataMode() I²C (TWI) AVR I²C 동기식 시리얼 인터페이스 하드웨어 모듈을 사용한다. SDA (data) - 데이터 전송 라인. SCL (clock) - 데이터 동기신호 라인. 하드웨어 모듈을 사용하므로 각 보드에 따라 핀이 결정되어 있다. Uno, Ethernet - A4 (SDA), A5 (SCL) Wire 객체 begin(), beginTransmission(), endTransmission(), write(), read() requestFrom(), available(), onReceive(), onRequest() 타이머(Timer) 시간 읽기 함수 millis(), micros() 시간 지연 함수 delay(), delayMicroseconds()
  • 27.
    4. 아두이노 PWM PWM을 만들기위해 타이머를 사용한다. 따라서 출력 핀은 해당 타이머 모듈에 의해 정해진 핀으로 제한된다. analogWrite() - 특별한 설정없이 핀 번호 만을 가지고 자동으로 타이머를 할당한다. OCnA, OCnB핀을 사용하고, 여기서 n는 타이머 모 듈를 지정하는 숫자이고, 보통 각 타이머 마다 2개의 핀이 할당 되어있다. 마이크로컨트롤로 마다 내장 타이머의 숫자가 다르고 핀번호 역 시 다르므로 확인하여 사용하면 된다. 외장 타이머 라이브러리 마이크로컨트롤로의 디지털 하드웨어 회로에 의해 동작하는 타이머를 사용한다. 다음 함수는 아두이노 1.6.5버전에서 라이브러리에 내장 되지 않았다. Timer 객체 Timer1 라이브러리 객체 Timer3 라이브러리 객체 ADC AVR의 ADC 모듈 사용하고, 10비트가 내장되어 있다. ADC 모듈이 한개가 있기 때문에 여러 포트를 사용하려면 내부의 아날로그 MUX을 사용한다. 핀 번호에 의해 자동 설정된다. 함수 analogRead(), analogReference()
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    5. 아두이노? 회로만들어보지 뭐 빵판
  • 33.
    5. 아두이노? 회로만들어보지 뭐 LED 3초간격 깜빡이
  • 34.
    5. 아두이노? 회로만들어보지 뭐 LED 2초간격 깜빡이 int REDpin = 6; 
 int YELLOWpin = 5; int GREENpin = 4;
 void setup() {
   pinMode(REDpin, OUTPUT);
   pinMode(YELLOWpin, OUTPUT);   pinMode(GREENpin, OUTPUT); } void loop() {
   digitalWrite(REDpin, HIGH); 
   delay(2000); 
   digitalWrite(REDpin, LOW);   digitalWrite(YELLOWpin, HIGH);
   delay(2000); 
   digitalWrite(YELLOWpin, LOW); 
   digitalWrite(GREENpin, HIGH);
   delay(2000);   digitalWrite(GREENpin, LOW); }
  • 35.
    5. 아두이노? 회로만들어보지 뭐 LED 2초간격 깜빡이 int REDpin = 6; 
 int YELLOWpin = 5; int GREENpin = 4;
 void setup() {
   pinMode(REDpin, OUTPUT);
   pinMode(YELLOWpin, OUTPUT);   pinMode(GREENpin, OUTPUT); } void loop() {
   digitalWrite(REDpin, HIGH); 
   delay(2000); 
   digitalWrite(REDpin, LOW);   digitalWrite(YELLOWpin, HIGH);
   delay(2000); 
   digitalWrite(YELLOWpin, LOW); 
   digitalWrite(GREENpin, HIGH);
   delay(2000);   digitalWrite(GREENpin, LOW); }
  • 36.
  • 37.
    5. 아두이노? 회로만들어보지 뭐 버튼 누르면 깜빡이
  • 38.
    5. 아두이노? 회로만들어보지 뭐 LED 2초간격 깜빡이 int LED1 = 6;                                                 LED1 이라는 이름을 디지털 6번핀으로 저장
 int LED2 = 5;
 int LED3 = 4;
 int BUTTON = 2;                                            BUTTON 이라는 이름을 디지털 2번핀으로 저장
 int STATUS = 0;                                            STATUS 라는 이름을 0번이라는 변수명에 저장.                                                              (버튼이 눌릴때 마다 증가하는 숫자값에 따라 어떤 램프를 켤지 결정하는데 사 용)
 void setup() {
   pinMode(BUTTON, INPUT);                        BUTTON을 입력(INOUT)장치로 사용
   pinMode(LED1, OUTPUT);                         LED1을 출력(OUTPUT)장치로 사용
   pinMode(LED2, OUTPUT);
   pinMode(LED3, OUTPUT);
 }
  • 39.
    void loop() {
  if (digitalRead(BUTTON) == LOW)              만약 버튼이 HIGH와 같다면( ==는 비교를 나타냄)          (버튼을 누른다면)
   {
     STATUS = STATUS + 1;                          STATUS 는 STATUS+1의 값이 되고,
     if (STATUS >= 3 )                                  만약 STATUS가 3보다 크거나 같다면
     {
       STATUS = 0;                                        STATUS는 0
     }
   }
   switch (STATUS)                                     
   {
     case 0:                                                STATUS가 0일경우
       digitalWrite(LED1, HIGH);                     LED1에 HIGH(5V)가
       digitalWrite(LED2, LOW);                      LED2에 LOW(0V)가
       digitalWrite(LED3, LOW);                     LED3에 LOW(0V)가
       break;                                               다음 명령 멈춤 
     case 1:
       digitalWrite(LED1, LOW);                       STATUS가 1일경우
       digitalWrite(LED2, HIGH);
       digitalWrite(LED3, LOW);
       break;
     case 2:
       digitalWrite(LED1, LOW);
       digitalWrite(LED2, LOW);
       digitalWrite(LED3, HIGH);
       break; 
   }
   delay(100);                                                 
 }
  • 40.
  • 41.
    5. 아두이노? 회로만들어보지 뭐 아앗 눈이 너무 부셔욧! 잘생겨서 그래요. 훗.
  • 42.
    5. 아두이노? 회로만들어보지 뭐 void setup() { Serial.begin(9600); } void loop() { int data = analogRead(A0); Serial.println(data); delay(100); }
  • 43.
    5. 아두이노? 회로만들어보지 뭐 눈부시면 LED를 꺼보자!
 만드셈. 화장실 다녀옴 ㅂㅇ
  • 44.
    5. 아두이노? 회로만들어보지 뭐 스마트폰과 통신을 해보자.
  • 45.
    Thank You EDCAN 실세송원준 song@wonjun.kr