본문 바로가기
IoT/Arduino

#1. Arduino를 공부해보자.

by hsloth 2022. 9. 20.

이번에 프로젝트를 하면서 LoRa를 다루게 되었기 때문에 Arduino를 어느정도 공부 해둬야 할 것 같아서 글을 작성 해본다.

Heltec사의 LoRa32를 설정하는데... 세팅을 못하겠어서 처음부터 다시 공부해본다.

Arduino 초기 함수들

아두이노 IDE를 실행하게 되면 void setup()과 void loop() 함수가 선언되어 있다.

setup() 함수 : loop() 함수가 시작하기 전, 한 번만 실행되는 함수. (설정 함수라고 생각하자)

loop() 함수 : 말 그대로 loop, 계속 반복해서 실행되는 함수이다. loop함수 안의 코드가 순차적으로 계속 반복되서 실행된다. (loop문이 끝나도 loop문이 또 실행된다)


Arduino 기본 함수들

pinMode(pin, Mode) - 입출력 포트의 입력/출력 설정
    pin : 아두이노 핀 번호
    Mode : INPUT, OUTPUT, INPUT_PULLUP

digitalWrite(pin, value) - 선택한 핀에 디지털 신호출력을 내보내는 함수
                만약, 2번 핀을 pinMode(2, OUTPUT); 로 설정하고, digitalWrite(2, HIGH); 로 하면, HIGH값이 2번 핀에 출력된다.
    pin : 아두이노 핀 번호
    value : HIGH, LOW

digitalRead(pin, value) - 선택한 핀에 디지털 신호를 입력받는 함수
                2번 핀을 pinMode(2, INPUT_PULLUP); a = digitalRead(2); 로 하면, a는 2번핀의 현재 상태가 입력된다.
    pin : 아두이노 핀 번호
    value : HIGH, LOW

delay(time) - 함수를 지연 시켜주는 함수. 단위는 ms이다. (1000ms = 1s)
    time : ms단위의 시간

analogWrite(), analogRead() - digitalWrite, digitalRead와 같지만, 아날로그 신호에 대한 함수이다.

Serial.begin() - 시리얼통신의 속도를 설정

VCC와 GND, TX, RX

  • VCC : Votage Collector의 약자. 3V~5V 라고 생각하자.
  • GND : GROUND, 접지. 전압의 크기를 나타내기 위한 기준 전압. 0V 라고 생각하자.
  • TX-O : 전송을 나타냄
  • RX-I : 수산을 나타냄

풀업과 풀다운

플로팅 상태

  • HIGH도 아니고 LOW도 아닌 상태. 즉, 스위치가 열리면, 0이 출력되는게 아닌 0도 아니고 1도 아니게 되는 상태이다.
  • 이 때, 4번 핀에는 전류가 흐르는지 안 흐르는지 예측할 수 없다.

PULL-UP

  • 플로팅 상태의 값을 끌어올린다는 의미
  • 스위치가 열려 있을 때의 값은 1이 된다.

저항을 VCC 단자에 달아준다. (풀다운은 GND쪽에 저항을 단다)

PULL-DOWN

  • 플로팅 상태의 값을 끌어내린다는 의미
  • 스위치가 열려 있을 때의 값은 0이 된다.

아두이노에서의 풀업

  • 아두이노의 각 핀에는 내부 풀업 저항이 달려있기 때문에 자동으로 풀업을 사용할 수 있다.
    pinMode(pin, INPUT_PULLUP);

출처:https://kocoafab.cc/tutorial/view/526