LuckyFace's Systems Lifescience

void setup과 Serial 통신 본문

Systems Neuroscience/ARDUINO functions

void setup과 Serial 통신

LuckyFace 2017. 4. 18. 17:03

void setup() {

    Serial.begin(115200); // serial setup

    fdev_setup_stream(&serial_stdout, serial_putchar, NULL, _FDEV_SETUP_WRITE); // printf setup (do not edit)

    stdout = &serial_stdout; // printf setup (do not edit)

    randomSeed(analogRead(0)); // determines seed number of random function

  

    // Pin setup

    DDRD = B11111110; // Pin 7, 6, 5, 4, 3, 2, 1, 0. Pin 0 and 1 is reserved for serial communication.

    DDRB = B00101111; // Pin xx, xx, 13, 12, 11, 10, 9, 8. 

    PORTD &= B00000011; // reset pin 2-7

    PORTB &= B11010000; // reset pin 8-11 and 13 (pin 12 is sensor)

}



프로그래밍에서의 함수에는 4가지 요소가 있어야 한다고 함.


1. 반환값의 타입

2. 함수명

3. 매개변수

4. 함수 구문


그리고 구조는


반환타입 함수명(매개변수) {

 함수구문

}


그럼 처음 등장한 함수 setup을 보면


반환타입은 void라고 되어있는데, 이는 변수 타입은 아니고 반환타입이 없다는 것을 의미한다고 함. 즉 함수에서 y값이 없다는 의미라는데..

우리 code에서 보면 setup뒤에 매개변수도 없다고 되어있음. (아두이노에서는 매개변수에 한해서 void를 생략할수 있다 함)


예를 들어,


int addFunc(int a, int b) {

 int c;

 c = a+b;

return c;

}


이런 함수가 있다고 하면

함수 앞에 int가 있으니, 반환값은 숫자 변수이고, 들어가는 x값은 int a, int b이며, 그 기능을 설명하는 값은 {뒤에 들어있음.


아두이노에서 setup함수는 실행시키면 한번만 실행되는 함수인데, 여기에서 우리 코드는 Serial 함수와 analogRead함수를 사용하였다.


Serial 통신에 대한 기본적인 지식은 http://blog.naver.com/yuyyulee/220301424499 여기에 아~주 자세히 언급되어있으니 참고!


어쨌든 이 serial 통신 speed를 먼저 설정해준 것이 Serial.begin(115200);


그다음 printf function들은 일단 여기서는 제외.


그다음  analogRead에 대해서 알아보자.


Digitalread는 0(low) 1(high)로 이뤄지는 값들을 읽는 것이고

analogRead는 그렇지 않은 모든 신호를 읽는 것!


이런 아날로그 신호를 디지털로 변환시켜주는 과정을 ADC(analog-digital converter)라고 하며, 아두이노의 A-pin들은 이런 ADC기능을 갖고 있음.

 

analogRead(0)는 analogRead(A0)와 같은 의미라고 함.


random은 난수발생을 위해 사용하는 함수인데, 매번 달라지는 난수를 발생시키기 위해서는 randomSeed로 난수발생기를 초기화해줘야 한다함. 이때 사용하지 않는 핀의 아날로그 값을 읽으면 편하다고 하여


Randomseed(analogread(0))로 사용함.


그 밑의 pin setup은 잘 모르겠다...




'Systems Neuroscience > ARDUINO functions' 카테고리의 다른 글

bit Math  (0) 2017.04.19
Serial 통신(2)  (0) 2017.04.19
boolean and String, char  (0) 2017.04.18
int, unsigned long  (0) 2017.04.18
#define  (0) 2017.04.18
Comments