임베디드 일지

임베디드 일지/아두이노 기초

[아두이노 기초] Serial 통신

1. 기초이론 개발 경험상 아두이노를 포함해서 임베디드를 개발하는 데 있어 통신 서비스는 매우 중요합니다. 우선 무얼 개발할 지부터 개발 완성에 다다를 때까지 디버깅을 하는데 큰 도움을 주는 친구이기 때문입니다. 물론 개발하는 데 있어 금전적인 여유가 있어 Trace32와 같은 디버깅 툴이 있다면, 필요가 없을 수도 있습니다. 저도 현업 와서 처음 써본 거지만 해당 툴 없이 개발하라고 하면 역체감이 심할거 같네요. 아무튼 본론으로 돌아와서 통신은 임베디드를 설계할때 거의 항상 들어가게 됩니다. 통신에는 여러 종류가 있는데 해당 글에서 다루고자 하는 Serial 통신부터 해서 SPI, I2C, CAN, Ethernet 등 통신하면 수도 없이 많습니다. 그중에서 가장 기초인 Serial 통신에 대해 배워봅시..

임베디드 일지/아두이노 기초

[아두이노 기초] ADC

1. 기초이론 지금까지 작성된 글을 기반으로 봤을 때 아두이노는 0 아니면 1만을 인식하는 디지털 시스템인걸 알 수 있습니다. 디지털 시스템의 문제는 아날로그 시스템을 이해할 수 없다는 것입니다. DIO 강의 때 보면 특정 전압 이상은 1, 특정 전압 이하는 0으로 분류를 해버리니 입력 전압이 몇 볼트인지 알 수가 없습니다. ADC는 이를 해결하기 위한 모듈로 제 생각으로는 마이크로컨트롤러 단가에 큰 영향을 주는 모듈이라 생각됩니다. 쉽게 생각해서 번역기라고 생각하면 될 것 같습니다. 본론으로 들어가기 앞서 아날로그와 디지털의 개념을 잡고 가는 게 좋을 것 같습니다. 먼저 디지털 신호란 딱딱 정수로 떨어지는 신호를 말합니다. 소수점이란 없으며, 딱 떨어지는 정수로 표현되는 신호들입니다. 우리가 여태껏 다..

임베디드 일지/아두이노 기초

[아두이노 기초] Interrupt

1. 기초 이론 지난 게시글에서 다뤘던 Digital Input의 연장선인 Interrupt에 대해 알아봅시다. 우선 Interrupt의 사전적 정의를 보면 아래와 같습니다. 뜻만 보더라도 어떤 기능인지 알 수 있듯 MicroController를 '방해'하고 '중단'시키는 기능입니다. 좀 더 일상에서 비유를 들자면 우리는 숙제(Main Task)를 하고 있다고 가정해봅시다. 숙제를 하는 중간에 전화(Digital Input)가 오기로 해서 전화(Digital Input)를 받아야 합니다. 이런 상황에서 지난 게시글의 이론 기반으로 Code를 짠다면, 다음과 같은 행동을 보이게 될 것입니다. 우리는 숙제(Main Task)를 하고 있는 도중에 전화(Digital Input)가 왔을 때, 숙제(Main Ta..

임베디드 일지/아두이노 기초

[아두이노 기초] GPIO Input

1. 기초 이론 오늘 다룰 내용은 아두이노에서 제공하는 DigitalRead() 함수에 대한 것입니다. 아두이노는 특정 전압 이상의 값을 받았을때, 이를 0 또는 1로 읽어올 수 있습니다. 여기서 특정 전압이라 하면, Microcontroller마다 기준이 다를 것입니다. 사람으로 예를 들면 '맵다'라는 기준이 다르듯이 말이에요. 아래 가져온 자료는 ATMEGA2560의 Vcc(Voltage Source)에 따른 Input voltage 기준 전압 자료입니다. 쉽게 말해서 사람(MicroController)도 식사량(Vcc)과 그 날 몸 컨디션(Chip의 온도)에 따라서 '맵다'(입력 전압이 0인지 1인지)의 기준이 달라지는 것입니다. 하지만 애초에 Digital로 값을 읽어오는 경우에는 이러한 모호한 ..

임베디드 일지/아두이노 기초

[아두이노 기초] Arduino Mega 2560 - 2

이전 게시글에서 기본적인 3개의 함수에 대해 설명했었다. 이를 활용하여 어떤 식으로 설계를 해나가는 것인지 알아보자. 기본적으로 아두이노 스케치를 열면 아래와 같은 그림이 나올것이다. C언어나 C++을 공부한 사람이라면 main문은 존재하지도 않고 두개의 함수만 있기 때문에 다소 생소한 모습일 것이다. 아두이노 스케치의 경우 사용자의 편의를 위해 저렇게 함수가 나오는데 C언어나 C++형태로 바꾸면 아래와 같이 표현된다. 아두이노 스케치에서 코딩을 한 후 컴파일을 할 경우 아래와 같이 자동으로 변환하여 실행된다. #include int main(){ void setup(); void loop(); setup(); while(1){ loop(); } } setup함수의 경우 마이크로컨트롤러가 실행될 때 단 ..

우리집공돌이곰돌을좋아해
'임베디드 일지' 카테고리의 글 목록