일반적으로 처음 아두이노를 접할때 led를 켰다 끄는 법을 배우면서 자연스럽게 delay라는 명령어를 사용하게 된다. 이 delay는 프로그램을 지연시킨다는 뜻이며 결국 지연되는 시간동안 아무런 작업을 수행하지 못하고 멈춘 상태가 된다. 예를들어 delay(1000)이라는 명령을 내리면 1초동안 회로가 멈춤상태가 되며 실제로 우리가 컴퓨터나 스마트폰을 이용할 때 1초가 지연되면 엄청나게 답답함을 느낄 것이다. 이런 문제점을 해결하고자 도입된 개념이 millis()함수 이다. millis란 millisecond의 약자로 1/1000초로 아주아주아주 매우매우매우 짧은 시간이다. 아주 짧은 시간 안에 빠르게 작업을 수행하여 마치 우리 눈에는 멀티테스킹을 하는 것 처럼 보인다. 이런 마이크로컨트롤러는 동시에 여..
이전에 포스팅한 방법은 입력한 숫자를 단순히 나누어서 몫을 계속해서 나누는 방법이였다. 이러한 방법이 코드를 작성하는데 어려움 없이 쓸 수 있지만 숫자가 커지게 되면 연산도 많이 하게 되어 프로그램 시간이 오래 걸리게 된다. 이런 연산을 간소화 하기 위해 다음과 같은 방법을 사용한다. 1 ~ 9 까지의 자연수 : 9개 -> 1자리, 자리수 개수 : 9X1 = 9개 10 ~ 99 까지의 자리수 : 90개 -> 2자리, 자리수 개수 : 90X2 = 180개 100 ~ 999 까지의 자리수 : 900개 -> 3자리, 자리수 개수 : 900X3 = 2700개 if ) 15를 입력했다면 9+(15-9)*2 = 21개 15에서 9를 뺀 후 2를 곱해줘야 두자리수의 총 개수가 나온다. if ) 256을 입력했다면 9..
첫번째 아두이노 개인프로젝트는 신호등 시스템 환경을 구축하는 것이다. 우리가 횡단보도를 건널 때 신호등과 카운터가 있으며 사고위험이 있는 어느 횡단보도는 센서가 있어 차도와 가까워지면 경고음을 울리는 상황을 종종 볼 수 있다. 이런 환경을 소형화해서 아두이노로 만들어 보았다. 설계 방법 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..
2018년 대학 입학선물로 지금 쓰고있는 노트북을 선물로 받았었다. 그 당시에만 해도 최신형이라 빠릿빠릿하고 아쉬움 없었지만 3년이 지나니까 점점 느려지는 것이 눈에 띄기 시작했다. 부팅속도도 느려지고 프로그램 실행할때도 뭔가 버벅이기도 하고... 아니나 다를까 드라이브 용량을 보니까 총 256G 중 여유공간이 60G밖에 남지 않아있었다. PC를 쾌적하게 이용하려면 총 용량의 30%의 여유공간은 남겨두어야 한다는데 이미 초과해 버린 것이였다. 그렇다고 새 노트북을 사기에는 아직 팔팔한 현역이기 때문에 아쉬움이 있었다. 그래서 이것저것 노트북 사양을 알아보던 중 내가 쓰던 노트북은 램, SSD확장이 가능한 모델임을 알게 되었다. 그래서 한치의 망설임도 없이 램과 SSD를 업그레이드 하기로 결심했다. 오늘은..
우선 흔히 사용하는 아두이노 우노를 사용하지 않고 왜 메가를 사용할까? 그거슨 바로 핀의 개수가 모자라기 때문이다. 물론 우노에 다른 모뎀을 연결해서 포트 확장을 하는 방법이 있는 것 같지만 그 또한 제한적이라 시원하게 메가로 바꿔주었다. 다른 설정 없이 기본적으로 아두이노 우노는 디지털 핀의 개수를 12개(PWM포함)밖에 사용하지 못하지만 메가2560은 디지털만 약70개를 사용할 수 있다. 간단한 프로젝트를 진행 할 때 3~4개의 모듈사용은 기본인데 7-segment만 해도 디지털포트 8개를 잡아먹는다. 따라서 오픈소스도 많고 배우기 쉬운건 아두이노 우노지만 추후에 확장성을 고려한다면 메가를 피할수 없을 것이다. 이 글에서는 메가를 사용하면서 처음으로 어려움을 겪은 블루투스 연결에 관해 적어보려 한다...
첫 글을 뭐라고 써야할지 모르겠당 시작이 반이라고 하니 일단 죽이되든 밥이되든 써보자. 나에게 블로그란 그저 찾아보기용 이였는데 내가 직접 쓰게되다니...... 필력이 좋지도 않은데 보러와줄 사람이 있을까...? 아무도 안온다고 해도 기록용이다 생각하고 꾸준히 적어보자!!! 일단 종강을 했으니 계획을 세우고 배운 내용을 기록하자. 방학동안 할 것들 1. 간단한 아두이노 프로젝트 2. C/C++ 코딩테스트 인프런인강 듣기 3. 교내 비교과(MATLAB, 마이크로프로세서, PcB)수강 후 정리 이렇게 계획을 세워봤자 얼마나 할진 모르겠지만.... 혹시나 글 보러왔는데 어느순간 글이 안올라온다? 댓글로 갈궈주세요....저같은 사람은 욕을 먹어야 동기부여가 되더라구요🤔