'L293D'는 스테핑모터를 제어할 때 쓰던 칩입니다. (참고 : [Arduino] L293D칩을 이용한 유니폴라 스테핑 모터(unipolar stepping motor) 제어) DC모터의 양방향 제어를 할때도 사용이 가능합니다. (참고 : 디바이스 마트 - L293D ) 'L293B'을 이용해도 됩니다. (참고 : 디바이스 마트 - L293B ) 모터는 'KR-300'와 'MDN-4RA3ETA' 사용 했습니다. (참고 : 디바이스 마트 - 서보형 DC모터 (KR-300), MDN-4RA3ETA ) 외부전원을 이용할 때는 'KR-300'를 아두이노 전원을 이용할 때는 'MDN-4RA3ETA'를 사용합니다. 1. 테스트 해보기 일단 아두이노가 아닌 손으로 배선을 수정하여 동작을 확인하기 위한 구성을 합니다..
스테핑 모터 제어에 사용한 ULN2004(ULN2003)칩은 DC모터를 단순하게 돌릴 때도 사용할 수 있습니다. ( 참고 : [Arduino] ULN2004(ULN2003)칩을 이용한 유니폴라 스테핑 모터(unipolar stepping motor) 제어 ) 여기서 '단순하게'라는 의미는 역방향으로 돌리는 것이 안 되기 때문입니다. 가격은 400원 정도 합니다. (참고 : 동신전자 - ULN2004A ) 모터는 KR-300를 사용 했습니다. (참고 : 디바이스 마트 - 서보형 DC모터 (KR-300)) 이 모터가 사용하는 전류가 '160[mA] +/- 40[mA]'이기 때문에 아두이노가 공급하는 '40mA'보다 많기 때문에 아두이노보드가 죽는 현상이 있습니다 ㅡ,.ㅡ;;; (잘못하면 아두이노가 망가집니다..
인텔에서 아두이노 호환보드로 갈릴레오라는 보드를 내놨습니다. (참고 : Arduino - Intel Galileo) 아두이노 호환보드라는 것은 아두이노에서 돌아가는 하드웨어와 소프트웨어를 그대로 사용할 수 있는 보드를 뜻합니다. 그런데 MS에서 인텔 갈릴레오 개발 보드에 올릴 수 있는 윈도우 8.1을 공개했습니다 ㅡ.ㅡ (참고 : MS, 사물 인터넷 개발을 위한 개발자용 윈도우 프리뷰 버전 공개) 사물 인터넷과 개발보드 사물 인터넷 제품이라는 것은 일반적인 제품들에 인터넷이 연결하여 다양한 동작이나 데이터수집이 가능해진 제품을 말합니다. 이런 제품들을 개발 할 때 필요한 것이 개발 보드라는 것입니다. 저도 이런 제품을 다루기 위해 하드웨어를 공부했는데.....쉽지 않습니다 ㅋ 그래서 소프트웨어 개발자도 ..
아두이노는 자체적으로 멀티쓰래드를 지원하지 않습니다. 그러다 보니 쓰래드 작업을 하고 싶으면 방법이 없죠. 결론부터 이야기하자면 아두이노에서 다른 언어의 쓰래드와 같은 동작을 하는 구현은 불가능합니다. 지금부터 소개할 라이브러리도 시분할로 쓰래드처럼 보이도록 해둔 것이지 쓰래드라고 볼 수 없죠. 1. 'ArduinoThread' 프로젝트 깃허브에 'ivanseidel'라는 분께서 만든 프로젝트입니다. (참고 : github - ivanseidel / ArduinoThread ) 소스코드를 보면 우리가 생각하는 쓰래드처럼 동작하지 않을 것 같습니다. 구현된 방식이 아두이노의 'loop()'에서 쓰래드 컨트롤러를 지속해서 호출하면서 타이밍 맞을 때 쓰래드로 지정한 함수를 호출하는 방식입니다. 구조만 봐서는 ..
스텝모터와 스텝모터 제어용칩을 여러가지 테스트하다보니 불편해서 컴퓨터없이 전원만 넣고 테스트할 필요성을 느꼈습니다. 1. 기획 테스트를 위한 기능은 2가지입니다. 속도 조절과 앞과 뒤로 움직이는 동작 입니다. 스텝모터는 스텝을 조절할 수 있지만 7세그먼트나 LCD없이 스텝을 조절하는 동작을 넣는건 사용상 데이터를 보여주기 힘들기 때문에 1회전을 기준으로 합니다. 속도조절의 경우 증가/감소 각각 스위치를 넣는 것도 좋지만 정밀하게 속도 조절을 할것이 아니기 때문에 누를때마다 속도가 증가하다가 최대치가 되면 다시 0이 되도록 하는 것이 인터페이스상 더 좋을것 같습니다. 정리하면 속도조절 : 스위치 1개를 이용하여 속도 증가. 속도를 표시하기위해 LED의 발기를 조절 한다. 앞/뒤 회전 : 속도조절값을 기준으..
푸시버튼은 눌렀을 때 인풋이 보드로 들어가는 가장 기본이 되는 센서입니다. 이 포스팅에서는 버튼을 눌렀을 때 LED에 불이 들어오는 동작을 통해 푸시버튼을 사용해 봅시다. 연관글 영역 1. 보드 구성 간단하면서도 간단하지 않은 배선입니다 ㅎㅎ 2번 핀을 스위치의 입력으로 사용합니다. 7번 핀을 LED 출력으로 사용합니다. 저항은 10k를 썼습니다. 2. 펌웨어 작성 스위치가 눌리면 LED가 들어오게 해야 하는데..... 직접 스위치에 배선하지 않고 아두이노에 연결하여 값을 받아 LED를 켜게 되면 문제가 하나 있습니다. 아두이노의 반복 주기에 따라 스위치값을 읽지 못하거나 생각했던것 보다 여러 번 작동할 수 있죠. #define LED2 #define BTN 7 int m_nBtn = 0; void se..
이전 글에서 'Stepper.h'는 '.step()'이 동작하는 동안 다른 동작을 할 수 없다는 것을 이야기하였습니다. (참고 : [Arduino] 'Stepper.h'는 두개의 모터를 제어할 수 없다.) 그래서 'Stepper.h'를 약간 개조하여 한번에 여러 개의 동작(스탭모터라던가 led같은 것들)을 할 수 있도록 수정하겠습니다. 연관글 영역 * Stepper library for Wiring/Arduino - Version 0.4 기준 입니다. * * 2023-06-06 기준 최신버전은 5버전입니다 -> Stepper Async 5 * 참고 : [Arduino] Stepper Async 5 - 비동기 스탭 모터 라이브러리 1. 기존 라이브러리 분석하기 저번 글에서도 잠깐 이야기했습니다만 기존 라이..
'Stepper.h'는 아두이노에서 스태핑모터를 다룰 때 기본적으로 사용하는 라이브러리입니다. 예전부터 뭔가 이상하다고 했는데..... 'Stepper.h'의 '.step()'를 호출하면 모터의 동작이 끝나기 전에 다음 코드가 동작하지 않는다는 것을 느꼈습니다. 연관글 영역 1. 테스트해 보기 테스트는 간단합니다. '.step()'의 앞뒤로 LED를 끄고 켜 봅시다. 결선은 이전에 썼던 'ULN2004'을 이용한 스텝 모터 구성에 led만 추가합니다. (참고 : [Arduino] ULN2004(ULN2003)칩을 이용한 스테핑 모터(stepping motor) 제어) 코드는 다음과 같이 심플하게 만듭니다. #include #define LED 13 Stepper stepper(200, 8, 9, 10, ..
아두이노에 직접만든 라이브러리는 추가하는 것은 별거 없습니다. c++스타일로 클래스를 만들고 아두이노 프로그램에서 불러오면 되죠. 이 포스팅에서는 라이브러리를 직접 만들고 내 아두이노 프로젝트에 추가하는 방법을 다룹니다. 1. 테스트용 라이브러리 만들기 헤더에 코드를 몰아넣어도 상관없고 '.h'와 '.cpp'로 나누어 만들어도 상관없습니다. 이번 예제에서는 둘 다 할 수 있도록 코드를 만들었습니다. 1-1. 헤더 만들기 헤더는 다음과 같이 만듭니다. 를 인크루드 하는이유는 아두이노 셈플에 있어서 인데.... 아두이노의 어떤기능을 사용하느냐에 따라 없어도 에러가 나지 않습니다. "arduino.h"도 마찬가지 입니다. 이 예제에서는 "String"를 사용하기 때문에 "arduino.h"가 꼭 있어야 합니다..
오늘 소개할 'SN754410NE'칩은 바이폴라용 칩입니다.이제까지 소개한 칩들은 유니폴라용 칩이였죠.(참고 : 디바이스 마트 - SN754410NE) 요번에 산 모터가 바이폴라인줄 알았는데 막상 받아보니 하이브리드내요 ㅡ.-;;;그래도 바이폴라용 칩을 받은김에 바이폴라 구성을 해봤습니다. 테스트에 사용한 모터는 'FL42STH33-0956A'입니다.하이브리드 모터 입니다.(참고 : 디바이스마트 - FL42STH33-0956A) 1. 보드 구성원래 바이폴라 결선이 유니폴라보다 어렵다고 합니다.어려운건 둘째치고 16개를 다꼽아야 한다는게 문제내요-_-;결선 자체는 고만고만한데....완성된걸 보면 눈으로 선따라가는게 일입니다 ㅋㅋㅋ참고로 유니폴라칩에 바이폴라로 결선하면 아두이노가 죽습니다 ㅎㅎㅎ 보드구성은 ..