상세 컨텐츠

본문 제목

004. Arduino 아두이노 - 스크레치 문법 (디지털, 아날로그 입/출력)

embedded/arduino

by ZelKun 2016. 1. 30. 11:52

본문

반응형

아두이노를 제어하기 위해서는 스크레치 문법을 알아야 합니다

사실 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()


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 전력이 나오며 + 극으로 생각하시면 됩니다

(물론 -극으로 사용할 수도 있어요..)

 

  

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라고 생각하면 같네요

반응형

관련글 더보기

댓글 영역