[IoT]아두이노 제어

meek·2023년 3월 27일
0

/*elice*/

목록 보기
15/21

🐢 Serial

  • 아두이노에서 제공하는 라이브러리

🦖 라이브러리

  • 특정 기능을 수행하기 위한 클래스와 함수들을 묶어서 제공해 주는 형태

🦖 아두이노 라이브러리

  • 아두이노는 Serial 라이브러리를 기본으로 제공
  • Serial의 print, println, read 등의 함수를 사용하여 데이터를 주고 받을 수 있음

🐢 아두이노 함수와 아두이노 라이브러리

아두이노 함수아두이노 라이브러리
MCU의 기본 기능을 제공MCU의 기능, 주변 장치 제어 등의 기능을 제공
pinMode, digitalWrite 등Serial, String, SoftwareSerial 등

🐢 시리얼 통신을 위한 Serial

  • 시리얼 통신을 하기 위해서는 먼저 양쪽의 통신 속도를 맞추어야 한다.

🦖 bps

  • bit-per-second
  • 1초당 전송할 수 있는 비트의 수
  • 통신 속도를 나타내는 단위

🐢 Serial.begin(bps)

  • bps로 통신 속도 설정

🐢 Serial.println("문자열");

  • Serial.print와 같은 역할
  • 다음에 또 print가 오게 되면 자동으로 줄 바뀜이 적용되어서 출력

🐢 디지털 신호 입력방법

  1. 핀을 입력으로 사용하도록 설정
    (pinMode를 설정하지 않더라도 기본적으로 INPUT으로 간주)
    pinMode(핀번호, INPUT);
  2. 연결된 핀으로부터 디지털 신호 값을 읽어 옴
    (핀이 5V에 연결되었을 때는 1, GND에 연결되었을 때는 0을 읽음)
    digitalRead(핀번호);

🐢 아두이노 함수의 반환 값

	int digitalRead(pin);
  • digitalRead는 pin으로부터 디지털 신호 값을 읽어오는 함수
  • 읽어온 정수형의 값을 반환

🐢 변수명을 지을 때 주의할 점

  • 영문자, _, 숫자로만 구성될 수 있으며, 첫 글자는 숫자로 시작할 수 없음

  • 프로그램 예약어(if, for, int, setup 등)은 변수의 이름이 될 수 없음

  • 변수의 이름에는 공백이 들어갈 수 없음

  • 변수의 이름은 대소문자를 구분하므로 유의

  • 변수는 선언된 곳이 어디인지에 따라 유효한 공간이 결정

  • setup과 loop함수 밖의 공간에 선언된 변수는 스케치 내 어디서든 사용할 수 있음

  • loop()의 {} 내에 선언된 변수는 loop 함수 내에서만 사용할 수 있음


🐢 플로팅(floating) 현상

  • 버튼을 누르지 않은 상태는 아무 것도 연결되지 않은 상태와 동일
  • 핀에 입력되는 값은 5V(1)인지 GND(0) 인지 장담할 수 없는 값이 됨
    👉 버튼의 상태를 알 수 없는 floating 현상이 발생

🐢 플로팅 현상 해결 방법

  • 풀다운 저항
    - 플로팅 상태일 때 값을 GND로 끌어 내린다는 의미
  • 풀업 저항
    - 플로팅 상태일 때 값을 5V로 끌어 올린다는 의미
  • 아두이노는 내부적으로 풀업 저항 기능을 제공
    - 각 핀에 5V와 내부저항이 연결되어 있어 풀업 저항을 구성하지 않아도 사용가능
	// pinMode를 설정할 때 INPUT_PULLUP으로 설정
    pinMode(2, INPUT_PULLUP);
profile
hello, world!

0개의 댓글