아두이노를 제어하기 위해서는 스크레치 문법을 알아야 합니다
사실 C/C++ 와 거의 비슷하기 때문에 금방 익힐 수 있어요
(스케치 문법(영어) : https://www.arduino.cc/en/Reference/HomePage)
그 중에서도 가장 많이 사용하게 될 setup(), loop()과
디지털 입/출력과 아날로그 입/출력를 설명하려 합니다
프로그래밍 언어를 모르시는 분들은
기초적인 문법(변수, 함수) 정도는 아셔야 넘어가기 쉽습니다
아니면 스케치가 아닌
스크레치를 통해 레고처럼 블록을 쌓아서
프로그램을 작성할 수 있습니다
문법을 몰라도 사용할 수 있는 장점이 있으니
스크레치로 눈길을 돌리셔도 됩니다
setup(), loop()
스케치 실행시 아래 화면처럼
setup()과 loop()를 볼 수 있습니다
void setup() { // put your setup code here, to run once:
}
void loop() { // put your main code here, to run repeatedly:
} |
setup()은 아두이노 실행(전원연결) 시 최초 한번만 실행되며
loop()는 반복 실행됩니다
setup() -> loop() -> loop() -> loop -> ... 요런 느낌?
setup()에는 사용할 핀, 시리얼 통신 등등
loop()에는 실제 실행 코드를 입력합니다
뭔가 어려워 보이지만 실제로는 매우 쉽….습니다;;;;
디지털 입/출력(Digital I/O)
pinMode(), digitalWrite(), digitalRead()
pinMode() - https://www.arduino.cc/en/Reference/PinMode
int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output }
void loop() { digitalWrite(ledPin, HIGH); // set the LED on delay(1000) // waits for a second digitalWrite(ledPin, LOW); // set the LED off delay(1000) // waits for a second } |
디지털 핀을 사용할때 setup에 작성하며 digitalWrtie(), digitalRead()와 함께 사용합니다
pinMode(핀번호, 입력(INPUT)&출력(OUTPUT)); 으로 OUTPUT은 전기를 내 보낸다 라고
생각하면 쉽겠네요통상 3.3v의 전력이 나오며 + 극으로 생각하시면 됩니다
(물론 -극으로 사용할 수도 있어요..)
digitalWrite() - https://www.arduino.cc/en/Reference/DigitalWrite
int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output }
void loop() { digitalWrite(ledPin, HIGH); // set the LED on delay(1000) // waits for a second digitalWrite(ledPin, LOW); // set the LED off delay(1000) // waits for a second } |
pinMode와 같이 사용하며 OUTPUT으로 선언합니다
digitalWrite(사용할 digital 핀번호(숫자), HIGH(1) & LOW(0)); 으로 사용합니다
HIGH은 1 이상의 숫자를 의미하며, LOW는 0을 의미 합니다
int ledPin = 13; // LED connected to digital pin 13 int inPin = 7; // pushbutton connected to digital pin 7 int val = 0; // variable to store the read value
void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output pinMode(inPin, INPUT); // sets the digital pin 7 as input }
void loop() { val = digitalRead(inPin); // read the input pin digitalWrite(ledPin, val); // sets the LED to the button's value } |
pinMode와 같이 사용하며 INPUT으로 선언합니다
digitalRead(사용할 digital 핀번호(숫자));
말그대로 데이터 값을 읽어(Read)옵니다, 스위치 & 버튼에 주로 사용합니다
아날로그 입/출력(Analog I/O)
analogRead(), analogWrite() - PWM
PWM 핀과 아날로그 핀을 사용합니다
PWM(Pulse Width Modulation)핀은 숫자 번호 앞에 ~ 가 붙어있어요
사진 : Fritzing
디지털 3, 5, 6, 9, 10, 11 핀에 해당하네요(UNO 기준)
pinMode를 사용하지 않고 바로 사용합니다
예제를 보면 알겠지만 setup에서 pinMode없이 바로 사용합니다
참고로 Serial.begin 부분은 시리얼 모니터를 사용해서
데이터 입력값을 확인 할 때 사용합니다
int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3 // outside leads to ground and +5V int val = 0; // variable to store the value read
void setup() { Serial.begin(9600); // setup serial }
void loop() { val = analogRead(analogPin); // read the input pin Serial.println(val); // debug value } |
analogRead(핀번호);
아날로그 핀은 A0 ~ A5 로
앞에 대문자 A를 붙여서 사용합니다 예제는 PWM인 디지털 3번핀
디지털 과는 달리 0 ~ 1023 의 데이터를 받습니다
스피커의 볼륨 같은 가변저항이나 아나로그 센서 데이터를
받아올때 사용합니다
int ledPin = 9; // LED connected to digital pin 9 int analogPin = 3; // potentiometer connected to analog pin 3 int val = 0; // variable to store the read value
void setup() { pinMode(ledPin, OUTPUT); // sets the pin as output }
void loop() { val = analogRead(analogPin); // read the input pin analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255 } |
analogWrtie(핀번호, 출력값(0~255));
디지털과 달리 0~ 255의 값을 출력 가능합니다
255 가 3.3v라고 생각하면 될 것 같네요
006. Arduino 아두이노 - LED 제어하기, 아두이노 LED 예제 (0) | 2016.01.30 |
---|---|
005. Arduino 아두이노 - Visual Studio 2015 Community 사용하기 (0) | 2016.01.30 |
003. Arduino 아두이노 - 빵보드(Breadboard), 점퍼선(Jumper wire), 듀폰케이블(Dupone wire) 사용하기 (0) | 2016.01.30 |
002. Arduino 아두이노 - 중국산 호환보드(CH340&CH341 ) 드라이버 설치 - 맥북 (El Capitan) (0) | 2016.01.30 |
001. Arduino 아두이노 - 중국산 호환보드(CH340&CH341) 드라이버 설치 - 윈도우 (6) | 2016.01.30 |
댓글 영역