초기 설정 코드
여기서 부터는 최종 코드를 작성해볼 예정입니다. 이전에 배웠던 코드들을 사용할 계획이며, 작성하다가 원리가 기억이 나지 않는다면, 이전 단계를 다시 확인하고 오시는 것을 추천드립니다.
이제 실전으로 최종 코드를 작성하기 위해, 먼저 각종 핀을 정리부터 하도록 하겠습니다.
setup 함수에 사용될 부품의 핀과 라이브러리를 포함하도록 구현하는 것이 목표입니다.
이때까지 살펴봤던 핀 입니다. 모터, 버튼, 열선, 온도센서가 있습니다.
이 디지털 핀들을 setup 함수에 작성해줍니다.
1void setup()
2{
3 pinMode(8,INPUT_PULLUP); // A 버튼
4 pinMode(7,INPUT_PULLUP); // B 버튼
5 pinMode(11,INPUT_PULLUP); // C 버튼
6 pinMode(12,INPUT_PULLUP); // D 버튼
7
8 pinMode(5,OUTPUT); // 모터 활성화 핀
9 pinMode(6,OUTPUT); // 모터 방향 핀
10 pinMode(10,OUTPUT); // 모터 속도 핀
11
12 pinMode(9,OUTPUT); // 열선
13
14 digitalWrite(5, HIGH); // 모터 활성화
15}
16
17void loop()
18{
19
20}
사용되는 디지털 핀들을 모두 작성하였습니다. 라이브러리를 포함하는 코드를 작성하고 초기 설정은 마무리 합니다.
코드를 작성함에 있어서 주석을 작성해주는 습관을 들이면, 나중에 코드를 다시 확인할 때 시간을 아껴줍니다.
1#include "ssd1306.h" // 라이브러리 포함
2
3void setup()
4{
5 pinMode(8,INPUT_PULLUP); // A 버튼
6 pinMode(7,INPUT_PULLUP); // B 버튼
7 pinMode(11,INPUT_PULLUP); // C 버튼
8 pinMode(12,INPUT_PULLUP); // D 버튼
9
10 pinMode(5,OUTPUT); // 모터 활성화 핀
11 pinMode(6,OUTPUT); // 모터 방향 핀
12 pinMode(10,OUTPUT); // 모터 속도 핀
13
14 pinMode(9,OUTPUT); // 열선
15
16 digitalWrite(5, HIGH); // 모터 활성화
17}
18
19void loop()
20{
21
22}
이어서 디스플레이를 사용해야 함으로 디스플레이에 대한 초기 코드를 setup에 작성합니다.
작성에 필요한 코드의 설명을 보려면 여기 로 이동하여 확인하세요.
1#include "ssd1306.h" // 라이브러리 포함
2
3void setup()
4{
5 pinMode(8,INPUT_PULLUP); // A 버튼
6 pinMode(7,INPUT_PULLUP); // B 버튼
7 pinMode(11,INPUT_PULLUP); // C 버튼
8 pinMode(12,INPUT_PULLUP); // D 버튼
9
10 pinMode(5,OUTPUT); // 모터 활성화 핀
11 pinMode(6,OUTPUT); // 모터 방향 핀
12 pinMode(10,OUTPUT); // 모터 속도 핀
13
14 pinMode(9,OUTPUT); // 열선
15
16 digitalWrite(5, HIGH); // 모터 활성화
17
18 ssd1306_128x32_i2c_init(); // 32로 변경
19 ssd1306_fillScreen(0x00); // 화면 초기화
20 ssd1306_setFixedFont(ssd1306xled_font6x8); // 폰트 설정
21 ssd1306_flipHorizontal(1); // x 화면 대칭 회전
22 ssd1306_flipVertical(1); // y 화면 대칭 회전
23}
24
25void loop()
26{
27
28}
여기에서 전처리문을 이용하여, 코드가 이해되기 쉽도록 변경해줍니다.
전처리문을 사용하는것은 필수가 아니지만, 코드가 길어질 수록 유용하게 사용됩니다.
따라서 적절하게 사용하는 습관을 가져주시면 좋습니다.
1#include "ssd1306.h" // 라이브러리 포함
2
3#define BTN_A 8 // A버튼
4#define BTN_B 7 // B버튼
5#define BTN_C 11 // C버튼
6#define BTN_D 12 // D버튼
7
8#define MOTOR_EN 5 // 모터 활성화 핀
9#define MOTOR_DIR 6 // 모터 방향 핀
10#define MOTOR_SPEED 10 // 모터 속도 핀
11
12#define HEATER_EN 9 // 열선 핀
13
14#define TEMP_IN A0 // 온도 읽는 핀
15
16void setup()
17{
18 pinMode(BTN_A, INPUT_PULLUP);
19 pinMode(BTN_B, INPUT_PULLUP);
20 pinMode(BTN_C, INPUT_PULLUP);
21 pinMode(BTN_D, INPUT_PULLUP);
22
23 pinMode(MOTOR_EN, OUTPUT);
24 pinMode(MOTOR_DIR, OUTPUT);
25 pinMode(MOTOR_SPEED, OUTPUT);
26
27 pinMode(HEATER_EN, OUTPUT);
28
29 digitalWrite(MOTOR_EN, HIGH); // 모터 활성화
30
31 ssd1306_128x32_i2c_init(); // 32로 변경
32 ssd1306_fillScreen(0x00); // 화면 초기화
33 ssd1306_setFixedFont(ssd1306xled_font6x8); // 폰트 설정
34 ssd1306_flipHorizontal(1); // x 화면 대칭 회전
35 ssd1306_flipVertical(1); // y 화면 대칭 회전
36}
37
38void loop()
39{
40
41}
이후의 전처리문이 사용될 부분이 있으면, 언급없이 사용하도록 하겠습니다. 전처리문은 모든 이름을 대문자로 쓰는 관습이 있기 때문에 구별이 어렵지 않을겁니다.
※ 작성된 것을 지우지 말고 다음 단계로 이동합니다.