설명
상수는 Arduino 언어에서 미리 정의된 표현식이다. 그것들은 프로그램을 읽기 쉽게 하기 위해 사용된다. 그룹으로 상수를 분류한다:
논리 수준 정하기: true 그리고 false (Boolean 상수)
아두이노 언어에서 참과 거짓을 표현하기 위해 사용되는 두 상수가 있다: true
, 그리고 false
.
false
false
둘 중에 정의하기 쉽다. false 는 0 (zero)으로 정의된다.
true
true
는 1로 정의된다고 흔히 말하지만, 맞지만, true는 더 넓은 정의가 있다.
영 아닌 정수는 부울 의미로 true이다. 그래서 부울 의미로 -1, 2 그리고 -200 모두 true로 정의된다.
true
및 false
상수는 HIGH
, LOW
, INPUT
, 그리고 OUTPUT
와 달리 소문자로 씀을 유의하라.
핀 수준 정의: HIGH 및 LOW
디지털 핀에 읽거나 쓸 때 핀이 얻고/설정 할 수 있는 것은 오직 두 값만 있다: HIGH
및 LOW
.
HIGH
(핀에서 참조하는) HIGH
의 뜻은 핀 설정이 INPUT
이냐 OUTPUT
이냐에 따라 좀 다르다.
핀이 pinMode() 에서 INPUT
으로 설정되고, digitalRead() 로 읽으면
아두이노(ATmega)는 아래의 경우에 HIGH
라 보고 한다:
- 3.0V 이상의 전압이 핀 (5V boards)에 존재
- 2.0V 이상의 전압이 핀 (3.3V boards)에 존재
핀은 pinMode()
에서 INPUT 로 설정될 수도 있고, 나중에 digitalWrite() 로 HIGH 가 된다.
이것은 내부 20K 풀업 저항을 가능하게 할 것이며, 입력 핀을 외부 회로에 의해 LOW
로 당겨지지 않으면 HIGH
읽기로 pull up 할 것이다.
이것이 INPUT_PULLUP
이 동작하는 방식이며 아래에 더 자세히 설명한다.
핀이 pinMode()
에서 OUTPUT 로 설정되고, digitalWrite()
에서 HIGH
로 설정될 때, 핀은 :
- 5V (5V 보드)
- 3.3V (3.3V 보드)
이 상태에서 전류를 공급할 수 있고, 예를들어 직렬 저항을 통해 접지에 연결된 LED에 불이 켜진다.
LOW
LOW
의 뜻도 핀 설정이 INPUT
이냐 OUTPUT
이냐에 따라 좀 다르다.
핀이 pinMode()
에서 INPUT
로 설정되고, digitalRead()
로 읽을 때, 아두이노(ATmega)는 아래의 경우 LOW 를 보고한다:
-
핀에 1.5V 이하 전압이 존재(5V 보드)
-
핀에 약 1.0V 이하 전압이 존재(3.3V 보드)
핀이 pinMode()
에서 OUTPUT 로 설정되고, digitalWrite()
에서 LOW
로 설정될 때, 핀은 0 V에 있다(5V 와 3.3V 보드 둘다)
In this state it can sink current, e.g. light an LED that is connected through a series resistor to +5 volts (or +3.3 volts).
이 상태에서 전류를 공급할 수 있다. 직렬 저항에서 5V(또는 +3.3V)에 연결된 LED 불을 밝힌다.
디지털 핀 모드 정의: INPUT, INPUT_PULLUP, 그리고 OUTPUT
디지털 핀은 INPUT
, INPUT_PULLUP
, 또는 OUTPUT
로 쓰일 수 있다.
pinMode()
로 핀을 바꾸면 핀의 전기적 동작이 바뀐다.
INPUT 으로 구성된 핀
pinMode()
에서 INPUT
로 설정된 아두이노(ATmega)는 high-impedance state 에 있다고 말한다.
INPUT
으로 구성된 핀들은 그들이 샘플링 하는 데 극도로 작은 요구를 하고, 핀 앞에는 100 메가 옴의 직렬 저항과 동일.
이것은 센서를 읽기 좋게 만든다.
If you have your pin configured as an INPUT
, and are reading a switch, when the switch is in the open state the input pin will be "floating", resulting in unpredictable results. In order to assure a proper reading when the switch is open, a pull-up or pull-down resistor must be used. The purpose of this resistor is to pull the pin to a known state when the switch is open. A 10 K ohm resistor is usually chosen, as it is a low enough value to reliably prevent a floating input, and at the same time a high enough value to not not draw too much current when the switch is closed. See the Digital Read Serial tutorial for more information.
If a pull-down resistor is used, the input pin will be LOW
when the switch is open and HIGH
when the switch is closed.
If a pull-up resistor is used, the input pin will be HIGH
when the switch is open and LOW
when the switch is closed.
INPUT_PULLUP으로 구성된 핀
The ATmega microcontroller on the Arduino has internal pull-up resistors (resistors that connect to power internally) that you can access. If you prefer to use these instead of external pull-up resistors, you can use the INPUT_PULLUP
argument in pinMode()
.
See the Input Pullup Serial tutorial for an example of this in use.
Pins configured as inputs with either INPUT
or INPUT_PULLUP
can be damaged or destroyed if they are connected to voltages below ground (negative voltages) or above the positive power rail (5V or 3V).
OUTPUT으로 구성된 핀
Pins configured as OUTPUT
with pinMode()
are said to be in a low-impedance state. This means that they can provide a substantial amount of current to other circuits. ATmega pins can source (provide current) or sink (absorb current) up to 40 mA (milliamps) of current to other devices/circuits. This makes them useful for powering LEDs because LEDs typically use less than 40 mA. Loads greater than 40 mA (e.g. motors) will require a transistor or other interface circuitry.
Pins configured as outputs can be damaged or destroyed if they are connected to either the ground or positive power rails.
내장된 정의 : LED_BUILTIN
대부분의 아두이노 보드는 저항에 직렬로 온보드에 연결된 핀을 갖고 있다. 상수 LED_BUILTIN
은 온보드 LED가 연결된 핀 번호이다. 대개의 보드는 이 LED가 디지털 13에 연결되어 있다.