푸시버튼은 눌렀을 때 인풋이 보드로 들어가는 가장 기본이 되는 센서입니다. 이 포스팅에서는 버튼을 눌렀을 때 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개를 다꼽아야 한다는게 문제내요-_-;결선 자체는 고만고만한데....완성된걸 보면 눈으로 선따라가는게 일입니다 ㅋㅋㅋ참고로 유니폴라칩에 바이폴라로 결선하면 아두이노가 죽습니다 ㅎㅎㅎ 보드구성은 ..
특정 구분자를 이용하여 문자열을 자르는 기능을 'Split'라고 합니다. C++용 'Split'를 구현하는 내용은 많은데 아두이노에 바로 적용할 수 없어서 아두이노용으로 다시 만들었습니다. 1. 구현 방법 스플릿을 구현하는 방법은 간단합니다. 1) 한 문자씩 검사를 한 다음 2) 구분용 문자가 나오면 잘라내고 3) 그 이후부터 다시 검사합니다. 이 과정을 반복하여 구분자를 잘라 냅니다. 문제는 언어마다 이 과정이 약간씩 다를 수 있다는 점입니다. 아두이노에서는 'indexOf'로 구분자의 위치를 찾은 다음 'substring'으로 문자열을 잘라내고 그 과정을 반복합니다. 2. 구현 이제 스플릿을 구현해 봅시다. void Split(String sData, char cSeparator) { int nCou..
왜 그런지는 모르겠지만지만 함수는 '원 리턴(One Return)'이 원칙입니다.(아마도 함수리턴값을 바로 사용하는 기능때문 인것 같네요.) 그래서 여러값을 받고 싶으면 C는 포인터를 이용하고 객체지향언어에서는 클래스(class, 모듈(Model)도 여기에 해당한다.)를 리턴 받는 방법으로 여러값을 받습니다. 언어에 따라 '파라메타 아웃풋(Parameter Output)' 같은 것을 지원 할수도 있습니다. ex> //C#의 경우 public int DataReturn(out string sData) 1. WCF는 객체를 리턴 할수 없다. 문제는 WCF는 객체를 리턴 할수 없습니다. 참고 : MSDN 포럼 - How do I pass a WCF class as a reference parameter? WC..
간만에 웹서비스를 써야 해서 WCF파일을 추가하고 서비스 참조를 했는데..... 어라? 이전과 달리 '[메서드이름]Completed'도 안보이고....뭐지?;;;; 예전에 실버라이트에서 한번 다뤘던 거라 이전 글을 확인해도 모양이 이상합니다;;; (참고 : [Silverlight] 1/4. 한 프로젝트에서 웹서비스 만들기) 1. 테스트 WCF 서비스 만들기 서비스는 간단하게 요청이 들어오면 5초대기를 한 후 받은 값에 문자열을 더해 리턴해주는 형식입니다. [ServiceContract] public interface IUsingAsync { [OperationContract] string GetName(string name); } public class UsingAsync : IUsingAsync { p..
WCF가 예전에 사용하던 방식과 달라 이것저것 테스트하다가 간만에 뜬 에러 크로스 스레드 작업이 잘못되었습니다. 아.... 예전에 WPF에서 한번 소개 하긴 했었습니다만 윈폼에서는 약간 다르죠. (참고 : [WPF] 다른 쓰레드에서 UI쓰레드 접근하기 - Dispatcher.Invoke) 연관글 영역 1. 일반적인 방법 일반적으로 인보크(Invoke)를 사용하려면 델리게이트(Delegate)를 만들어야 합니다. (참고 : MSDN - Control.Invoke 메서드) 일반적인 방법에서는 다음과 같은 순서로 인보크를 사용합니다. 1) 델리게이트 선언 2) 델리게이트에 연결할 함수 생성 3) 델리게이트와 생성한 함수 연결 4) 인보크로 델리게이트 호출 //1) 델리게이트 선언 /// /// 델리게이트 선언..
아무런 플러그인을 적용하지 않았다면 기본적인 자바스크립트로 'add'하거나 제이쿼리(JQuery)의 'append'를 이용하여 추가 할 수 있죠. 문제는 'Bootstrap-select'를 이용하면 되지 않는다는 것이죠 ㅎㅎㅎ 1. 레퍼런스(reference) 확인 뭔가 이상해서 레퍼런스를 확인해 봤습니다. (참고 : silviomoreto - bootstrap-select ) 아.... '부트스트랩-셀랙트'를 사용할 때 옵션이 변경되면 'refresh'를 호출하여 UI에 반영할 수 있다고 설명되어 있습니다. 2. 테스트해 보기 '부트스트랩-셀랙트'의 샘플이 잘돼 있어서 제가 따로 만들 필요가 없을 것 같긴 한데 한번 만들어 봅시다. 2-1. HTML 작성하기 이전에 작성했던 포스트에서 'select'태..