아두이노

아두이노/프로젝트

[아두이노] 위치에 따라 회전하는 선풍기(다중초음파센서 제어)

2021년 7월 11일 너무너무너무 더운 여름이다. 선풍기가 없으면 잠이 들수 없는 지경이다. 에어컨만큼은 아니지만 어느정도 더위를 날려주는 선풍기의 발명은 정말 고맙다. 그러나 우리가 위치를 이동하거나 다른곳에 볼일이 있으면 선풍기를 옮겨야 하거나 공간에 제약이 있다. 이런 불편함을 해소하기 위해 자동으로 방향을 틀어주는 선풍기를 아두이노로 통해 만들어봐야겠다는 생각을 했다. 이것을 만들기 위한 정보를 찾던 도중 유튜브에서 마침 적당한 영상을 찾았다. 간단히 초음파센서와 서보모터를 이용해서 구현을 하는 것이였고 더 많은 정보를 얻기 위해 댓글을 확인 한 순간 어이가 없었다. 그 이유는 바로 소스코드를 무려 5만원주고 팔고있었으며 수많은 사람들이 그럼에도 불구하고 기꺼이 구매하려는 것이였다. 별로 어려워..

아두이노/프로젝트

[아두이노] 알람시계 프로젝트(RTC, LCD, 블루투스)

두번째 프로젝트는 RTC모듈을 이용한 알람시계이다. RTC이란 Real Time Clock의 약자이며 쉽게 '시계'라고 생각하면 된다. 내부적으로 시간을 연산하는 프로그램을 갖고 있어서 초기값만 설정해 준 후 전원만 연결하면 실제시계와 똑같이 동작한다. 처음 RTC모듈을 접했다면 대부분 Serial화면으로 출력하는 법 먼저 배웠을 것이다. 그러나 아두이노는 제품을 만들 수 있는 장점이 있는데 왜 PC화면으로만 출력을 하는가? 보드에 RTC뿐만 아니라 LCD화면과 피에조 부저, LED, 블루투스 통신이 가능하도록 PC와 독립적인 알람시계를 만들어 보자! 준비물 RTC모듈, LCD패널(I2C), HC-06, 피에조부저, RLED, 9V배터리, 여러 점퍼선과 저항 설계 방법 1. RTC모듈에 초기값(현재시간)..

아두이노/예제

[아두이노] 메가2560 lcd(I2C모듈) 출력하기

아두이노 우노에서 lcd화면을 띄울 때 SDA는 A5번핀, CLS은 A6번핀에 연결해야 한다. 그러나 아두이노 메가 2560에서도 똑같이 적용을 하면 화면이 뜨지 않는다. 그 이유는 메가에서 기본적으로 SDA와 CLS핀을 지원하기 때문에 따로 아날로그 핀에 연결할 필요가 없다. 사진과 같이 연결하면 LCD화면을 출력할 수 있으며 코드 작성은 우노에서 한 방법과 똑같이 하면 된다. 추가로 COMMUNICATION이라는 포트 구성을 보면 SDA, SCL뿐만 아니라 TX, RX도 볼 수 있는데 블루투스 통신포트도 이곳으로 연결시켜줘야 정상적으로 작동한다.

아두이노/예제

[아두이노] 멀티태스킹 & 다중작업 millis()

일반적으로 처음 아두이노를 접할때 led를 켰다 끄는 법을 배우면서 자연스럽게 delay라는 명령어를 사용하게 된다. 이 delay는 프로그램을 지연시킨다는 뜻이며 결국 지연되는 시간동안 아무런 작업을 수행하지 못하고 멈춘 상태가 된다. 예를들어 delay(1000)이라는 명령을 내리면 1초동안 회로가 멈춤상태가 되며 실제로 우리가 컴퓨터나 스마트폰을 이용할 때 1초가 지연되면 엄청나게 답답함을 느낄 것이다. 이런 문제점을 해결하고자 도입된 개념이 millis()함수 이다. millis란 millisecond의 약자로 1/1000초로 아주아주아주 매우매우매우 짧은 시간이다. 아주 짧은 시간 안에 빠르게 작업을 수행하여 마치 우리 눈에는 멀티테스킹을 하는 것 처럼 보인다. 이런 마이크로컨트롤러는 동시에 여..

아두이노/프로젝트

[아두이노] 신호등 프로젝트(초음파, 7세그먼트, 피에조부저)

첫번째 아두이노 개인프로젝트는 신호등 시스템 환경을 구축하는 것이다. 우리가 횡단보도를 건널 때 신호등과 카운터가 있으며 사고위험이 있는 어느 횡단보도는 센서가 있어 차도와 가까워지면 경고음을 울리는 상황을 종종 볼 수 있다. 이런 환경을 소형화해서 아두이노로 만들어 보았다. 설계 방법 1. R, G led로 초록등, 빨간등을 표현한다. 2. 7-세그먼트로 9~0까지 표시하여 0이 되면 led색이 바뀌며 다시 9부터 카운트 한다. 3. 초음파 센서를 이용하여 빨간불일때 일정 거리 가까이 다가오면 경고음을 울린다. 4. 경고음은 피에조 부저로 설정한다. 소스코드 int pins[] = {2, 3, 4, 5, 6, 7, 8}; int num_of_pins = 7; int delaytime = 1000; bo..

아두이노/예제

[아두이노] 메가2560 블루투스 연결

우선 흔히 사용하는 아두이노 우노를 사용하지 않고 왜 메가를 사용할까? 그거슨 바로 핀의 개수가 모자라기 때문이다. 물론 우노에 다른 모뎀을 연결해서 포트 확장을 하는 방법이 있는 것 같지만 그 또한 제한적이라 시원하게 메가로 바꿔주었다. 다른 설정 없이 기본적으로 아두이노 우노는 디지털 핀의 개수를 12개(PWM포함)밖에 사용하지 못하지만 메가2560은 디지털만 약70개를 사용할 수 있다. 간단한 프로젝트를 진행 할 때 3~4개의 모듈사용은 기본인데 7-segment만 해도 디지털포트 8개를 잡아먹는다. 따라서 오픈소스도 많고 배우기 쉬운건 아두이노 우노지만 추후에 확장성을 고려한다면 메가를 피할수 없을 것이다. 이 글에서는 메가를 사용하면서 처음으로 어려움을 겪은 블루투스 연결에 관해 적어보려 한다...

시그널보내
'아두이노' 카테고리의 글 목록