릴레이로 가전기기 제어하기

아두이노로 LED를 제어하여 ON/OFF 제어를 해보신 분들이라면 주변에서 널리 사용되고 있는 가전기기들도 ON/OFF 제어를 해보고 싶은 마음이 드실 겁니다. 이때 사용되는 전자부품으로 릴레이(Relay) 입니다.  보통 릴레이라고 하면 코일이 감겨진 전자석에 제어 전류를 흘려주면 그 자력으로 스위치의 접점부가 ON/OFF 되도록 설계된 기계식 릴레이가 많이 사용되고 있습니다.

 

 

사진.코일형 릴레이


조금? 다른 릴레이 SSR


오늘 실험에선 보통의 릴레이와 동일한 기능을 해주지만 좀더 사용하기 쉬운 SSR이라는 재밌는 전자부품을 사용하였습니다.
반도체 기술의 발달로 기계식 코일내장형 릴레이의 기능을 반도체 소자로 대체한 것이 SSR(Solid State Relay; 무접적 반도체 릴레이)입니다.  상대적으로 좀더 비싼편이지만 사용의 편리성과 안정된 성능으로 전기회로에 익숙치 않은분들이 가전기기의 제어용 릴레이로 사용하시기 좋은 부품입니다.

하지만, SSR도 용도별로 수많은 종류의 제품이 있어서 고르기가 쉽지만은 않습니다.
본 글에서는 4~32V의 직류 전원으로 240V 15A 까지의 교류 부하를 제어할 수 있으며, 납땜 작업 없이도 전선을 체결할 수 있는 볼트 결합단자가 제공되고, 보호 커버까지 장착된 SSR 제품을 선정하여 사용하였습니다.

 

 

 

사진. SSR 저전압(4~32V) 직류로 고전압 교류(240VAC) 부하를 제어하는 제품예

시중엔 이 제품보다 저렴한 제품이 많이 있지만, 일단은 사용하기 쉽고 편리한 제품의 사용을 추천드립니다.

SSR 의 특징
 .기계식 접점이 없으므로 접촉시 발생되는 노이즈가 없고 내구성이 우수합니다.
 .제품에 따라 매우 낮은 전압(가령 4~32V 직류)로 제어 할 수 있습니다.
 .코일형에 비해 상대적으로 매우 작은 전류만 소모합니다.
 .부하측 회로와 제어회로와의 우수한 절연성


릴레이 구동 회로

기계식 접촉식 릴레이를 사용할 경우 코일에 의한 역기전력이나 구동전류의 고려가 필요해지므로 제어측  회로가 좀더 복잡해집니다.  SSR의 경우 보통 입력신호측과 부하측이 전기적으로는 절연되어있고 광신호만 전달되므로 코일에 의한 역기전력이나 부하측과의 전기 절연에대해 고려할 점이 적어 회로가 매우 간단해 집니다.  6V건전지로 구동되는 스위치를 연결하거나 아두이노 같은 마이크로 콘트롤러의 디지탈 출력단자(5V출력)를 그대로 직결할 수 있습니다.


 

 

그림1. SSR로 전등 제어하는 초간단 회로도

주의 사항.
본 회로는 저전력 소모용 가전기기나 전등의 제어를 위한 것이며, 고전력 및 코일형 기기를 제어하는 경우 부가적인 안정화 회로가 필요할 수 있으며 고전류 구동시 방열을 위해 SSR의 밑면을 히트싱크(방열판)에 결합하여 사용해야 합니다. 또한, 전원 플러그와 소켓에는 안전을 위해 접지선까지 연결해 주실 것을 당부드립니다.


실험1. 6V건전지와 스위치로 220V 전등 ON/OFF하기

소개해 드렸듯이 입력측에 4~32V의 직류전압을 가하면 릴레이가 연결되고 교류회로가 작동되게 됩니다.  랜턴에 많이 사용되는 6V 건전지로 전등을 제어해 보는 장면입니다. 가장 단순한 회로의 예입니다.

실험2. 아두이노로 220V 전등 ON/OFF 제어하기

아두이노를 통한 제어도 원리상 동일합니다.  아두이노의 디지탈 출력핀에 High를 출력하면,  약 5V 전압이 출력됩니다. 그대로 SSR의 입력측에 연결해주면 LED를 ON/OFF하듯이 220V 전등이 ON/OFF 되게 됩니다.


너무 간단하죠 ^^.
하지만 220V는 간단치 않습니다. 잘못 만지면 크게 다치거나 돌아가실 수 있으니 주의해서 다뤄야합니다.
아래의 구성 예는 참고만 하시고, 스스로 충분히 안전에대한 준비가 되셨을때 스스로 충분히 검증을 하신 후 시도하시기 바랍니다.


주의사항 및 경고. 
본 글의 내용은 오류가 있을 수 있으며, 초보자들이 실습을 하기위해 필요한 모든 사전지식을 포함하고 있지 않습니다.
220V 교류 전원을 부주의하게 다루면 크게 다치거나 생명을 잃을 수 있습니다.  적절한 경험과 사전지식을 탐구한 이후에 주의하여 시도하시기 바랍니다.  여러분이 행한 실험에 대하여 저자는 어떠한 책임도 질 수 없습니다.


릴레이로 제어되는 콘센트 플러그 세트 만들기

이하, 위의 동영상에서 사용된 릴레이로 제어되는 콘센트 플러그를 만드는 방법을 소개해 드립니다.


 

 

1단계. 기본 재료:

플러그 암수 세트, SSR, 규격에 맞는 압착단자, 교류220V용 케이블(1.5mm 이상)

도구: 니퍼와 플라이어(뺀찌), 드라이버

 

 

 

플러그 부분에 부하선을 결합해 줍니다.

 

 

 

전선이 빠지지 않도록 매듭을 묶어주면 빠지지 않게됩니다. (매듭은 속에있어서 안보여요;;)

 

 

 

전용 압착단자를 이용하면 편리합니다.

 

 

 

 

 

 

플라이어로 꽉 눌러줘야 합니다.

 

 

 

 

 

 

 

암플러그 쪽에도 전선을 결합니다.

 

 

 

전선빠질 공간을 칼로 깍아냈습니다.

 

 

 

보통 잘라낼 수 있도록 미리 공간이 마련되어 있습니다.

 

 

 

이렇게 연결할까나~

 

 

 

 

 

요렇게 연결해 주시면 볼트가 풀려도 전선이 빠져나가는 사고는 미연에 방지할 수 있겠죠?!

 

 

 

회로도 보시면 어떻게 연결되는지 쉽게 아실 수 있으시죠?

 

 

 

건전지로 구동되는 아두이노라도 Okay입니다.

 

 

 

아답터 전원도 물론 좋구요

 

 

 

 

 

 

 

 

 

 

 

완성된 상태 여러장면들...


관련 제품 링크
 .무접접 반도체 릴레이 SSR
 .아두이노 Arduino
 .450/750V 기기배선용 절연선
 .전원플러그 220V형
 .전원 콘센트 1구형

추가 정보
아트로봇샵에서 취급중인 기계식 릴레이E형 제품의 사용법을 궁굼해하시는 분들이 계셔서 연결 예시 이미지를 추가로 올려봅니다.  예제에서는 12V전원에서 구동되는 모터를 아두이노에서 제어하기 위해서 릴레이E형과 아두이노를 연결한 모습입니다.

 

 

추가안내 사항.  2014.8.23일

전기기사님께서 댓글로 알려주신 정보입니다.  제가 예제소개시 사용한 전선의 색상(녹색)이 적절한 선택이 아니었던것 같습니다.  녹색 전선은 전기공사시 접지용도로 사용되어야하는 규칙이 있다고 하네요.  전기배선함이나  전등 스위치 단자를 열어보면 검정색선을 보통 사용하는것을 봤는데  나름대로 규칙이 있는것 같습니다. 이런 사항도 파악하셔서 꼭 지켜주시는것이 좋을것 같습니다.  좋은 정보 알려주신 익명의 전기기사님께 감사드립니다!!!

참고로 저전압을 사용하는 전자회로에서는 검정색은 GND 접지선으로 보통 사용됩니다.  고압을 사용하는 전기선과 서로 많이 다르네요 TT    이와 관련하여 어떤 역사적 스토리가 존재하는지 궁굼해집니다....   

 

 

 

오늘 소개해 드릴 녀석은 

EL 씨퀀서 아두이노 호환 보드(EL Sequencer)

  입니다.

일전에 소개해 드린(

인버터로 발광선 구동 안내기

) EL Wire 를 단순히 켜거나 점등하는 것으로는 부족하신 분들을 위한 시퀀서(제어/콘트롤) 보드입니다.
본 제품은 아두이노와 동일한 ATmega328칩을 내장하였고 아두이노 호환보드로 설계되어 일반 아두이노와 동일한 스케치(Sketch) 개발환경을 이용할 수 있으므로 비교적 손쉽게 EL Wire를 제어할 수 있게 해줍니다.  유사한 기능을 하지만 ATmega칩이 없이 아두이노 UNO에 장착하여 사용할 수 있는 쉴드형 제품(

아두이노용 EL제어 쉴드(EL Escudo)

도 있습니다.


EL Sequencer 프로그래밍 방법 소개

스케치에서 보드 선택은 "LilyPad Arduino w/ ATmega 328"  로 해주시면 됩니다.

아두이노 프로그래밍을 위해선 LilyPad나 Pro, Pro mini 와 동일한

FTDI USB시리얼 변환기

를 사용하시면 되며 5V형과 3.3V형 둘 다 사용 가능합니다.  FTDI보드 연결을 위한 6 Pin 핀홀에  일반 12mm 길이의 핀헤더나  90꺽인 핀 헤더를 납땜 후, FTDI보드를 연결해주시면 됩니다.   아래의 사진을 참고 하세요.

[사진. EL Sequencer 와 FTDI USB시리얼 변환 보드 연결방법]

참고로, 프로그래밍시엔 EL 인버터 전원을 꺼줄 것을 권장드리며,  전원 선택 스위치를 BAT가 아닌 USB 쪽으로 밀어주면, 보드 전원을 PC에 연결된 FTDI보드에서 공급받게 되므로 별도의 전원이나 배터리를 연결할 필요가 없습니다.

참고로, 총 8개의 EL Wire를 제어할 수 있으며 각각의 EL_Wire 단자마다 ON/OFF Relay역활을 해주는 TRIAC 소자를 이용해 인버터로 부터 나오는 교류 100~200V정도의 전원을 EL_Wire에 공급 여부를 선택하여 EL Wire를 ON/OFF 하게 됩니다.

프로그래밍 방법은 매우 간단하며, 아두이노를 처음 시작할때 배웠던 LED Blink 예제와 비슷한 수준입니다.
해당 디지탈 핀을 출력모드로 설정 후,
    pinMode( 2, OUTPUT);  // EL_A 단자 해당 디지탈핀(D2)를 출력모드로 설정

High 나 Low 신호를 출력하여 해당 디지탈핀의 출력을 제어하면, LED 가 ON/OFF 되듯이 EL_Wire가 ON/OFF 됩니다.

    digitalWrite( 2, LOW);  // EL_A 단자(D2)에 연결된 Wire 끄기
    digitalWrite( 2, HIGH);  // EL_A 단자(D2)에 연결된 Wire 켜기

가령 EL_A 단자에 연결된 EL Wire를 켜고자 한다면  아두이노 D2 핀 출력을 HIGH 로 설정해 주면 됩니다.

시퀀서 보드의 핀연결은 아래와 같이 되어 있습니다.

EL_단자와 대응되는 Arduino Digital Pin번호
 
Atmega328 핀번호
EL_A D2 PD2
EL_B D3 PD3
EL_C D4 PD4
EL_D D5 PD5
EL_E D6 PD6
EL_F D7 PD7
EL_G D8 PB0
EL_H D9 PB1

[표1. Pin Map]


매우 간단하고 응용하기 쉬운 예제 소스는 아래의 링크자료를 참고하시기 바랍니다.  튜토리얼 내용중에 GND끼리 납땜하는 작업은 안하셔도 됩니다. 패숑~드자이너 여러분께서는 튜토리얼 보시고 EL Wire를 활용한 패션쇼 한번 만들어보시기 바랍니다.  소스에 대해 몰라도 그냥 Copy/Paste 하셔서 Upload버튼만 눌러주시면 휘황찬란하게 8개의 EL Wire가 점등되는것을 보실 수 있습니다.

패션쇼 응용사례 소개 및 프로그래밍 소스예제 링크
 .

패션쇼용 EL Wire프로그래밍 따라잡기

( 출처: Makezine.com )
 .

위 튜토리얼에서 사용된 아두이노 소스 다운로드

EL Sequencer 프로그래밍 하기 동영상 소개

동영상1. 프로그래밍을 위한 FTDI 보드 연결방법

동영상2. 스케치 프로그래밍

동영상3. 인버터와 발광선 연결 후 실제 작동장면



부록. EL Wire 연결 방법

기본 장착된 EL Wire 연결 단자는 2pin JST 규격이므로  JST 2pin 커넥터가 연결된 EL Wire를 사용하면 그대로 연결 할 수 있습니다.  하지만, 모든 연결 단자 옆에 2pin 핀홀이 따로 있으므로 이곳에 원하는 규격의 단자를 연결하여 사용할 수 도 있습니다. 

 

 

[사진. JST 2pin 단자가 연결되어있는 EL Wire와 JST 2pin 케이블]

 

[사진. JST 규격 케이블과 JST Female 단자 ]


발광선(EL Wire)의 최대 장점중의 하나는 비교적 가공이 쉽다는 것입니다. 네온램프의 경우 일반인이 원하는 길이로 절단하고이를 원하는 모양으로 휘어서 가공하는 것이 가능할 지 모르겠습니다만, 발광선은 직접 원하는 크기로 잘라서 사용하실 수 도 있습니다. 이에관한 자료는 아래의 링크 정보를 참고하시기 바랍니다.

관련정보:

EL Wire 도움글:  http://www.ladyada.net/learn/el-wire/
EL와이어 작업방법: http://www.sparkfun.com/tutorials/130
EL wire 기타 예제:  http://www.digitalmisery.com/projects/halloween/el-ladder/

 

 

모드킷이 오픈공개 베타 테스트를 시작했습니다.

모드킷은 그래픽 언어로 프로그래밍하는 개발환경을 웹브라우져에 탑재하는 신선한 아이디어를 바탕으로 범용 아두이노 보드 및 자체 개발된 MODKIT 모터쉴드 등의 하드웨어를 손쉽게 제어하는 통합환경을 제공하고 있습니다.

일전에도 소개해 드린적이 있지만, 비공개였으므로 사용을 못해오다가 오늘 직접 테스트를 할 수 있게되어 간단한 테스트 작동을 해봤습니다.  정말로 작동이 되네요 ^^.

아직은 Beta Preview 상태입니다. 앞으로 이것저것 개선이 많이될 듯 합니다.

체험해 보시려면 우선,

http://www.modk.it/

에 접속하세요

Modkit is an in-browser graphical programming environment for microcontrollers. Modkit allows you to program Arduino and Arduino compatible hardware using simple graphical blocks and/or traditional text code. Modkit's graphical blocks are heavily inspired by the Scratch programming environment developed by the Lifelong Kindergarten Group at the MIT Media Lab.
Getting Started

Our first public previews are live! We know many of you have been following the project and can't wait to try it out. If you're a PC or Mac user, you can go ahead and download the desktop component that you'll need to connect to your device from the online Modkit editor and get started. A Linux version is coming soon so check out our blog to follow our progress. Read More or view the old site.


OPEN ID를 사용하여  google id를 그대로 사용가능합니다.

처음 실행하시는 분이라면 지금은 모드킷 UI를 실행해도 아두이노와 연동이 안됩니다.

모드킷의 UI는 최신의 주요 웹브라우져만으로도 가능하지만
하드웨어 연동을위한 데스크탑 컴포너트의 설치가 필요하기 때문입니다.

관련 컴포넌트는

http://www.modk.it/download

  에 가서 다운로드받아서 설치합니다.

헉, 설치파일의 용량이 43.8MB나 되네요;;


현재  MAC과 Windows를 지원하네요  리눅스도 준비중이랍니다.

(2011.5월 3일 현재)  UNO, Duemilanove, Diecimila, 모터쉴드, LilyPad 를 지원합니다. 다른보드도 지원계획중이라네요
지원 브라우져는    Chrome, Safari 3.1+ ,Firefox 3.5+  입니다.  IE는 안되나봅니다;;


레고 블럭을 쌓는 형태로 프로그래밍을 하여 모터쉴드를 제어해보는 동영상을 참고하시기 바랍니다.





오늘은 물라스틱(물 플라스틱 Plastic)을 소개해 드리겠습니다.
뜨거운 물로 녹여서 몇번이고 재가공하여 사용할 수 있는 무악취, 무독성의 DIY 프로토타입 제작용 플라스틱입니다.

플라스틱은 그 가공성이 뛰어나고 그 물성도 다양한 용도에 맞게 개발되어 그 어떤 재료보다 많이 활용되는 소재들의 대표명입니다.  하지만 보통 플라스틱 가공을 집에서 하는것은 여러가지 이유로 어렵습니다.  재료 입수도 어렵지만 제조방법 및 도구, 제조 중 발생하는 해로운 가스등의 문제로 개인이 자작용으로 사용하는것은 곤란합니다.

하지만, 일부 특수 플라스틱의 경우 온도만 적절히 높혀주면 쉽게 가공이 가능하고, 몇 번이고 재 가공이 가능한 경우도 있습니다.

드디어 로보밥 얼뚱연구소에서도 그중의 한 제품을 입수하여 테스트를 진행해봤습니다.  유사한 제품들이 해외에서 제조 판매되고 있지만, 제품마다 차이가 있을 수 있고 공식적인 한국어 명칭도 없는것 같아, 물로 녹여서 손쉽게 가공이 가능한 특징을 일컬어 물라스틱(물 플라스틱이란 의미로)이란 이름을 정해봤습니다.  일반적으로 유사기능의 플라스틱을 엔지니어링 플라스틱이나 써모플라스틱이란 용어로 칭하기도 하지만 조금 다른 의미이거나 소재의 차이에따라 큰 차이가 있으므로 마찬가지로 정확한 명칭이라 할 수는 없겠네요. 물라스틱~  제 느낌엔 나쁘지 않네요!

물라스틱 사용해보기

원 재료의 형상
본 글에서 소개해 드릴 제품의 경우,  쌀 알 크기의 흰색 알갱이 형태로 가공되어 있습니다.
60~70도 정도로 가열되면 투명해지며  말랑 말랑해져서 원하는 형태로 가공할 수 있게 됩니다.
보통은 뜨거운 물에 담가두고 기다리면 가공하기 좋게 변하지만, 원하면 다른 가열기구를 이용할 수도 있습니다.

[사진1] 물라스틱 알겡이들

준비물

  • 물라스틱 50g 
  • 가열기구
  • 가열용 용기
  • 집게(드라이버 등)
  • 온도계(없어도 될 듯)

물라스틱 요리 시작!

1. 물 데우기

몇 달전, 낡아서 버리려던 전열 냄비를 안버리고 남겨두길 잘했던것 같습니다.
전기 냄비? 비슷한 제품인데 어느정도 온도설정 기능도 있어서 물라스틱 가공용으로 적절한것 같네요
물을 넣어주고 가열해 봤습니다.

[사진2] 재사용 되는 물라스틱 부스러기들

2. 재료넣고 보글 보글 조리하기^^.

보글 보글 끓는 물에 물라스틱 알겡이들을 넣어주고 드라이버로 휘졌는 느낌이 마치  요리하는 기분이네요 ^^.
[사진2]은 이미 한번 가공되었던 재료 부스러기를 녹여서 재사용하는 장면입니다.(녹여서 재 가공이 정말 가능하네요)
처음엔 제빵용 비스킷 틀에서 재료를 녹이려했지만, 그냥 냄비에 넣고 녹이는게 반응이 빨라서 좋더군요
온도만 적절하면 1분도 안되어 흰색이 없어지고 투명해지며 서로 엉겨붙는 상태가 됩니다.

[사진3]가열되어 투명해진 물라스틱

이제 집게를 이용하여 재료를 꺼냅니다.
이상하게 제 경우엔 꺼내자 마자 손으로 만져도 그다지 뜨겁지는 않더군요
하지만 화상에 주의하시기 바랍니다.

 

이렇게 투명하고 말랑거리다가

 

식으면 흰색으로 변하면서 단단해집니다.

 

PET병 사용하시면 안되십니다!

 

왜냐하면 들러붙습니다;;

주의. 처음엔 마땅한 작업 용기가 생각나지 않아 생수통(PET)에 데운물을 넣고 재료와 혼합하는 방법을 썼었는데요
어떻게 되었을까요?  여러분은 이러시면 아니되옵니다.
PET와 물라스틱이 서로 좋다고 들러붙어서 어지간해서는 떨어지지 않네요 ^^.
이 녀석들 떼어 놓으려고 시간좀 소비했습니다. ;;  

참고로 아무리 무독성이라고는 하지만, 음식 조리용 기구를 이용하는건 비추천드립니다.
물라스틱을 녹이면서 별다른 냄새나 불쾌함은 없었지만, 그래도 안전을 위해 사용하지 않는 기구들을 이용하시기 바랍니다.
물론 입에 넣는것도 삼가하시고요, 아이들에게는 주지 마세요;;  제가 성분 조사를 한건 아니니까 먹어도 안전하다고 보증 할 수는 없네요

3. 모양 만들기

이제 말랑 말랑해진 물라스틱을 원하는 모양으로 가공합니다.
제가 화학약품 냄새에 민감해서 화장품냄새만 맡아도 머리가 아픈경우가 많은데요
보글보글 끓이고 손으로 만지작 거려 봤지만 불쾌한 냄새같은건 나지 않았습니다.
그리고 손에도 들러붙거나 색이 묻어 나는일도 없는 정말 깔끔한 재료네요
왁스나 기타 조형용 점토들의경우 냄새와 끈적임등으로 사용감이 별로 좋지 않았던 기억이 있습니다.

글루건 등으로 부분 가열하여 모양을 잡을 수 도 있으며,
케스팅 틀에 녹여넣어서 형태를 만들 수 도 있습니다.

제경우 아직 별다른 디자인이 없이 만지작 거리다가 30 x 30 x 30 mm 크기의 큐브와 두개의 연결된 고리를 만들어 봤습니다.
총 사용된 재료량은 50g 정도입니다.  큐브는 별다른 용도가 없고;;, 플라스틱 고리는 만들어 놓고 보니
플라스틱 물성 측정용으로 좋을것 같아서 테스트를 해봤습니다. 생각 이상의 결과를 보고 저도 놀랐습니다.
아래에 플라스틱 고리 테스트를 참고하시기 바랍니다.

[사진4] 50g으로 만든 큐브와 연결고리


[사진5] 내구성 테스트에 사용된 물라스틱 고리

4. 물라스틱의 인장력 테스트

만들어 놓은 물라스틱 고리를 보고 생각 난 것이 이 고리가 얼마나 무게를 지탱할 수 있을까? 였습니다.
그래서 손으로 힘껏 당겨봤더니 끄떡도 안하더군요, 그래서 좀더 구체적인 실험 결과를 얻기위해
삼다수 12Liter(약 12Kg)들이 팩을 고리로 들어올려 봤습니다.
멀쩡하네요...  흔들어 봐도 마찬가지였습니다.
그 이상의 무게도 버틸것 같네요  아마도 제 몸무게정도는 무리없이 버틸 기세였습니다.
참고로, 굵기가 10mm가 안되는 고리였으며 얼마의 힘까지 버티는가? 는  안해봐서 모르겠습니다.;;


[사진5] 인장력 테스트에 사용된 물라스틱 고리와 12L생수팩

[]12Kg 무게 지탱 테스트 장면


[동영상] 삼다수 고리 테스트

 

 

 

 

 

 

 

 

 

손바닥 프린터 사용기

오늘도 재밌는 제품을 소개 시켜드리겠습니다.
누구보다도 제가 갖고싶었던 아이템인지라 손에 잡히는 날(오늘)로 사용테스트를 해봤습니다.
예전부터 손바닥만한 휴대형 프린터를 갖고 싶었는데 아직 세상에 그런 제품이 안나왔네요.
대신, 도처에서 이미 많이 활용되고 있는 열전사 방식의 소형 프린터를 입수하게 되었습니다.
여기서 소개하는 제품은 TTL 레벨(5V) 시리얼 통신 제어로 간단히 제어가 되는 10만원 이하의 일명(자칭)

손바닥 프린터

입니다.

쉽게말하면, 전원선 빼고 전선 2가닥만 TX/RX핀에 연결해주면 아두이노 같은 손바닥 컴퓨터로 곧바로 제어가 가능합니다. 정말 군침도는 아이템이네요 ^^.

간단한 문자 출력과, 바코드 출력, 비트맵 출력이 가능하므로 다양하게 응용이 가능합니다.

참고로, 아두이노 UNO는 하드웨어 시리얼 통신포트가 1개 있으나, 본 예제에선 편리한 테스트를 위해서
하드웨어 시리얼 통신포트는 PC와의 연결에 사용하고, 실제 프린터와의 통신은 소프트웨어 시리얼을 사용하였습니다.
이렇게하여 PC측에서 사용자 입력을 받아서 프린터 테스트를 할 수 있게됩니다.
물론, PC없이도 아두이노 만으로도 모든 기능의 작동이 가능합니다.

※ 소프트웨어 시리얼 이란?
 아두이노와 같은 마이크로 콘트롤러들을 대게 하드웨어 시리얼포트를 제공합니다.
하드웨어 지원이라 속도,안정,사용편리성이 모두 우수합니다만 개수 제한이 있으며
아두이노 UNO의 경우 1개만 제공됩니다.(참고로, Mega 2560은 4개 지원)
이럴때 여러기기와 시리얼 통신이 필요할 경우에 사용하는 것이 소프트웨어 시리얼입니다.
범용 디지탈핀을 소프트웨어적으로 제어하여 시리얼 통신을 가능케하는것이므로,
성능과 충돌가능성에 좀더 제약이 있는편입니다.
하지만, 적절히 사용하면 편리하게 이용할 수 있겠죠.
현재 아두이노 스케치에서도 기본적으로 소프트웨어시리얼 라이브러리가 포함되어 있습니다.
본, 예제에선 기본제공 라이브러리가 아닌 다른버전의 라이브러리를 사용하므로 따로 설치 해줘야 합니다.


자 이제, 정말 되는지 예제소스를 바로 실행해봤습니다.
아래의 절차를 참고하시기 바랍니다.


A. 하드웨어 준비

 1. 전원선 연결(vcc,gnd)
프린터 + - 전원선을 5V ~ 9V 전압에 연결해줍니다. (5~9V 정전압, 최소  2A 이상 전력 요함)
프린터 자체 전력소모가 큰 편이므로 PC측 USB케이블로 공급되는 전원을 사용하면 절대 안되고
전용 아답터전원을 이용하시기 바랍니다. 제 경우 테스트 전용 PC파워에서 공급되는 5V전원을 사용하였습니다.
(작동시 1.3A정도의 전류가 소모되므로 최소 2A이상 지원되는 전원 요함, 9V 1A급 전원에서 정상작동이 안되는것을 확인하였습니다.)


 2. 통신선 연결(tx,rx,gnd) 

아두이노 하드웨어 시리얼포트로 프린터와 연결할 경우,
프린터 TX단자 출력선을 아두이노 측 RX입력(D0)에 연결하고
프린터 RX단자 출력선을 아두이노 측 TX출력단자(D1)에 연결합니다.
GND는 아두이노 GND에 연결합니다.

하지만, 본 사용기(예제소스)에서는 아두이노 하드웨어 시리얼포트(D0핀, D1핀)를 PC측 디버그 통신용으로 사용하므로
프린터 TX단자 출력선(녹색)을 D2(소프트웨어 RX핀)에 연결하고
프린터 RX단자 출력선(노란색)을 D3(소프트웨어 TX핀)에 연결합니다.
프린터 GND와 아두이노 GND를 공통 연결합니다.

참고로, 여기서, D2, D3은 아두이노 디지탈 핀번호이고, 소프트시리얼 핀 정의에 따라 다른 핀을 사용할 수 도 있습니다.

참고로, 소프트웨어 시리얼 통신을 위해서 본 예제는 NewSoftSerial 라이브러리를 사용했습니다.
라이브러리 이용법은 아래에서 설명


B. 예제소스 실행 준비

 제품소개 페이지에 링크된 아두이노 예제 소스를 다운받아서 살펴봅니다.
 아마도 예제를 실행하면 오류가 뜰겁니다.
 본 예제는 특정 소프트웨어 시리얼 라이브러리를 사용하므로 NewSoftSerial 라이브러리를 설치해줘야 정상 작동하기 때문입니다.
물론, 응용에따라 하드웨어 시리얼포트를 사용하거나 다른 라이브러리를 사용할수도 있습니다.
 위 아두이노 예제소스를 테스트하려면 아래와 같이 준비해야합니다.
 
 일단, pbe소스 상단에있는 안내문을 주의깊게 읽어주시기 바랍니다.
 
 NewSoftSerial 라이브러리는 아래의 링크에서 다운받을 수 있습니다.

 
.newSoftSerial 소개 페이지 [링크]
.newSoftSerial 라이브러리 [파일링크]
 
※ 라이브러리 설치방법
  다운로드 받은 라이브러리(zip파일)의 압축을 해제하면 나오는 NewSoftSerial폴더를,
  아두이노 개발환경(Sketch)폴더내에 있는 libraries폴더안에 복사합니다.
 
  가령, arduino-0022\libraries\NewSoftSerial 의 경로로 복사해주면 됩니다.
  구조가 이해가 안되면 이미 있는 라이브러리 폴더의 파일들과 비교하여 복사하시기 바랍니다.
  이제 스케치를 닫았다 다시 엽니다.
  새로운 라이브러리가 인식되면 스케치 예제에 NewSoftSerial 예제가 등록되니 참고바랍니다.
 
이제 예제를 실행하면 정상 작동됩니다.
물론, 말안해도 아두이노 종류와 포트번호는 정확히 지정해줘야 하는건 아시죠^^.
 

C. 프린터 작동 테스트

컴파일과 전송이 완료되면,  시리얼 모니터 창을 열고 통신 속도를 38,400으로 지정합니다.
 
아래와 같은 명령 메시지가 아두이노로 부터 수신됩니다.

Thermal Printer Testing
1) Print Hello World!
2) Type to print
3) Dull boy
4) Printer status
5) Reverse white/black
6) Print characters upside down
7) Adjust heat settings
8) Adjust print settings
9) Print factory test page
a) Print entire character set
b) Print numberic barcode
c) Print alpha barcode
d) Bitmap test
:

원하는 명령번호/알파벳을 입력하여 전송합니다.

특정 기능에따라,
가령 2)Type to Print같은 기능 수행시
시리얼 모니터 "no line ending" 을 carriage return등으로 설정해줘야합니다.

전압별 설정
사용 전압에 따라 heat interval 값을 다르게 세팅해야 합니다.
제 경우 5V전원을 사용했으므로 소스에서 heat interval을 5로 조절하였습니다.
위 값이 제대로 설정되지 않으면 작동이 제대로 되지 않습니다. 제 경우 다른 소스는 수정한것이 없습니다.
기타 상세한 옵션은 아두이노 소스 주석을 참고하시기 바랍니다.

문제해결
.제품소개 페이지상의 예제소스는 아두이노의 하드웨어 시리얼 핀(0,1번)을 PC와의 연결용으로 사용하고 프린터와의 통신은 softwareSerial을 이용합니다. 이곳에 프린터를 연결하거나 다른용도로 사용하시면 통신이 되지 않으니 필요시 소스를 수정하여 사용하시기바랍니다.
.명령전송 후에 약간의 미동만 있고 인쇄가 되지 않는다면,  전원의 허용전류가 부족하거나 위에서 말씀드린 전원에 따른 인수값 설정이 잘못된 경우입니다. 2A 이상의 전류를 지원하는 5~9V 전원을 이용하시고  주석부분의 설명을 참고하셔서 인수값을 조정하시기 바랍니다.
.USB케이블로 공급되는 PC전원만으로는 작동되지 않으며 아두이노와 PC에 무리를 줄 수  있으므로 반드시 프린터 독립 전원을 사용하시기 바랍니다.


비트맵 인쇄
80x80 points 크기의 비트맵 인쇄의 예는 아래와 같습니다. 
메뉴얼에서 DC2 * r n  타입 명령을 사용한 예입니다.

      //Bitmap example
      Serial.println("Print bitmap image");
     Thermal.print(18, BYTE); //DC2
      Thermal.print(42, BYTE); //*
      Thermal.print(80, BYTE); //r   (80줄을 의미합니다.)
      Thermal.print(10, BYTE); //n  (한줄의 폭: 10바이트는 80비트이므로 80개의 점 데이타로 대응됩니다.)

      for(int y = 0 ; y < 80 ; y++) {
        for(int x = 0 ; x < 10 ; x++){
          Thermal.print(0xF0, BYTE); //0b.11110000  
        }
      }

      Thermal.print(10, BYTE); //Paper feed
      Thermal.print(10, BYTE); //Paper feed

      Serial.println("Print bitmap done");





기술자료 링크:
 
테스트 사진 및 동영상들

 

 

 

 

 

 

 

 

 






아두이노UNO를 사용하여 새로운 타입의 아두이노 SoftPot(위치감지)센서와 서보모터 연동 사용예입니다.

아두이노 스타터킷 및 아두이노 인벤터킷에 포함된  새로운타입의 센서입니다.


SoftPot센서는 세개의 단자가 있으며 기본 작동법은 가변저항과 같습니다.  전압핀과 GND을 연결하면 나머지 단자를 통해 접촉위치에 해당되는 전압을 측정할 수 있습니다.   아래의 회로도 참조

[그림1. SoftPot센서 단자안내 - 대응 회로도(사용법은 가변저항과 같습니다.)


아두이노 스케치 소스는 아래와 같습니다. 
스케치에서 기본제공하는 서보제어 예제코드를 거의 그대로 사용했습니다.  참 쉽죠잉~!

알림:
스케치제공 서보모터 작동 기본예제 코드는 작동범위를 0~180으로 설정했지만, 실제로 서보모터의 종류에따라 이값의 범위를 지원하지 못하는경우가 있습니다. 이경우 서보모터에 무리가 가게 되므로  제경우 10~170으로 값의 범위를 줄여줬습니다. 항상 사용하려는 기기의 한계범위를 고려해서 프로그래밍을 해줘야 기기를 오래오래 고장없이 사용할 수 있습니다.


#include <Servo.h>
 
Servo myservo;  // 서보모터제어를 위한 객체를 생성합니다
 
int potpin = 0;  // 센서입력을 받은 아날로그핀을 A0로 설정합니다.
int val;    //  센서입력(아날로그)값을 임시저장할 변수입니다
 
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
 
void loop()
{
  val = analogRead(potpin);            // A0에 연결된 SoftPot센서의 값을 읽어옵니다.
  val = map(val, 0, 1023, 10, 170);     // 아날로그입력값 0~1023을 서보모터에 맞게 10~170으로 변환합니다.
  myservo.write(val);                  //  서보모터신호를 센서 입력값에 따라 변경합니다
  delay(15);                           // 약간의 지연시간을 줍니다. 
}

//code 뷰어가 오류가 계속되어 그냥 텍스트로 올렸습니다 ;;

아두이노 선택을 위한 안내문입니다.

현재 두에밀라노브에 이어 UNO가 표준형 아두이노로 자리를 잡아가는 상황입니다.

하지만, 아두이노팀에서는 UNO말고도 여러가지 용도별 아두이노들을 개발하고 있는 상황입니다.

아두이노팀의 공식 하드웨어 소개페이지: http://arduino.cc/en/Main/Hardware  에서 확인해 보실 수 있습니다.

 

아시는분들은 다 알고계시는 내용이지만, 아두이노를 처음 접하시는 분들이나 영어자료가 부담스러우셨던 분들에게 조금이나마 참조가 될수 있는 자료입니다. 참고하시기바랍니다.

 

아두이노UNO, 아두이노 Mega2560, 아두이노 Pro, 아두이노 Pro mini, 아두이노 FIO, 아두이노 LilyPad, FTDI USB시리얼 변환기, 아두이노쉴드 에대해 소개하고있습니다.  

 

 

+ Recent posts