이번에 프로젝트를 하면서 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);