본문 바로가기

아두이노38

nRF24L01 내장 아두이노 나노보드 최대 통신 거리 중국 알리에서 구입한 nRF24L01 모듈 내장형 나노 보드 nRF24L01 의 경우 최대 1~2km 까지도 통신이 된다 했었고, 유튜브에서도 그와 관련된 자료가 꽤 있기도 하다. www.youtube.com/watch?v=R2L2mvcJsPY 중국에서 사는 한국인이 올린 자료인데 2km 모듈의 경우 200m까지는 되었다고 한다. 그래서 과연 필자가 주문해서 받은 나노보드의 경우 통신범위가 어떻게 되나 테스트를 해봤다. 영상을 찍을 필요도 없이 처참한 결과였다. 외장 안테나가 없어서 거리가 짧을 줄은 알고있었는데 생각보다 너무 짧아서... 놀람을 금치 못했다. 일단 사이에 벽이 있으면 통신이 안 된다고 보면 되고, 뻥 뚫려있는 상황에서 최대 5m 거리에서 통신이 되었다. radio.setPALevel(R.. 2021. 3. 14.
아두이노 LCD 1602 4핀(I2C제어) 디스플레이 사용하는 방법 - 컴퓨터가 없을 때, 센서값을 알고 싶은경우 1602 캐릭터 lcd를 사용한다. 1602 lcd의 사용방법을 알아보고 출력하고 싶은 값을 출력해보자. - 아두이노, 1602캐릭터 lcd (I2C 제어모듈) 아두이노 - LCD 모듈 5V - VCC GND - GND A4 - SDA A5 - SCL 연결방법은 위와 같으며, I2C 통신을 위해서 아두이노의 SDA핀과 SCL 핀을 사용해야만 한다. SDA와 SCL핀은 아두이노 설계상으로 고정된 핀이기 때문에 다른 핀으로 변경할 수 없다. 아두이노 말고 다른 MCU에서 사용할 경우에도 SDA와 SCL 핀을 확인해야 한다. #include #include LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to .. 2021. 3. 14.
아두이노 nRF24L01 양방향 통신 이번 포스팅에서는 nRF24L01 의 양방향 통신에 대해서 다뤄보도록 한다. nRF24L01의 기본적인 사용 방법은 이전 포스팅에서 다뤘으니, 기본적인 단방향 통신이 궁금하다면 아래 링크의 포스트를 참고하시길 바란다. diyver.tistory.com/145 아두이노 nRF24L01 모듈로 무선통신 하는 방법 - 아두이노의 무선 통신의 대표는 WiFi, Bluetooth, RF통신 이 있다. 이 중에서 이번에는 RF통신을 다뤄보도록 한다. RF란? Radio Frequency로, 직역하면 무선 주파수 이며, 곧 주파수를 통한 통신을 diyver.tistory.com 기본적으로 nRF24L01 의 통신 모듈은 단방향 통신이 보통 사용 방법이다. 블루투스 HC-05, HC-06 모듈처럼 양방향 통신이 기본적.. 2021. 3. 14.
아두이노 nRF24L01 모듈로 무선통신 하는 방법 - 아두이노의 무선 통신의 대표는 WiFi, Bluetooth, RF통신 이 있다. 이 중에서 이번에는 RF통신을 다뤄보도록 한다. RF란? Radio Frequency로, 직역하면 무선 주파수 이며, 곧 주파수를 통한 통신을 뜻한다. nRF24L01 이란 2.4gHz의 주파수를 사용하는 무선통신 모듈 중 하나이다. 대표적인 RF통신 모듈이고, 1:N 통신에 많이 사용한다. 단방향 통신이 주된 사용 방법이지만, 양방향 통신도 가능하다. nRF24L01 은 무선 통신 가능 거리가 짧게는 5m 정도에서 1~2km 까지도 된다. 보통의 유통되는 아두이노용 nRF24L01 는 길어야 200m 라고 봐야한다. - 아두이노, nRF24L01 모듈 2세트 필자의 경우에는 아두이노 나노와 nRF24L01 모듈이 합쳐져.. 2021. 3. 13.
모터드라이버 L298N 5V로 모터 제어하기 - 낮은전압(12V 이하)에서 L298N 모터드라이버를 이용하여 모터를 제어해보자 - 아두이노(우노,나노,메가), L298N 모터드라이버, 점퍼선, 12V이하의 배터리팩 int motor_1 = 3; int motor_2 = 4; void setup() { // put your setup code here, to run once: pinMode(motor_1, OUTPUT); pinMode(motor_2, OUTPUT); } void loop() { // put your main code here, to run repeatedly: delay(1000); digitalWrite(motor_1, HIGH); digitalW.. 2021. 3. 11.
아두이노 타이머 카운터 인터럽트 사용하는 방법 CTC모드 이번 포스팅에서는 아두이노 타이머 인터럽트 사용방법을 다뤄보도록 하겠다. 이전 포스팅에서는 아두이노 입출력 인터럽트 사용방법을 다뤘으니, 참고하실 분들은 참고하시기 바란다. diyver.tistory.com/137 아두이노 입출력 인터럽트에 대해서 알아보자 attachInterrupt() 이번 포스트에서는 임베디드 시스템에서 제일 중요한 부분 중 하나인 인터럽트에 대해서 알아보도록 한다. 인터럽트란 마이크로컨트롤러프로세서(MCU) 에서 프로그램이 실행 중에 있을때, 예외 diyver.tistory.com 인터럽트는 타이머/카운터 인터럽트와 입출력 인터럽트로 2개가 있다. 입출력 인터럽트는 센서 등의 신호 변화를 감지하여 발생하는 인터럽트라면, 타이머/카운터 인터럽트는 일정 시간마다 발생하는 인터럽트이다... 2021. 2. 23.
아두이노 버튼 노이즈를 제거해보자, Debounce 이해하기 아두이노를 사용할 때, 버튼입력의 신호가 이상하게 입력될 때가 종종 있다. 버튼이 오동작 하기 쉬운 이유는 접점 불량으로 발생하기 쉽기 때문이다. 이 오류를 해결하는 방법이 Debounce 알고리즘을 사용하는 것이다. 이번 포스팅에서는 이 Debounce 알고리즘을 살펴보고, 어떻게 쓰는 것인지 알아보도록 한다. Debounce 는 쉽게 말해 특정시간이 지난 후 하나의 이벤트만 발생하도록 하는 기술이다. 버튼이 오동작 할 때를 보면 상황이 아래와 같을 때이다. 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 신호를 엄청 빠르게 읽어오는데 0에서 1로, 1에서 0으로 바뀌는 구간이 바로 이상함이 감지되는 구간이다. 도저히 사람 손으로.. 2020. 12. 23.
아두이노 입출력 인터럽트에 대해서 알아보자 attachInterrupt() 이번 포스트에서는 임베디드 시스템에서 제일 중요한 부분 중 하나인 인터럽트에 대해서 알아보도록 한다. 인터럽트란 마이크로컨트롤러프로세서(MCU) 에서 프로그램이 실행 중에 있을때, 예외상황이 발생하면 우선적으로 처리하는 것을 말한다. 아두이노를 가지고 설명하자면, 아두이노는 흔히 LOOP() 함수에서 코드가 반복해서 돌아가게 된다. 그런데 이상하게 구동이 되는 경우 도중에 코드를 멈춰야 한다. 이걸 LOOP() 함수 안에서 구현하려면 코드가 매우 난잡해지고, 즉시 멈추는게 불가능 하다. 멈추더라도 이전 작업이 다 끝나야 멈출 수 있다는 것이다. 코드가 난잡해지면 실수가 발생할 수 있고, 오류가 생길 가능성이 커진다. 그리고 즉시 멈출 수 없어서 그 짧은 시간동안 다른 문제를 야기할 수 있다. 따라서 이런.. 2020. 12. 23.
아두이노와 ESP8266으로 wifi에 연결해서 웹서버 만드고, 센서값 출력하기 - 몇년 전부터 아두이노를 통한 IoT 개발이 정말 많이 이루어지고 있다. 자료가 많이 없어서 이렇게 글을 써보려 한다. 아두이노에 ESP8266 모듈을 장착하면 아두이노로 wifi연결을 통해 인터넷에 접속할 수 있다. 그리고 웹 서버도 만들 수 있는데, 이 웹서버를 통해서 센서값 등을 표현시킬 수도 있다. 그 방법을 한번 알아보자. 아두이노, ESP8266 모듈, 또는 아두이노 NodeMCU 같은 ESP8266이 포함된 개발보드, CDS센서 LED 아날로그 0번에서 CDS 센서값을 읽어오고, 주변이 밝으면 LED를 끄고, 어두우면 LED를 키는 회로를 구성하였다. 필자는 NODE MCU를 이용해서 회로를 구성하였다. 아두이노에 ESP8266 wifi 모듈을 연결하면 똑같이 사용 가능하다. 코드 작성에 .. 2020. 10. 23.
아두이노 내부전원으로 서보모터(SG-90) 여러개 사용하는 방법 - 아두이노 내부 전원은 매우 약하다. 각종 센서나 LED 사용에는 큰 문제가 없지만, 모터류를 사용할 때에는 문제가 항상 따른다. 전류가 부족한 문제로, 모터쪽으로 과전류가 흐르게 되면 아두이노가 오작동 하는 등 문제가 생긴다. 그래서 원래는 외부전원을 사용하는 등 정석의 방법이 존재 한다. 하지만 이런 외부전원 회로를 만드는게 힘든 상황이거나 귀찮을 경우에 서모모터를 여러개 사용해야 하는 경우가 생기곤 한다. 이럴 때에 어떻게해야 아두이노 내부전원으로 서보모터를 여러개 돌릴 수 있을지 알아보자. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 점퍼선(M-M), 서보모터(SG-90) 여러개 아두이노 내부 전원 5V 를 통해서 서보모터 여러개에 전원 공급을 해준다. signal 신호는 각각 하나.. 2020. 10. 16.
모스펫으로 DC모터 제어하는 방법 ( IRFZ44N ) 오늘 다룰 센서는 모스펫 ( MOSFET ) 이다. 생긴것이 마치 트랜지스터 처럼 생겼는데, 맞다. 트랜지스터의 한 종류다. 트랜지스터처럼 증폭의 역할을 하는 것이 아닌, 스위치의 역할을 한다고 보면 된다. 마치 릴레이와 같다. 릴레이는 하드웨어적으로 스위치 역할을 한다면, 모스펫은 회로적으로 스위치 역할을 한다. 모스펫은 언제 사용하나? - 아두이노의 출력으로는 부족한 센서를 다룰 때 사용 - 스위치 회로를 구성할 때 사용 모스펫의 활용도는 너무 무궁무진 하지만, 일반적으로 사용하는 경우는 위의 경우들이다. 아두이노는 보통 5V 와 낮은 출력 전류를 갖고 있기에 모터를 구동하기엔 턱없이 부족하다. 따라서 이런 경우에 릴레이는 부피가 너무 커서 부적합하며 모스펫을 사용하는 것이 적당하다. 또한 모터의 방.. 2020. 9. 14.
아두이노에서 서보모터 SG-90 사용하는 방법 모든 기계에서 구동부로 사용되는 부품중 제일 많은 것이 바로 모터이다. 서보모터는 기계 중에서도 로봇을 제어에 엄청 많이 사용되고 있다. 서보모터는 안에 여러개의 크고 작은 기어들로 구성되어 있어서 힘(토크)이 세고, PWM 신호를 통해서 각도를 제어할 수 있다. -서보모터의 원리를 이해하고, 아두이노에서는 어떻게 사용할 수 있는지 알아보자. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 점퍼선(M-M) 서보모터를 사용하다보면 항상 헷갈리곤 하는게 GND가 뭐고, SIGNAL 선이 어떤 것인지이다. 신호선에 ▼ 삼각형 표시가 있으니, 앞으로는 헷갈려하지 말자! 아니면 주황색 선이 신호선이라는 것을 기억하자! 서보모터는 PWM 신호를 통해서 제어할 수 있다. 아두이노 우노에는 PWM 신호를 보낼.. 2020. 9. 14.
아두이노에서 적외선 근접센서 TCRT5000 사용하는 방법 아두이노를 사용함에 있어서 적외선 근접센서는 정말 손쉽게 접할 수 있는 센서이다. 쉽게 접할 수 있지만, 사용방법을 모르면 문제가 많은 센서이기도 하다. LED 이므로 +극과 -극을 정확하게 이해하고 사용해야 하며, LED 이고 적외선이기에 전압이 많이 흘러버리면 한순간에 타버려 고장나기 일수다. - 적외선 근접센서 TCRT5000 사용법을 정확하게 이해하고 사용하자. 원리는 정말 간단하다. 적외선 LED에서는 항상 적외선 신호를 발사해주고, 물체가 가깝다면 그 적외선 불빛의 반사량을 측정해서 가까운 정도를 측정하는 것이다. 약간 다른 식으로 사용한다면 검은색을 구분하는 센서로 사용하기도 한다. 검은색은 하약색에 비해서 빛을 반사하는 정도가 적기 때문이다. 예를 들면, 라인 트레이싱에 사용되는 것이 대표.. 2020. 8. 19.
피에조부저 수동, 능동 원리와 아두이노에서의 사용방법 경고 신호를 알려주는데 가장 흔히 사용하는 피에조부저에 대해서 글을 작성해본다. 컴퓨터 부저 비프음을 내는데에도 쓰인다. 수동과 능동의 차이는 간단하다. 능동부저는 5V 전원을 연결했을때, 소리가 난다. 수동부저는 5V 전원을 연결해도 소리가 나지 않는다. 능동부저는 단순히 소리를 내는데 사용되고, 수동부저는 음계를 사용해 멜로디를 낼 수 있다. 피에조부저는 주파수로 제어할 수 있다. 능동 부저는 단순히 +단자와 -단자만 조심히 하고, +단자에 디지털 신호를 주면 소리가 난다. 수동 부저는 음계에 맞는 주파수를 디지털 신호로 주어야한다. 사용되는 음계와 주파수의 관계는 위의 표를 참고하면 된다. - 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 점퍼선, 피에조 부저(수동 or 능동) int pie.. 2020. 5. 7.
초음파센서 HC-SR04 원리와 아두이노에서의 사용방법 초음파 센서중에서 가장 흔히 사용하는 HC-SR04 센서에 대해서 글을 작성해본다. 초음파 센서중에서 가장 저렴하며, 제일 쉽게 구할 수 있는 장점이 있는 센서이다. 각종 메이커톤, 발명대회에서 빠질 수 없는 센서 중 하나이다. 흔히 근접센서라고도 부른다. 초음파 센서는 초음파가 반사되어 오는데 걸린 시간을 이용하여 거리를 산출해낸다. 센서 전면부에 센싱을 하게 생긴 두개의 기둥이 존재한다. 하나는 발신부이고, 하나는 수신부이다. 발신부에서 초음파 파장이 발생되고, 직선상의 물체에 그 파장이 반사되어 돌아온다. 흔히 우리말로는 메아리 라고 하는 echo파장을 수신하고, 그 사이의 시간을 구하는게 핵심이다. 음속은 통상 340m/s 로 계산하는데, 등속운동이라는 가정하에 식을 세워보면 다음과 같다. [ t.. 2020. 5. 6.