<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NTREXGO - 디바이스마트, 엔티렉스 컨텐츠 통합 사이트 &#187; 제이씨넷</title>
	<atom:link href="http://www.ntrexgo.com/archives/tag/%ec%a0%9c%ec%9d%b4%ec%94%a8%eb%84%b7/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ntrexgo.com</link>
	<description>엔티렉스, 디바이스마트 컨텐츠 통합 사이트</description>
	<lastBuildDate>Thu, 03 Mar 2022 06:47:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>[69호] 가성비 최고의 개발 및 실습 키트, JKIT-Nucleo-64 출시</title>
		<link>http://www.ntrexgo.com/archives/41308</link>
		<comments>http://www.ntrexgo.com/archives/41308#comments</comments>
		<pubDate>Sat, 25 Dec 2021 05:58:05 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[프로덕트 뉴스]]></category>
		<category><![CDATA[69호]]></category>
		<category><![CDATA[JKIT-Nucleo-64]]></category>
		<category><![CDATA[개발키트]]></category>
		<category><![CDATA[디바이스마트. 매거진]]></category>
		<category><![CDATA[마이크로컨트롤러 교육용]]></category>
		<category><![CDATA[실습키트]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=41308</guid>
		<description><![CDATA[디바이스마트 매거진 69호 &#124;  가성비 최고의 개발 및 실습 키트, JKIT-Nucleo-64 출시]]></description>
				<content:encoded><![CDATA[<p><img alt="" src="https://lh6.googleusercontent.com/FQAvLBhM1mT4rUWU9GHi0Tw2vI8nPU1d4_DXyb3HFhjZ_yKknjRiSefQXmDbH0J15-VPSZJGviDZwWP6EVAOI84aWTWDCguzObkCA5fArlsKRruVXwotzbLDOngbQs83iZm7CeQe" width="427" height="386" /></p>
<p><strong><span style="background-color: #000000; color: #ffffff;">제이씨넷</span></strong></p>
<p><strong><span style="font-size: x-large;">가성비 최고의 개발 및 실습 키트, JKIT-Nucleo-64 출시</span></strong></p>
<p>임베디드 시스템 개발 및 마이크로컨트롤 러 교육용 키트 전문 브랜드 제이씨넷에서 STM Cortex Nucleo 보드용 개발&amp;실습 키트 JKIT-Nucleo-64를 출시했다. JKIT-Nucleo-64는 ARM Cortex 32비트 마이크로컨트롤러 실습을 위한 최적의 보드 로 기본 부품, 디스플레이, 센서, 모터, 통신 등 거의 모든 전자부품 실습이 가능하다. 내부에는 LED, FND, 스위치, 부저, 온도센 서, 광센서, 모터드라이버, 마이크로 SD카드, 히터 등을 내장하고 있고 문자 LCD, 2.2인치 TFT 그래픽 LCD, WS2812 LED 모듈 장착을 위한 커넥터를 제공한다. 또한 각종 시리얼 통신 모듈을 연결할 수 있도록 USART, SPI, C 통신 커넥터도 제공함 으로써 다양한 전자부품 모듈에 대한 실습을 진행할 수 있도록 설계되었다. 이 외에도 GPIO 포트, PWM 포트, ADC 포 트, PWM 포트, ADC 포트, DAC 포트를 제 공해 마이크로컨트롤러로 실습하며 폭넓은 종류의 센서나 액추에이터 들을 쉽게 다뤄볼 수 있는 플랫폼을 제공한다. TFT 그래픽 LCD, WS2812 LED 모듈 장착을 위한 커넥터를 제공한다. 또한 각종 시리얼 통신 모듈을 연결할 수 있도록 USART, SPI, C 통신 커넥터도 제공함 으로써 다양한 전자부품 모듈에 대한 실습을 진행할 수 있도록 설계되었다. 이 외에도 GPIO 포트, PWM 포트, ADC 포 트, PWM 포트, ADC 포트, DAC 포트를 제 공해 마이크로컨트롤러로 실습하며 폭넓은 종류의 센서나 액추에이터 들을 쉽게 다뤄볼 수 있는 플랫폼을 제공한다.</p>
<p><a href="https://www.devicemart.co.kr/goods/view?no=14123215"><strong> JKIT-Nucleo-64  바로 확인하기 &gt;&gt;</strong></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/41308/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[60호]아두이노 MEGA2560기반 IOT 실습 키트 JARDUINO-MEGA-IOT 출시</title>
		<link>http://www.ntrexgo.com/archives/38450</link>
		<comments>http://www.ntrexgo.com/archives/38450#comments</comments>
		<pubDate>Mon, 01 Jun 2020 05:42:02 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[프로덕트 뉴스]]></category>
		<category><![CDATA[60호]]></category>
		<category><![CDATA[IOT실습키트]]></category>
		<category><![CDATA[JARDUINO-MEGA-IOT]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=38450</guid>
		<description><![CDATA[디바이스마트매거진 60호ㅣ아두이노 MEGA2560기반 IOT 실습 키트 JARDUINO-MEGA-IOT 출시]]></description>
				<content:encoded><![CDATA[<p><img alt="" src="https://lh4.googleusercontent.com/3Ub4RdElwqdRcAg7bRJYI5YODVJKGcVOvrdfXzNO_3DtVaxNDgiuXa7Ndtdiv60jpKyz0IcXL3iXJ0Vh8z5JGphpKTA5rEmDrz9xQuLJ6ZjAiuZulL5Q5nXRRX84t9bifA_JJxeZ" width="263" height="183" /><img alt="" src="https://lh3.googleusercontent.com/kBP-o5-Z9IYHe9Y2Gxb2W3o6U_7hIuJJKJK1nTyctRv9aa_tqvQizt3OdtN8eDgyKwD2ILVc9kdnV97ElbnY-2vWrH3rq05TsKJo_c8NavCfDw44X4YQwB_52JGUH-CnU0NlPW0f" width="248" height="188" /></p>
<p><strong><span style="background-color: #000000; color: #ffffff;">제이씨넷</span></strong></p>
<p><span style="font-size: x-large;"><strong>아두이노 MEGA2560기반 IOT 실습 키트 JARDUINO-MEGA-IOT 출시</strong></span></p>
<p>국산 아두이노 제품을 개발 및 생산하는 제 이씨넷은 IoT 기능이 내장된 아두이노 키트인 ‘JARDUINO-MEGA-IOT(프리미엄)’를 출시하 였다. JA RDU IN O &#8211; M E G A- I OT는 아두이노 MEGA2560을 기반으로 LED, 컬러 LED, 스 위치, 4-Digit FND, 버저, 가변저항, 광센서, 온도센서, IR 센서, RTC, 릴레이, CLCD, DC 모터 드라이브 및 WiFi 시리얼 모듈 등을 내 장한다. 또한, 확장 커넥터를 통해 DC모터, 서 보모터, 초음파 거리센서, 3축 가속도/지자기/ 자이로센서, SD카드 및 근거리 통신용 블루투 스 모듈도 제공한다. 아두이노로 가장 많이 사용되는 ‘아두이노 UNO’의 기능을 모두 포함하면서 더 많은 자 원과 기능을 제공하는 아두이노 MEGA2560 과 호환되고 선 연결이 필요하지 않으므로 편 리하고 빠르게 코딩을 실행해 볼 수 있어, 교육용이나 복합적인 응용에 매우 적합하다. JARDUINO-MEGA-IOT를 기반으로 한 ‘아 두이노 설계 및 코딩 DIY 여행’ 도서도 최근 출간되었으므로 함께 이용하면 아두이노를 통 한 실력 향상에 최적의 선택이 될 것이다. 현재 출시 기념으로 JARDUINO-MEGAIOT가 디바이스마트에서 15% 할인 판매를 진 행하고 있으며, 제조사 측 카페 ‘임베디드 홀 릭’에서 예제 소스 및 관련 자료를 제공하고 있다.</p>
<p><a href="https://www.devicemart.co.kr/goods/view?no=10824158">제이씨넷 제품 바로 확인하기 </a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/38450/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[30호] 너무 쉬운 아두이노 DIY ② &#8211; 카멜레온 반지 + 빨노파 게임기 만들기</title>
		<link>http://www.ntrexgo.com/archives/28375</link>
		<comments>http://www.ntrexgo.com/archives/28375#comments</comments>
		<pubDate>Fri, 15 May 2015 06:27:24 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[프로젝트]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[jcnet]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[아두이노]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=28375</guid>
		<description><![CDATA[[너무 쉬운 아두이노 DIY(Do It Yourself)]
제이씨넷 신상석 연구소장님의 친절하고 꼼꼼한 강의!
아두이노를 가지고 이것 저것 만들어봅시다.^^
출발!!]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/30-아두이노-카멜레온.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28290" alt="30 아두이노 카멜레온" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/30-아두이노-카멜레온.jpg" width="620" height="246" /></a></p>
<p><strong>             글 ㅣ 신상석 ssshin@jcnet.co.kr</strong></p>
<p>&nbsp;</p>
<table cellpadding="10" align="center">
<tbody>
<tr>
<td style="border: 1px solid #000000; background-color: #e6e6fa;" valign="middle">  여러분, 안녕하세요. 앞으로 1년에 걸쳐(6번 정도) [너무 쉬운 아두이노 DIY(Do It Yourself)] 강의를 진행할 강사 신상석입니다.<br />
제 소개 간단히 드립니다.<br />
· 서울대 제어계측공학과(학사) →, KAIST 전산과(석사) → KAIST 전산과(박사 수료)<br />
· ETRI 책임연구원 → 해동정보통신 연구소장 → 욱성전자 연구소장 → (현재) 제이씨넷 연구소장, 상명대학교 컴퓨터시스템공학과 겸임교수, 임베디드홀릭 카페(http://cafe.naver.com/lazydigital) 부매니저, 아두이노 / AVR 강사<br />
· 자격증 : 전자계산기 기술사<br />
· 취미 : 영화보기, 바둑두기, 책읽기, 글쓰기(?), 여행하기, 이야기하기<br />
· 연락처 : ssshin@jcnet.co.kr, 있는그대(cafe.naver.com/lazydigital)<span style="font-size: 11px; line-height: 19px;">이 강의는 아두이노를 가지고 간단하게 생활에 필요한 용품을 만들어 보는 강의입니다. 뚝딱뚝딱 뭔가 자신만의 DIY 용품을 만들어 보는 쏠쏠한 재미가 있는 강의라고나 할까요? 이미 주변에 아두이노와 관련한 많은 책이 출간되었고 카페나 블로그를 통하여 강의가 진행된 경우도 꽤나 많이 있는데도 불구하고, 이 지면을 통하여 강의를 개설한 이유는 다음과 같습니다.</span>&nbsp;</p>
<p>1. 아두이노의 초보자들을 위한 쉽고 재미있는 강의가 거의 없는 것 같아, 가능하면 초등학생(?)까지도 함께 해 볼 수 있는 그런 강의를 한 번 해보고 싶어서…<br />
2. 아두이노를 가지고 뭔가 조금은 다른, 자신만의 창의적인(?) DIY를 할 수 있는 자리를 만들어주고 싶어서…<br />
3. 디바이스마트매거진은 임베디드와 관련된 독자들이 많고, 발행 부수도 많아, 저와 제가 속한 회사(제이씨넷) 그리고 임베디드홀릭 카페의 홍보에 도움이 될 것 같아서…</p>
<p><img class="alignright" style="font-size: 11px; line-height: 19px;" alt="아두이노 계획표" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EA%B3%84%ED%9A%8D%ED%91%9C-300x133.png" width="300" height="133" />현재 구상하고 있는 회차별 내<span style="font-size: 11px; line-height: 19px;">용을 간략</span><span style="font-size: 11px; line-height: 19px;">하게 정</span><span style="font-size: 11px; line-height: 19px;">리해 보면 다음과 같습니다. (변경될 수 있습니다.) 앞으로 즐겁고 알찬 강의가 될 수 있도록 최선을 다할 것을 약속 드리며, </span><span style="font-size: 11px; line-height: 19px;"><span style="font-size: 11px;">이 강의를 보는 독자들도 메일이나 카페를  통하여 Q&amp;A(Question &amp; Answer)나 피드백을 주셔서, 함께 정감을 나눌 수 있는 계기가 되기를 기대해 봅니다.</span></span></td>
</tr>
</tbody>
</table>
<p dir="ltr">   여러분, 안녕하세요. 신상석 강사입니다. 이번 회에서는 컬러 LED를 가지고 만들 수 있는 DIY 작품을 2가지를 만들어 보겠습니다. 하나는 여러가지 색깔로 변하는 ‘카멜레온 반지’이고, 또 하나는 가위 바위 보 게임과 비슷한 ‘빨노파 게임기’입니다. 간단하고 재미있는 DIY이므로, 이를 약간씩 응용하여 최종적으로는 각자 자신만의 개성있는 DIY 작품을 만들어 보면 좋겠습니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 카멜레온 반지                                                                                            </span></strong></span></p>
<p>   카멜레온(chameleon)을 아시나요? ‘땅 위의 사자’라는 뜻을 가진 그리이스어에서 유래한 카멜레온은 주변의 색에 따라 아주 비슷한 보호색으로 변하는 능력을 가진 재주꾼입니다. 자신의 감정을 표현하기 위하여 자신이 원하는 색깔로 변할 수도 있다고 하니, 세상에는 인간 말고도 오묘한 동물이 정말 많은 것 같네요.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-02.jpg" rel="lightbox[28375]"><img class=" wp-image-28392 alignleft" style="margin-left: 10px; margin-right: 10px;" alt="30 카멜레온반지 02" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-02-620x384.jpg" width="260" height="161" /></a></p>
<p> 그런데 “카멜레온 반지”가 뭐냐구요? 아마도 다들 모르실텐데요. 왜냐하면 제가 얼마 전에 작명한 이름이어서요. 카멜레온 반지는 카멜레온처럼 반지의 색깔이 자유자재로 변하는 반지를 말합니다. 가만히 있으면 저절로 색깔이 변하는 반지라고나 할까요?.</p>
<p>&nbsp;</p>
<p>아래 그림은 12개의 달을 상징하는 보석으로 탄생석입니다. 에머랄드, 다이아몬드, 루비… 참 아름답지요. 무엇보다도 알록달록한 색깔이 압권입니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-03.jpg" rel="lightbox[28375]"><img class="aligncenter size-large wp-image-28393" alt="30 카멜레온반지 03" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-03-620x460.jpg" width="620" height="460" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   그래서 오늘은 이렇게 멋진 보석이 콕 박혀있는 반지를 상상하며 12개의 보석으로 변신이 가능한 카멜레온 반지를 만들어볼까 합니다. 반지의 링은 준비가 되었다고 가정하고 보석 부분만 카멜레온처럼 색깔이 변하도록 만들면 될 것 같네요. 그런데, 어떻게 만드냐구요? 예. 컬러 LED로 만들지요.</p>
<p dir="ltr">
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 컬러 LED                                                                                              </span></strong></span></p>
<p>   컬러 LED는 빨강, 녹색, 파랑 LED 3개를 하나로 모아 1개의 캡슐로 씌운 LED입니다. 그러니까 3개의 LED를 바짝 붙여서 한 개의 전구 속에 넣은 것이지요. 요렇게요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-04.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28394" alt="30 카멜레온반지 04" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-04.jpg" width="405" height="294" /></a></p>
<p>다리가 가장 긴 것이 공통 애노드(Anode, +), 또는 공통 캐소드(Cathode, -)로 공통 애노드 타입의 경우는 (+) 핀을 High(VCC, 5V)에 연결하고, R, G, B 핀에는 Low(GND, 0V) 값을 연결하는 경우에만 불이 들어오고, 공통 캐소드 타입의 경우는 반대로 (-) 핀을 Low(GND, 0V)에 연결하고, R, G, B 핀에는 High(VCC, 5V) 값을 연결하는 경우만 불이 들어옵니다. (물론, 지난번 설명처럼 직렬 저항은 연결한다고 가정하였습니다.) 여기서는 아래와 같이 공통 캐소드 타입의 컬러 LED를 사용하여 제작해 보는 것으로 하겠습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-05.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28395" alt="30 카멜레온반지 05" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-05.jpg" width="330" height="248" /></a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: x-small;">(53N RGB 262C-9001, 참조 : 디바이스마트)</span></p>
<p>&nbsp;</p>
<p dir="ltr">  어 그런데, LED가 3개면 다리가 6개라야 되는 것 아닌가요? 다리가 4개 밖에 없는데&#8230;</p>
<p dir="ltr">  예, 원래는 6개지만 (-)에 해당되는 다리는 공통이니까(공통 캐소드), 빨강, 녹색, 파랑, 공통 (-), 이렇게 다리를 4개로 줄일 수 있겠습니다. 지난번 3색 신호등을 만들 때 각 LED의 (-)에 해당되는 것은 모두 GND로 함께 연결한 것을 생각해 보면 쉽게 이해가 갈 겁니다..</p>
<p dir="ltr">  그렇다면, 이 컬러 LED는 빨강, 녹색, 파랑으로 색깔이 고정되어 있는데, 어떻게 카멜레온처럼 여러가지 오묘한 색깔을 나타낼 수 있을까요?</p>
<p dir="ltr">  이 질문에 대한 해답은 바로 빛의 혼합에 있습니다.</p>
<p dir="ltr">  아래 그림은 누구나 초등학교 시절에 한 번은 보았을 것입니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-06.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28396" alt="30 카멜레온반지 06" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-06.jpg" width="541" height="230" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  왼쪽은 빛의 삼원색(빨강(Red), 녹색(Green), 파랑(Blue), RGB)이고, 오른쪽은 색의 삼원색(자홍(Magenta), 청록(Cyan), 노랑(Yellow))입니다. 우리는 LED를 가지고 색깔을 만들 예정이므로 빛의 3원색의 경우만 보면, 3개의 빛이 합해지는 부분에 다른 색이 나타나는 것을 볼 수 있습니다.</p>
<p>&nbsp;</p>
<p dir="ltr">   ■ 빨강 + 녹색 = 노랑</p>
<p dir="ltr">   ■ 녹색 + 파랑 = 청록</p>
<p dir="ltr">   ■ 파랑 + 빨강 = 자홍</p>
<p dir="ltr">   ■ 빨강 + 녹색 + 파랑 = 흰색</p>
<p>&nbsp;</p>
<p dir="ltr">  오. 그렇네요. 이렇게 하니까 4개의 색이 더 만들어졌습니다. 하지만, 탄생석과 같이 알록달록한 여러가지 색은 아직도 만들어지지 않았는데 이것은 어떻게 만들 수 있을까요?</p>
<p dir="ltr">  이것은 광량(빛의 양)에 해답이 있습니다.</p>
<p dir="ltr">  즉, 빨강과 녹색, 파랑을 각각 100%씩 섞으면 흰색이 나오지만, 예를 들어 빨강 100% + 녹색 75% + 파랑 75% 로 빛을 섞으면 핑크(Pink)색이 나오는 원리입니다.</p>
<p dir="ltr">  결국 관건은 우리가 3가지 LED의 광량을 강하게 했다 약하게 했다 조절할 수 있느냐 하는 것인데 결론은 “할 수 있다” 입니다.</p>
<p>  아래 그림을 보시지요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-07.jpg" rel="lightbox[28375]"><img class="aligncenter size-large wp-image-28397" alt="30 카멜레온반지 07" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-07-620x164.jpg" width="620" height="164" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  원래 디지털 값은 <strong>High(1, 5V, 100%), Low(0, GND, 0%)</strong>의 2가지 값밖에 존재하지 않지만, 위 그림과 같이 어떤 핀의 값을 <strong>High ▶ Low ▶ High ▶ Low</strong> … 형태로 상태를 변환시키게 되면, 출력 전압의 평균(%)은 빨강색 점선과 같은 값을 갖게 됩니다. 예를 들어 High를 유지하는 시간과 Low를 유지하는 시간의 비율이 3:7이라면 평균값은 High값의 30%가 된다고 말할 수 있는 것이지요. 이렇게 주기적으로 High ▶ Low를 반복하는 신호를 펄스(Pulse)라고 하는데, 이 펄스(Pulse)의 폭(Width)을 조절(Modulation)하여 평균값을 조절하는 방법을 PWM(Pulse Width Modulation)이라고 합니다. 즉, PWM을 이용하면 디지털 출력인 High(1)와 Low(0)을 가지고 0.3(30%), 0.85(85%)와 같은 아날로그 값을 만들 수 있게 되는 것입니다. 핑크색을 컬러 LED로 표현해 본다면 아래와 같이 되겠네요.</p>
<p>    ■ 핑크 = 빨강 PWM 100% + 녹색 PWM 75% + 파랑 PWM 75%</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ PWM 출력을 만드는 방법                                                                   </span></strong></span></p>
<p dir="ltr">  이제 PWM 출력을 만드는 방법을 알아봅시다. 아두이노에서는 다음과 같은 analogWirte( ) 라이브러리 함수를 제공하는데 이것을 이용하면 PWM 0% ~ PWM 100% 까지의 펄스를 아주 쉽게 만들 수 있습니다. 단, analogWrite( ) 함수를 사용할 수 있는 핀은 핀 번호 앞에 틸드(~) 표시가 있는 핀으로 한정되어 있다는 점은 주의하셔야 합니다.</p>
<p>&nbsp;</p>
<p dir="ltr">   <span style="color: #008000;"> ■ analogWrite(pin, value)</span></p>
<p dir="ltr"><span style="color: #008000;">    ■ pin : 입출력핀 번호에 해당되는 숫자, 틸드(~) 표시가 되어 있는 핀만 가능</span></p>
<p dir="ltr"><span style="color: #008000;">    ■ value : 0~255까지의 값으로 0이면 PWM 0%, 255이면 PWM 100%를 의미함</span></p>
<p>&nbsp;</p>
<p dir="ltr">  예를 들어 “analogWrite(5, 128)”으로 프로그램 한다면, 핀 5번의 출력을 PWM 50%(128/256 = 0.5 = 50%)로 출력한다는 의미가 되겠습니다.</p>
<p dir="ltr">  왜 value 값으로 알기 쉽게 0~100을 사용하지 않고 0~255를 사용하게 되었을까요? 사실 그렇게 라이브러리를 만들 수도 있겠지만 디지털 세계는 2진법으로 이루어져 있어, 1, 2, 4, 8, 16, 32, 64, 128, 256 이렇게 만들어지는 수를 더욱 좋아한답니다. 아두이노 내부적으로 본다면 Atmega328, 타이머, ADC(Analog Digital Converter) 등 좀 더 자세하게 알아야 할 것이 많지만 우리는 그냥 이 정도만 알고 넘어가는 것으로 하겠습니다.</p>
<p dir="ltr">  이제 색의 배합을 %로 할 수 있다는 것을 배웠으므로, 간단히 한 번 연습해 보지요.</p>
<p dir="ltr">  노랑과 흰색, 핑크를 R, G, B의 value 값으로 표현해 보세요. 아래와 같이 나오면 정답!.</p>
<p>&nbsp;</p>
<p dir="ltr">   ▶ 노랑 : R(255), G(255), B(0)</p>
<p dir="ltr">   ▶ 흰색 : R(255), G(255), B(255)</p>
<p dir="ltr">   ▶ 핑크 : R(255), G(192), B(192) // 192/256 = 0.75 = 75%</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; color: #ffffff; background-color: #008000;"><strong> ■ 컬러 LED 연결                                                                    </strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">  자, 그럼 이제 기본 원리는 모두 이해했으니, 프로그램을 하기 전에 컬러 LED를 아두이노와 연결해 보겠습니다. 컬러 LED는 시중에서 구할 수 있는 것 아무거나 구하셔도 됩니다.  R, G, B 및 (-) 핀을 아래와 같이 연결하면 되겠네요.</p>
<p>&nbsp;</p>
<p dir="ltr">    ■ R (가장 왼쪽) ←→ 330오옴 저항 ←→ 아두이노 6번핀</p>
<p dir="ltr">    ■ (-) (왼쪽에서 2번째, 길이가 가장 긴 다리) ←→ 아두이노 GND</p>
<p dir="ltr">    ■ G (오른쪽에서 2번째) ←→ 330오옴 저항 ←→ 아두이노 5번핀</p>
<p dir="ltr">    ■ B (가장 오른쪽) ←→ 330오옴 저항 ←→ 아두이노 3번핀</p>
<p>&nbsp;</p>
<p dir="ltr">  우리가 연결한 아두이노 6번, 5번, 3번 핀의 옆쪽에 실크로 쓰여진 숫자에는 틸드(~) 표시가 되어 있는데, 이것은 아두이노 핀 중에서 analog_write( ) 함수로 PWM 신호를 만들어 낼 수 있는 핀이라는 것은 앞에서 설명하였습니다. 우리는 3개 핀에 모두 PWM을 사용하여야 하므로 반드시 틸드(~) 표시가 연결된 핀을 R, G, B에 연결해야 합니다. 아래의 그림처럼 연결이 되겠네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-08.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28398" alt="30 카멜레온반지 08" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-08.jpg" width="602" height="433" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #ffffff; font-size: large; background-color: #008000;"><strong> ■ 연습 프로그램 작성                                                                   </strong></span></p>
<p dir="ltr">  이제 연결은 끝났으니 프로그램을 작성하여 실행할 차례입니다.</p>
<p dir="ltr">  최종 목표는 카멜레온 반지이지만 기왕 회로를 꾸몄으니 지난번 배운 것도 복습할 겸 7가지 색(빨강, 녹색, 파랑, 노랑, 청록, 자홍, 흰색)을 먼저 만들어 보도록 하겠습니다.</p>
<p dir="ltr">  아래는 기능 규격입니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: small;"><strong>[7가지 색 만들기 기능 규격]</strong></span></p>
<p dir="ltr">  1. LED가 ON되는 순서는 빨강 ▶ 녹색 ▶ 파랑 ▶ 노랑 ▶ 청록 ▶ 자홍 ▶ 흰색 ▶ 빨강 ▶ … 으로 무한 반복됨</p>
<p dir="ltr">  2. LED는 어떤 한 순간 한가지 색깔만 표시함</p>
<p dir="ltr">  3. 표시된 색깔은 1초 동안 켜진 상태를 유지함</p>
<p>&nbsp;</p>
<p dir="ltr">  위의 7가지 색 중 노랑, 청록, 자홍은 동시에 2개의 LED를 ON 하면 얻을 수 있고 흰색은 3개의 LED를 동시에 ON하면 얻을 수 있으므로 analogWrite( ) 함수를 사용하지 않고 digitalWrite( ) 함수만 사용하여도 충분히 구현이 가능하겠습니다. 스스로 혼자 구현해 보신 후 10분 후에 함께 해보도록 하지요. (10분간 실시!)</p>
<p dir="ltr">(1분), (2분), ……, (10분)</p>
<p dir="ltr">모두 잘 되셨으리라 생각합니다. 함께 해 보겠습니다.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 6</p>
<p dir="ltr">#define GREEN_LED 5</p>
<p dir="ltr">#define BLUE_LED 3</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr"> digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, LOW); // R=ON, G=OFF, B=OFF &#8211;&gt; 빨강(Red)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr"> digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, LOW); // R=OFF, G=ON, B=OFF &#8211;&gt; 녹색(Green)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr"> digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, HIGH); // R=OFF, G=OFF, B=ON &#8211;&gt; 파랑(Blue)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr"> digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, LOW); // R=ON, G=ON, B=OFF &#8211;&gt; 노랑(Yellow)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">digitalWrite(RED_LED, LOW);     digitalWrite(GREEN_LED, HIGH);   digitalWrite(BLUE_LED, HIGH); // R=OFF, G=ON, B=ON &#8211;&gt; 청록(Cyan)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">digitalWrite(RED_LED, HIGH);     digitalWrite(GREEN_LED, LOW);   digitalWrite(BLUE_LED, HIGH); // R=ON, G=OFF, B=ON &#8211;&gt; 다홍(Magenta)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">digitalWrite(RED_LED, HIGH);   digitalWrite(GREEN_LED, HIGH);    digitalWrite(BLUE_LED, HIGH); // R=ON, G=ON, B=ON &#8211;&gt; 흰색(White)</p>
<p dir="ltr"> delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">약간 긴 듯하지만 알고리즘은 지난번과 거의 비슷하고 간단합니다.</p>
<p>자, 컴파일 ▶ 업로드 ▶ 실행해 봅시다. 그리고 결과는 ?</p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/MiqNYWnWk-M?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/MiqNYWnWk-M?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p dir="ltr">동영상에서는 LED 빛이 너무 밝아서 색깔 구별이 또렷하지 않지만, 실제 눈으로 보면 아주 예쁜 7가지 색깔이 나옵니다. 이 정도면 만족스럽네요.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 컬러 및 컬러값 선택                                                                   </span></strong></span></p>
<p dir="ltr">
<p dir="ltr">  연습으로 몸을 풀었으니, 이제 본격적으로 카멜레온 반지를 D.I.Y.하러 가겠습니다. 우리가 할 일은 12개 탄생석의 대표색을 찾아서 이것이 R, G, B의 어떤 값(어떤 세기, %)으로 표현되는지를 알아낸 다음 이것을 analog_write( ) 함수를 이용하여 구현하면 될 것 같습니다.</p>
<p dir="ltr">  자, 이제 탄생석의 색깔에 알맞은 R, G, B의 값을 찾아내면 되겠는데… 2가지 방법이 있습니다.</p>
<p dir="ltr">
<p dir="ltr"><strong>1. 색상표를 이용하는 방법</strong></p>
<p dir="ltr">  아래와 같이 색상표가 있으므로 이것을 보고 탄생석과 가장 비슷한 색깔을 찾아 그 코드값을 추출하는 방법입니다. 6개의 숫자는 16진법으로 나타낸 코드 값으로 앞의 2개는 R(Red), 중간 2개는 G(Green), 마지막 2개는 B(Blue)에 해당되는 값을 나타냅니다. (혹, 2진법, 10진법, 16진법의 표기법이나 변환이 익숙하지 않은 분은 이 부분에 대하여 따로 각자 공부하신 후 다시 오시기 바랍니다.) 가장 왼쪽 줄의 위에서 6번째 색상이 노랑인데, 이 값을 보면 FFFF00 으로 표기되어 있으니까 [R(FF), G(FF) B(00)] ▶ [R(255), G(255), B(0)]가 되어 노랑색 PWM 표기값과 동일하다는 것을 확인할 수 있습니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-10.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28400" alt="30 카멜레온반지 10" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-10.jpg" width="550" height="283" /></a></p>
<p dir="ltr">
<p dir="ltr"><strong>2. 컬러 추출 응용프로그램을 이용하는 방법</strong></p>
<p dir="ltr">  PC 상에서 특정 컬러에 대한 코드값을 추출해 내는 응용프로그램을 실행시켜서 원하는 색상을 클릭하여 코드값을 추출하는 방법입니다.</p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-11.jpg" rel="lightbox[28375]"><img class="alignleft size-full wp-image-28401" style="margin-left: 10px; margin-right: 10px;" alt="30 카멜레온반지 11" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-11.jpg" width="244" height="287" /></a></p>
<p dir="ltr">   탄생석은 코드표로 똑 떨어지는 색상이 아니고 우리가 색상을 직접 추출해보는 것도 재미있을 것 같으니까 우리는 두번째 방법을 사용하도록 하지요. 여러가지 프로그램이 있겠지만 여기서는 그냥 간단하게 실행시킬 수 있는 컬러캅(ColorCop)이라는 무료 프로그램을 사용하는 것으로 하겠습니다. (인터넷에서 찾아 다운로드받아 실행하면 됩니다.) 아래와 같은 화면이 나오는데요. 중간 왼쪽에 있는 스포이드처럼 생긴 아이콘을 드래그(클릭한 후 끌기)하여 원하는 컬러 위치에 가져다 놓으면 10진수로 표시된 R, G, B 값이 나타나게 됩니다. 참 쉽네요.</p>
<p dir="ltr">  자, 그러면 지금부터는 탄생석의 대표색에 대한 코드값를 추출해 보는 시간입니다. 색깔도 감상해 가면서 즐거운 마음으로 표를 작성해 보면 더욱 좋겠네요.</p>
<p dir="ltr">  코드 추출은 혼자서도 가능하겠지요? 12분 드립니다.</p>
<p>&nbsp;</p>
<p dir="ltr">1분, 2분, …, 11분, 12분</p>
<p>&nbsp;</p>
<p dir="ltr">  제가 직접 찍어서 추출한 값은 아래와 같습니다. (각자 다를 수 있습니다.)</p>
<table dir="ltr" border="1" cellspacing="0" cellpadding="0">
<colgroup>
<col width="45" />
<col width="100" />
<col width="100" />
<col width="100" />
<col width="100" />
<col width="100" /></colgroup>
<tbody>
<tr>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;\uc6d4&quot;]">월</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;\ud55c\uae00 \uc774\ub984&quot;]">한글 이름</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;\uc601\uc5b4 \uc774\ub984&quot;]">영어 이름</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;R&quot;]">R</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;G&quot;]">G</td>
<td style="border: 1px solid #000000; text-align: center; background-color: #e6e6fa;" data-sheets-value="[null,2,&quot;B&quot;]">B</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,1]">1</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uac00\ub137&quot;]">가넷</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;garnet&quot;]">garnet</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,254]">254</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,26]">26</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,27]">27</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,2]">2</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc790\uc218\uc815&quot;]">자수정</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;amethyst&quot;]">amethyst</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,179]">179</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,117]">117</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,180]">180</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,3]">3</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc544\ucfe0\uc544\ub9c8\ub9b0&quot;]">아쿠아마린</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;aquamarine&quot;]">aquamarine</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,211]">211</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,146]">146</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,251]">251</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,4]">4</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ub2e4\uc774\uc544\ubaac\ub4dc&quot;]">다이아몬드</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;diamond&quot;]">diamond</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,254]">254</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,155]">155</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,255]">255</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,5]">5</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc5d0\uba54\ub784\ub4dc&quot;]">에메랄드</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;emerald&quot;]">emerald</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,14]">14</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,219]">219</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,133]">133</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,6]">6</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc9c4\uc8fc&quot;]">진주</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;pearl&quot;]">pearl</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,246]">246</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,241]">241</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,237]">237</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,7]">7</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ub8e8\ube44&quot;]">루비</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;ruby&quot;]">ruby</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,206]">206</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,3]">3</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,163]">163</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,8]">8</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ud398\ub9ac\ub3c4\ud2b8&quot;]">페리도트</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;peridot&quot;]">peridot</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,167]">167</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,212]">212</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,31]">31</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,9]">9</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc0ac\ud30c\uc774\uc5b4&quot;]">사파이어</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;sapphaire&quot;]">sapphaire</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,26]">26</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,27]">27</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,216]">216</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,10]">10</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\uc624\ud314&quot;]">오팔</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;opal&quot;]">opal</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,203]">203</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,200]">200</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,149]">149</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,11]">11</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ud1a0\ud30c\uc988&quot;]">토파즈</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;topaz&quot;]">topaz</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,254]">254</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,198]">198</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,40]">40</td>
</tr>
<tr>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,12]">12</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;\ud130\ud0a4\uc11d&quot;]">터키석</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,2,&quot;turquoise&quot;]">turquoise</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,58]">58</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,197]">197</td>
<td style="width: 600px; border: 1px solid #000000;" align="center" data-sheets-value="[null,3,null,189]">189</td>
</tr>
</tbody>
</table>
<p>참, 가넷이라는 보석은 얼마전 종료된 ‘지니어스’라는 TV 프로에 이름이 소개되었던 짙은 자주색계통의 보석이지요. 꽤나 재미있었던 시리즈물이었는데 여러분들도 기회가 되면 꼭 한 번 시청해 보시기 바랍니다.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; background-color: #008000;"><strong><span style="color: #ffffff;"> ■ 카멜레온 반지 프로그램 작성</span>                                                                          </strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">  모든 준비가 끝났으니 이제 목표 프로그램을 작성하여 실행할 차례입니다. 우리가 원하는 기능 규격을 작성해 보지요.</p>
<p>&nbsp;</p>
<p dir="ltr"><strong>[12가지 탄생석의 대표색을 디스플레이하는 카멜레온 반지 기능 규격]</strong></p>
<p dir="ltr">  1. 컬러 LED로 12개 탄생석의 대표색 12개를 차례대로 ON하며, 무한 반복된다.</p>
<p dir="ltr">  2. 한 가지의 색은 1초 동안 켜진 상태를 유지한다.</p>
<p>&nbsp;</p>
<p dir="ltr">  지난번에는 digitalWrite( ) 함수를 사용했지만 이번에는 analogWrite( )를 사용하고 작성된 표를 참조하여 R, G, B에 해당하는 PWM value값을 정해주는 것만 조금 다를 것 같습니다.</p>
<p dir="ltr">  같이 한 번 작성해 보시지요.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 6</p>
<p dir="ltr">#define GREEN_LED 5</p>
<p dir="ltr">#define BLUE_LED 3</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 26);  analogWrite(BLUE_LED, 27);  // 가넷</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 179);  analogWrite(GREEN_LED, 117);  analogWrite(BLUE_LED, 180);  // 자수정</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 211);  analogWrite(GREEN_LED, 246);  analogWrite(BLUE_LED, 251);  // 아쿠아마린</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 255);  // 다이아몬드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 14);  analogWrite(GREEN_LED, 219);  analogWrite(BLUE_LED, 133);  // 에메랄드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 246);  analogWrite(GREEN_LED, 241);  analogWrite(BLUE_LED, 237);  // 진주</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 206);  analogWrite(GREEN_LED, 3);  analogWrite(BLUE_LED, 163);  // 루비</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 167);  analogWrite(GREEN_LED, 212);  analogWrite(BLUE_LED, 31);  // 페리도트</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 26);  analogWrite(GREEN_LED, 27);  analogWrite(BLUE_LED, 216);  // 사파이어</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 203);  analogWrite(GREEN_LED, 200);  analogWrite(BLUE_LED, 149);  // 오팔</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 198);  analogWrite(BLUE_LED, 40);  // 토파즈</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 58);  analogWrite(GREEN_LED, 197);  analogWrite(BLUE_LED, 189);  // 터키석</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">  음. 조금 많이 길긴 하지만…</p>
<p dir="ltr">  일단, 컴파일 ▶ 업로드 ▶ 실행해 봅시다. 결과는?</p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/Xqr8GSvWKiA?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/Xqr8GSvWKiA?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p dir="ltr">  카메라에 찍힌 것은 색깔 구별이 또렷하지는 않은데, 실제로 보면 아름다운 색깔이 구분되어 나타납니다. 보석에 비할 수는 없지만 그래도 아주 색상이 화려하고 아름답습니다.</p>
<p dir="ltr">  그런데 프로그램 짜면서 조금 마음에 걸리는 것이 있습니다.</p>
<p dir="ltr">  무엇이냐구요? 비슷한 내용이 12번이나 반복되고 코드 값을 일일이 입력해 주는 것이 조금 불편한 듯 하네요. 그래서, 12번 반복하는 것은 for 문을 이용하여 수정하고, 코드 값은 미리 어레이에 지정해 놓았다가 사용하도록 하여 위 코드를 조금 단순화시켜 보겠습니다. 아래와 같이 될 것 같습니다.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 6</p>
<p dir="ltr">#define GREEN_LED 5</p>
<p dir="ltr">#define BLUE_LED 3</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT);</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 26);  analogWrite(BLUE_LED, 27);  // 가넷</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 179);  analogWrite(GREEN_LED, 117);  analogWrite(BLUE_LED, 180);  // 자수정</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 211);  analogWrite(GREEN_LED, 246);  analogWrite(BLUE_LED, 251);  // 아쿠아마린</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 255);  // 다이아몬드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 14);  analogWrite(GREEN_LED, 219);  analogWrite(BLUE_LED, 133);  // 에메랄드</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 246);  analogWrite(GREEN_LED, 241);  analogWrite(BLUE_LED, 237);  // 진주</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 206);  analogWrite(GREEN_LED, 3);  analogWrite(BLUE_LED, 163);  // 루비</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 167);  analogWrite(GREEN_LED, 212);  analogWrite(BLUE_LED, 31);  // 페리도트</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 26);  analogWrite(GREEN_LED, 27);  analogWrite(BLUE_LED, 216);  // 사파이어</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 203);  analogWrite(GREEN_LED, 200);  analogWrite(BLUE_LED, 149);  // 오팔</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 254);  analogWrite(GREEN_LED, 198);  analogWrite(BLUE_LED, 40);  // 토파즈</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr"> analogWrite(RED_LED, 58);  analogWrite(GREEN_LED, 197);  analogWrite(BLUE_LED, 189);  // 터키석</p>
<p dir="ltr">delay(1000);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">  예. 요렇게 작성해서 다시 실행시켜보면&#8230; 처음 프로그램하고 똑같이 실행되는 것을 알 수 있습니다. 이것도 당근 성공이겠죠?</p>
<p dir="ltr">  그럼, 마지막으로… 이 반지를 진짜 반지처럼 한 번 연출해 볼까요?</p>
<p dir="ltr">  손가락에 켜보는 형태로 흉내를 내보지요.</p>
<p dir="ltr">  컬러 LED를 뽑아서 4개의 다리에 선을 연결하고 이선을 원래 LED가 위치했던 브레드보드의 핀 위치에 꼽으면 원래 회로와 똑같은 회로입니다. 이것을 반지 모양으로 손가락 앞쪽으로 LED만 보이게 만들고 아두이노에 전원을 넣으면?</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-14.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28404" alt="30 카멜레온반지 14" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-14.jpg" width="610" height="343" /></a></p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-15.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28405" alt="30 카멜레온반지 15" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-15.jpg" width="553" height="380" /></a></p>
<p style="text-align: center;"> 
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/JSAJRt3HpHE?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/JSAJRt3HpHE?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p dir="ltr">  야호~~~ 카멜레온 반지가 완성되었습니다.</p>
<p dir="ltr">  소품을 이용하여 잘 만들면 어느 정도 쓸만한 것도 만들 수 있을 것 같은데, 이것은 여러분들이 D.I.Y. 해보시기 바랍니다. 잘 만들어졌으면 주변에 자랑도 한 번 해 보시구요.</p>
<p dir="ltr">  시간나실 때 아래 과제도 한 번 해보시면 더욱 좋겠죠?</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-카멜레온반지-1]</strong></span></p>
<p dir="ltr"><span style="font-size: small;"><strong> R, G, B 색이 임의로 변하는 카멜레온 링을 만들어 보세요.</strong></span></p>
</td>
</tr>
</tbody>
</table>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-카멜레온반지-1]</strong></span></p>
<p><span style="font-size: small;"><strong> R, G, B 각각이 0~255까지 짧은 시간 내에 계속 변화하면서 모든 색상을 디스플레이할 수 있는 카  멜레온링을 만들어 보세요. 총 256 x 256 x 256 = 16,777,226 가지의 색깔을 만들수 있을까요?</strong></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; color: #ffffff; background-color: #008000;"><strong> ■ 스위치 연결                                                                                </strong></span></p>
<p dir="ltr">  바로 전 강의까지 우리는 아두이노로 할 수 있는 2가지 기초 기능을 다루어 보았습니다. 디지털 출력(digitalWrite())과 아날로그 출력(analogWrite())이지요. 여기서의 아날로그 출력은 엄밀히 말하면 디지털 출력을 PWM을 이용하여 만든 유사 아날로그 출력이지만요.</p>
<p>&nbsp;</p>
<p dir="ltr">  기본적인 출력을 2가지 해보았으니 이번에는 기본적인 입력을 이용하여 ‘빨노파 게임기’ D.I.Y.에 도전해 보겠습니다. 빨노파게임기란 빨강 ▶ 노랑 ▶ 파랑 순으로 LED 색깔이 상당히 빠르게(0.1초 이내) 변하다가 스위치를 누르는 순간 빨강, 노랑, 파랑 중의 1가지로 약 5초 정도 고정되는 LED 디스플레이어입니다. 아주 빠르게 색깔이 변하므로 사람이 임의로 색깔의 변화를 읽어서 스위치를 누른다는 것은 불가능하다고 볼 수 있으므로 임의의 색깔이 나타나는 상황이 됩니다. 그러므로 가위바위보 게임과 비슷하게 빨강은 파랑을 이기고, 노랑은 빨강을 이기고, 파랑은 노랑을 이긴다고 룰을 정한 후 두 사람이 스위치를 순서대로 눌러서 나온 색깔로 승부를 가린다면 간단한 게임기가 될 수 있겠습니다.</p>
<p dir="ltr">  아 참, 이건 여담인데, 빨노파… 하니까 생각나는게 하나 있네요. ‘개그콘서트’라는 TV 프로의 ‘나는 킬러다’ 코너에 등장하는 빨노파 3형제…  ‘일소일소(一笑一少)’라는 말이 있는데 한 번 웃으면 한 번 젊어진다고 하니, 여러분도 틈나는 대로 개그 프로 열심히 보면서 많이 웃으시기 바랍니다.</p>
<p dir="ltr">  LED가 대표적인 기본 디지털 출력 부품이라면, 스위치는 대표적인 기본 디지털 입력 부품입니다. 스위치를 모르는 사람은 천지(天地)에 없겠지만, 기왕 말이 나왔으니까 많이 쓰는 스위치 2-3가지만 조금 살펴보고 가는 것도 나쁘지는 않을 듯 합니다.</p>
<p dir="ltr">  우리가 제일 흔하게 많이 보고 많이 쓰는 스위치는 무엇일까요?</p>
<p dir="ltr">  요렇게 생긴 것이겠죠? 전자기기 전원 껐다 켰다 하는 스위치, 형광등 껐다 켰다 스위치.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-16.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28406" alt="30 카멜레온반지 16" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-16.jpg" width="194" height="201" /></a></p>
<p style="text-align: center;"><span style="font-size: small;"><strong>(KCD1-101A RED, 상품코드: <a href="http://www.devicemart.co.kr/1790" target="_blank">1790</a>)</strong></span></p>
<p dir="ltr">  실생활에서 가장 많이 쓰이는 스위치로 이름은 로커(Locker) 스위치입니다. 잠긴(lock) 것처럼 ON이거나 OFF이거나 한가지 상태로 존재하지요.</p>
<p dir="ltr">  또, 어떤 스위치가 있을까요? 아래와 같이 생긴 슬라이드(Slide) 스위치도 많이 사용됩니다. 왼쪽이나 오른쪽으로 옮기면 각각 가운데 신호가 왼쪽이나 오른쪽에 연결된 신호와 연결되는 구조를 가진 스위치입니다. 요건 2단으로 되어 있어 2개의 서로 다른 신호가 동시에 왼쪽 또는 오른쪽으로 연결되는 형태네요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-17.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28407" alt="30 카멜레온반지 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-17.jpg" width="167" height="168" /></a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: small;"><strong>(MSL-1C2P(듀얼)-2mm, 상품코드: <a href="http://www.devicemart.co.kr/30530" target="_blank">30530</a>)</strong></span></p>
<p dir="ltr">  이번 강의에서 사용할 스위치는 아래와 같이 생긴 택트(Tact) 스위치입니다. 이것도 굉장히 많이 사용됩니다. 아마도 contact에서 이름이 유래(?)된 듯한데, 손가락으로 누르면(contact 되면) ON, 떼면 OFF 상태가 되는 스위치이지요.</p>
<p>  아래 것은 다리가 4개가 있어서 2쌍의 신호가 한꺼번에 연결되거나(ON), 끊어지거나(OFF) 하는 스위치가 되겠습니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-18.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28408" alt="30 카멜레온반지 18" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-18.jpg" width="142" height="141" /></a></p>
<p dir="ltr">
<p dir="ltr" style="text-align: center;"><span style="font-size: small;"><strong>(ITS-1105-5mm, 상품코드: <a href="http://www.devicemart.co.kr/34555" target="_blank">34555</a>)</strong></span></p>
<p dir="ltr">  자, 스위치가 결정되었으니 그럼 이제 스위치를 연결해 볼까요?</p>
<p dir="ltr">  스위치 심볼은 보통 아래와 같은 2가지 형태를 취합니다. 스위치가 눌려지면 왼쪽과 오른쪽에 연결된 전선이 연결되는 것이지요. 스위치를 놓으면 양쪽의 연결은 끊어지는 것이구요.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-19.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28409" alt="30 카멜레온반지 19" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-19.jpg" width="470" height="141" /></a></p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-20.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28410" alt="30 카멜레온반지 20" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-20.jpg" width="466" height="62" /></a></p>
<p dir="ltr">
<p dir="ltr">  스위치가 디지털 입력이라고 하였고, 스위치는 양쪽 끝이 있으니까 한 쪽은 당연히 아두이노의 디지털 신호선 중 하나에 연결하여야 할 것이고, 다른 한쪽은 어디에 연결해야 할까요? 스위치를 눌렀을 때 ‘1’(HIGH)이나 ‘0’(LOW)이 입력되어야 하므로, ‘1’이 연결되려면 VCC(+5V)가 연결되어야 하고, ‘0’이 입력되려면 GND(0V, Ground)가 연결되어야 할 것입니다.</p>
<p dir="ltr">  그러면 이렇게 연결이 되겠네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-21.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28411" alt="30 카멜레온반지 21" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-21.jpg" width="575" height="239" /></a></p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-22.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28412" alt="30 카멜레온반지 22" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-22.jpg" width="550" height="210" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">  그런데 가만히 보니까, 스위치를 눌렀을 때는 연결된 상태에 따라서 +5V 또는 0V(GND)가 연결되지만 스위치가 눌리지 않았을 때는 선이 끊어진 상태(floating 상태)가 되는데… 어라, 이렇게 되면 아두이노는 이 핀의 값을 HIGH(1)로 판단할까요? 아니면, LOW(0)로 판단할까요? 조금 어려운 문제인데 이것은 아두이노의 내부 로직과 상태에 따라 값이 결정될 수 있으므로 정확하게 HIGH 또는 LOW라고 단정지어 말할 수 없습니다. 즉, 상황에 따라 HIGH가 될 수도 있고 LOW로 될 수도 있다는 뜻인데, 이렇게 되면 값이 확정되지 않으므로 프로그램을 작성하는 사람은 대략난감(大略難堪, 이러지도 저러지도 못하는 당황스러운 상황)하게 됩니다. 그래서, 이렇게 선이 끊어진 상태가 될 때는 아두이노가 HIGH 또는 LOW 중, 하나의 값으로만 결정되도록 만들어 주는 조치가 필요합니다. 즉, 스위치를 눌렀을 때 HIGH가 되는 회로는 눌러지지 않았을 때 LOW가 되도록 조치해 놓아야 하고, 반대로 스위치를 눌렸을 때 LOW가 되는 회로는 눌러지지 않았을 때는 HIGH가 되도록 조치해 놓아야 하겠습니다. 아래와 같이 될 것 같습니다.</p>
<p dir="ltr"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-23.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28413" alt="30 카멜레온반지 23" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-23.jpg" width="595" height="401" /></a></p>
<p dir="ltr">
<p dir="ltr" style="text-align: center;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-24.jpg" rel="lightbox[28375]"><img class="aligncenter  wp-image-28414" alt="30 카멜레온반지 24" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-24.jpg" width="542" height="299" /></a></p>
<p dir="ltr">
<p dir="ltr">  하지만 위 그림도 아직은 문제가 있어 보입니다. 왜냐하면 스위치가 눌려졌다고 생각하면 위 2개 회로 모두가 +5V와 GND가 직접 연결되는 형상이 되어 버리니까요.</p>
<p dir="ltr">  뿌직~~~ 번쩍! 푸쉬푸쉬~~~</p>
<p dir="ltr">  무엇인가 터지던지… 불꽃이 튀던지… 연기가 나던지… 뭔가 문제가 생길 것 같습니다. 그래서 이런 경우를 방지하기 위한 대비책이 필요한데 이 역할을 수행하는 것은 저항입니다. 아래와 같이 스위치가 눌렸을 때와 눌려지지 않았을 때의 값이 서로 다르게 입력되는 위치에 저항을 달면 문제가 해결되겠습니다. (저항값은 보통 1K~10K 정도를 사용합니다.) 참고로 GND에 저항이 연결되는 것을 풀다운(pull down) 저항이라고 하고, VCC(+5V)에 연결되는 것을 풀업(pull up) 저항이라고 합니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-25.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28415" alt="30 카멜레온반지 25" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-25.jpg" width="573" height="295" /></a></p>
<p>&nbsp;</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-26.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28416" alt="30 카멜레온반지 26" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-26.jpg" width="581" height="291" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr">  하나 하나 설명하다보니 조금 장황해졌는데요. 어쨌든 이제 연결 방법은 알았으니, 실제로 회로를 아두이노에 연결해 봅시다. 조금 전에 만들었던 카멜레온반지 회로에 스위치 한 개를 추가하여 2번핀(D2)에 연결하는 것으로 하겠습니다. 아래와 같이 되겠네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-27.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28417" alt="30 카멜레온반지 27" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-27.jpg" width="518" height="390" /></a></p>
<p dir="ltr">  오, 그럴듯하게 잘 꾸며진 것 같습니다. 만족? 만족!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: large; color: #ffffff; background-color: #008000;"><strong> ■ 신호등 게임기 프로그램 작성                                                  </strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">  이제 프로그램을 작성하여야 하는데요. 언제나 마찬가지로 일단 원하는 기능 규격을 작성해 봅시다.</p>
<p>&nbsp;</p>
<p dir="ltr"><strong>[신호등 게임기 기능 규격]</strong></p>
<p dir="ltr">  1. 컬러 LED,의 색깔은 0.1초 마다 빨강 ▶ 노랑 ▶ 파랑 ▶ 빨강 ▶ 노랑 ▶ 파랑… 의 순으로 계속 바뀐다..</p>
<p dir="ltr">  2. 스위치를 누르는 순간 5초 동안만 현재의 LED 색이 유지되었다가 다시 ‘1’번을 수행한다.</p>
<p>&nbsp;</p>
<p dir="ltr">  컬러 LED의 색깔이 바뀌는 것은 지난번에 했으니까 별 문제가 없을 것이고, 스위치 값을 읽어서 그 값이 0(LOW, 스위치 눌림)인지 1(HIGH, 스위치 눌리지 않음)인지를 검사할 수만 있으면 쉽게 해결될 것 같습니다. 이런 경우에 대비해서 아두이노에서는 digitalRead(pin)라는 기능의 함수를 제공하므로 이것을 이용하도록 합니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #3366ff;">digitalRead(pin)</span></p>
<p dir="ltr"><span style="color: #3366ff;">  ■  pin : 핀 번호</span></p>
<p dir="ltr"><span style="color: #3366ff;">  ■  return 값 : pin을 통하여 들어온 디지털 값으로 0 또는 1</span></p>
<p>&nbsp;</p>
<p dir="ltr">  이제 기능 규격을 만족할 수 있는 프로그램의 알고리즘을 만들어 보지요. 아래를 보기 전에 각자 먼저 5분 정도 생각해 보시구요.</p>
<p dir="ltr">… (1분) … (2분) … (3분) … (4분) … (5분)</p>
<p dir="ltr">  아래와 같은 모습이 될 것 같습니다.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-28.png" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28418" alt="30 카멜레온반지 28" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-28.png" width="433" height="275" /></a></p>
<p dir="ltr">  이제 프로그램을 함께 해볼까요?</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">int SW=2; // #define을 이용해도 되지만 이와 같이 변수로 선언하는 것도 방법</p>
<p dir="ltr">int BLUE_LED=3</p>
<p dir="ltr">int GREEN_LED=5;</p>
<p dir="ltr">int RED_LED=6;</p>
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(SW, INPUT); // 2번핀은 스위치 입력</p>
<p dir="ltr"> pinMode(BLUE_LED, OUTPUT); // 3번핀은 파랑 LED 출력</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT); // 5번핀은 녹색 LED 출력</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT); // 6번핀은 빨강 LED 출력</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr">analogWrite(RED_LED, 255);  analogWrite(GREEN_LED, 0);  analogWrite(BLUE_LED, 0); // 빨강</p>
<p dir="ltr">if (digitalRead() == 0)</p>
<p dir="ltr">   delay(5000); // 스위치를 눌렀으면 5초 대기</p>
<p dir="ltr">else</p>
<p dir="ltr">delay(100); // 스위치를 누르지 않았으면 0.1초만 대기</p>
<p dir="ltr">analogWrite(RED_LED, 255);  analogWrite(GREEN_LED, 255);  analogWrite(BLUE_LED, 0);   // 노랑</p>
<p dir="ltr">if (digitalRead() == 0)</p>
<p dir="ltr">   delay(5000);</p>
<p dir="ltr">else</p>
<p dir="ltr">delay(100);</p>
<p dir="ltr">analogWrite(RED_LED, 0);  analogWrite(GREEN_LED, 0);  analogWrite(BLUE_LED, 255); // 파랑</p>
<p dir="ltr">if (digitalRead() == 0)</p>
<p dir="ltr">   delay(5000);</p>
<p dir="ltr">else</p>
<p dir="ltr">delay(100);</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">  digitalRead()를 수행하여 값이 ‘0’인 상태가 나타나면 스위치가 눌려진 것이니까 그 상태에서 delay(5000); (5초 동안 아무것도 하지 않음)을 수행하게 되므로 LED가 5초 동안 한가지 색깔을 유지하게 됩니다. 자신의 색깔이 결정되는 것이지요.</p>
<p dir="ltr">  작성이 다 되었으면… 컴파일 ▶ 업로드 ▶ 실행! 잘 나오나요?</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-29.jpg" rel="lightbox[28375]"><img class="aligncenter size-full wp-image-28419" alt="30 카멜레온반지 29" src="http://www.ntrexgo.com/wp-content/uploads/2015/08/30-카멜레온반지-29.jpg" width="598" height="397" /></a></p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/u-4GemaNhfo?autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/u-4GemaNhfo?autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>


<p style="text-align: center;">
<p dir="ltr">  옆에 있는 가족/친구/상사/동료와 간단히 게임 한 번 해 보시지요! 나는 빨강, 상대는 파랑, 야호~ 내가 이겼다. 밥 먹으러 갑시다.</p>
<p dir="ltr">  오늘은 여기까지입니다. 다음 시간에는 FND(Flexible Numeric Display)를 가지고 007 영화에 항상 등장하는 카운트다운 계수기 D.I.Y.에 도전해 보겠습니다. 아래 과제는 짬을 내서 해보시고 다음 강의에서 예쁜 얼굴로 또 만나겠습니다. 감사합니다.</p>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-빨노파게임기-1]</strong></span></p>
<p dir="ltr"><span style="font-size: small;"><strong> 스위치를 누르면 ‘1’이 되도록 연결하고 프로그램해 보세요.</strong></span></p>
</td>
</tr>
</tbody>
</table>
<table style="border-color: #000000; border-width: 0px; ; width: 600px;" border="0">
<tbody>
<tr>
<td style="background-color: #adff2f;">
<p dir="ltr"><span style="font-size: small;"><strong> [과제-빨노파게임기-2]</strong></span></p>
<p dir="ltr"><span style="font-size: small;"><strong> 스위치를 2개 사용하여 더 재미있는 DIY 작품을 만들어 보세요.</strong></span></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>아두이노 구매하러 가기 : <a href="http://www.devicemart.co.kr/34404" target="_blank">클릭!</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28375/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[29호] 너무 쉬운 아두이노 DIY &#8211; ① 3색 신호등 만들기</title>
		<link>http://www.ntrexgo.com/archives/28246</link>
		<comments>http://www.ntrexgo.com/archives/28246#comments</comments>
		<pubDate>Tue, 10 Mar 2015 06:59:21 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[프로젝트]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[devicemart]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[jcnet]]></category>
		<category><![CDATA[ntrex]]></category>
		<category><![CDATA[강의]]></category>
		<category><![CDATA[강좌]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[만들기]]></category>
		<category><![CDATA[아두이노]]></category>
		<category><![CDATA[엔티렉스]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=28246</guid>
		<description><![CDATA[[너무 쉬운 아두이노 DIY(Do It Yourself)]
제이씨넷 신상석 연구소장님의 친절하고 꼼꼼한 강의!
아두이노를 가지고 이것 저것 만들어봅시다.^^
출발!!]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호등MA.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28289" alt="29 아두이노 신호등MA" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호등MA.jpg" width="620" height="246" /></a></p>
<p><strong>           글 ㅣ 신상석 ssshin@jcnet.co.kr</strong></p>
<p>&nbsp;</p>
<table class="aligncenter" style="width: 600px;" cellpadding="10" align="center">
<tbody>
<tr>
<td style="border: 1px solid #000000; background-color: #e6e6fa;" valign="middle">  여러분, 안녕하세요. 앞으로 1년에 걸쳐(6번 정도) [너무 쉬운 아두이노 DIY(Do It Yourself)] 강의를 진행할 강사 신상석입니다.<br />
제 소개 간단히 드립니다.<br />
· 서울대 제어계측공학과(학사) →, KAIST 전산과(석사) → KAIST 전산과(박사 수료)<br />
· ETRI 책임연구원 → 해동정보통신 연구소장 → 욱성전자 연구소장 → (현재) 제이씨넷 연구소장, 상명대학교 컴퓨터시스템공학과 겸임교수, 임베디드홀릭 카페(http://cafe.naver.com/lazydigital) 부매니저, 아두이노 / AVR 강사<br />
· 자격증 : 전자계산기 기술사<br />
· 취미 : 영화보기, 바둑두기, 책읽기, 글쓰기(?), 여행하기, 이야기하기<br />
· 연락처 : ssshin@jcnet.co.kr, 있는그대(cafe.naver.com/lazydigital)&nbsp;</p>
<p>이 강의는 아두이노를 가지고 간단하게 생활에 필요한 용품을 만들어 보는 강의입니다. 뚝딱뚝딱 뭔가 자신만의 DIY 용품을 만들어 보는 쏠쏠한 재미가 있는 강의라고나 할까요? 이미 주변에 아두이노와 관련한 많은 책이 출간되었고 카페나 블로그를 통하여 강의가 진행된 경우도 꽤나 많이 있는데도 불구하고, 이 지면을 통하여 강의를 개설한 이유는 다음과 같습니다.</p>
<p>1. 아두이노의 초보자들을 위한 쉽고 재미있는 강의가 거의 없는 것 같아, 가능하면 초등학생(?)까지도 함께 해 볼 수 있는 그런 강의를 한 번 해보고 싶어서…<br />
2. 아두이노를 가지고 뭔가 조금은 다른, 자신만의 창의적인(?) DIY를 할 수 있는 자리를 만들어주고 싶어서…<br />
3. 디바이스마트매거진은 임베디드와 관련된 독자들이 많고, 발행 부수도 많아, 저와 제가 속한 회사(제이씨넷) 그리고 임베디드홀릭 카페의 홍보에 도움이 될 것 같아서…</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노-계획표.png" rel="lightbox[28246]"><img class="alignright size-medium wp-image-28247" alt="아두이노 계획표" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노-계획표-300x133.png" width="300" height="133" /></a><span style="font-size: 11px; line-height: 19px;">  현재 구상하고 있는 회차별 내용을 간략하게 정리해 보면 다음과 같습니다. (변경될 수 있습니다.)  앞으로 즐겁고 알찬 강의가 될 수 있도록 최선을 다할 것을 약속 드리며, 이 강의를 보는 독자들도 메일이나 카페를  통하여 Q&amp;A(Question &amp; Answer)나 피드백을 주셔서, 함께 정감을 나눌 수 있는 계기가 되기를 기대해 봅니다.</span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><span style="font-size: large;"><span style="background-color: #808000;"><strong><span style="color: #ffffff;">  </span></strong><strong><span style="color: #ffffff;">■</span></strong></span><span style="background-color: #808000;"><strong><span style="color: #ffffff;"><a href="http://www.devicemart.co.kr/34404" target="_blank"> 아두이노</a>가 뭔가요?   </span></strong></span></span></p>
<p dir="ltr">   자, 그럼 시작해 보겠습니다. 요렇게 생긴 물건을 보신 적이 있나요?</p>
<p style="text-align: left;"><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-00.jpg" rel="lightbox[28246]"><img class="size-large wp-image-28259 aligncenter" alt="29 아두이노 신호기 00" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-00-620x348.jpg" width="620" height="348" /></a>   예. 요 물건의 이름이 아두이노인데요, 조금 더 정확하게 이야기하면 아두이노 UNO R3입니다. 파란색 플라스틱처럼 보이는 PCB(Printed Circuit Board) 판에 조그만 컴퓨터에 해당하는 마이크로콘트롤러(마이크로프로세서) 칩(IC, Integrated Circuit)이 장착되어 있어서 이것으로 계산 등 여러가지 일을 처리합니다. 전기는 +5V를 공급해주어야 하는데 이것은 USB 커넥터에 USB 케이블을 연결하여 공급합니다. 아두이노는 또한 입출력커넥터를 가지고 있는데, 여기에 전선을 꼽아서 LED(Light Emitted Diode, 발광다이오드)도 연결하여 불도 켰다 껐다 하고, 버저나 모터 등 여러 가지 다른 전자 부품도 연결하여 소리도 내고 움직이게 할 수도 있습니다.</p>
<p dir="ltr">   참, 아두이노(arduino)라는 이름은 이탈리아어로 ‘친한 친구’라는 뜻이라네요, 이 아두이노를 처음 고안해 낸 사람들이 이탈리아 사람들이어서 이름도 이탈리아어인데, 발음하기 편하고 입에 짝 달라붙는 정겨운 이름인 것 같습니다.</p>
<p style="text-align: left;">
<p dir="ltr"><span style="font-size: large;"><strong><span style="color: #ffffff; background-color: #808000;">  ■ <a href="http://www.devicemart.co.kr/goods/view.php?seq=34404" target="_blank">아두이노</a>로 뭘 할 수 있나요?   </span></strong></span></p>
<p dir="ltr">   이 아두이노로 뭘 할 수 있을까요? 앞으로 하나씩 DIY(Do It Yourself)로 만들어보겠지만, 아두이노로는 전등도 켤 수 있고, 음악도 연주할 수 있고, 장난감 로봇도 조정할 수 있고, 이것 저것 아주 많은 것을 할 수 있습니다. 유튜브(http://www.youtube.com)에서 볼 수 있는 실례를 몇 개만 소개해 보겠습니다. 가능하면 여러분이 직접 방문하여 동영상을 보면 더욱 좋겠네요.</p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/mXMIdq6ouG0" frameborder="0"></iframe></p>
<p style="text-align: center;"><strong>아두이노로 만든 종이 피아노</strong></p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/-oJytWP6pU4" frameborder="0"></iframe></p>
<p style="text-align: center;"><strong>아두이노 UNO를 활용해서 만든 초음파 레이더</strong></p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/VNRX5Xkz_00" frameborder="0"></iframe></p>
<p style="text-align: center;"><strong>WALL-E  로봇 아두이노</strong></p>
<p style="text-align: center;">
<p>   예로 든 것이 조금은 복잡한 것일 수 있겠지만, 작은 것부터 하나씩 공부하다 보면 나중에는 여러분도 위와 같은 작품을 DIY로 만들 수 있답니다! 자신감을 가지세요!</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><strong><span style="color: #ffffff; font-size: large; background-color: #808000;">  ■ 그러면 준비를 해 봅시다!   </span></strong></p>
<p dir="ltr">   아두이노를 이용하여 뭔가를 만들어 보려면, 일단 약간의 준비가 필요합니다. 꼭 필요한 것 먼저 확인해 봅시다.</p>
<p>&nbsp;</p>
<p dir="ltr">1.  아두이노 보드 : 오리지널 보드는 물론 OK이구요. 값이 싼 중국산 호환 보드나 블루투스 통신이나 모터 드라이버 등의 기능을 추가로 내장한 아두이노 보드도 OK</p>
<p dir="ltr">* 아두이노 오리지널 보드: <a href="http://www.devicemart.co.kr/34404" target="_blank">http://www.devicemart.co.kr/34404</a></p>
<p dir="ltr">* 아두이노 호환 보드 (예 : 뉴티씨 제품) : <a href="http://www.devicemart.co.kr/1137923" target="_blank">http://www.devicemart.co.kr/1137923</a></p>
<p dir="ltr">* 아두이노 호환 부가 기능 내장 보드 (예 : 제이씨넷 제품) : <a href="http://www.devicemart.co.kr/1137972" target="_blank">http://www.devicemart.co.kr/1137972</a></p>
<p>&nbsp;</p>
<p dir="ltr">2. PC 또는 노트북 (아무거나 OK)</p>
<p dir="ltr">
<p dir="ltr">3. 아두이노와 PC(노트북)을 연결할 USB 케이블 (한쪽은 USB-A 타입, 다른 한쪽은 USB-B 타입의 케이블, 보통 아두이노 구입시 함께 제공됨)</p>
<p>&nbsp;</p>
<p dir="ltr">4. 아두이노 프로그램 (이것의 이름도 아두이노입니다.)</p>
<p dir="ltr">4번은 소프트웨어이므로 인터넷에서 설치프로그램을 찾아 이를 PC에 설치하여야 합니다. 스마트폰으로 뭔가 재미있는 것을 하려면 앱을 설치해야 하는 것과 마찬가지지요.</p>
<p dir="ltr">
<p dir="ltr">설치 순서는 다음과 같습니다.</p>
<p> 1. 아두이노 공식 홈페이지(http://arduino.cc) 방문</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-04.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28263" alt="29 아두이노 신호기 04" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-04-620x368.jpg" width="620" height="368" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">2. 위쪽 메뉴 [Download]를 누르고 → 나타나는 창의 조금 아래 부분에 [Arduino 1.0.6]을 찾아 클릭 → [Windows Installer]를 클릭하면, [arduino-1.0.6-windows.exe]가 다운로드 됨</p>
<p>&nbsp;</p>
<p dir="ltr">3. 다운받은 arduino-1.0.6-windows.exe 파일 실행</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-05.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28264" alt="29 아두이노 신호기 05" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-05.jpg" width="480" height="275" /></a></p>
<p style="text-align: center;"><strong>[실행] 클릭</strong></p>
<p><img class="aligncenter size-large wp-image-28265" alt="29 아두이노 신호기 06" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-06.jpg" width="426" height="291" /></p>
<p style="text-align: center;"><strong>[I Agree] 클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-07.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28266" alt="29 아두이노 신호기 07" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-07.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"><strong>[Next] 클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-08.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28267" alt="29 아두이노 신호기 08" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-08.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"> <strong>[Install] 클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-09.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28268" alt="29 아두이노 신호기 09" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-09.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"><strong> 기다립니다.</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-10.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28269" alt="29 아두이노 신호기 10" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-10.jpg" width="508" height="239" /></a></p>
<p style="text-align: center;"><strong> [V]표시를 클릭하고 [설치]클릭</strong></p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-11.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28270" alt="29 아두이노 신호기 11" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-11.jpg" width="426" height="291" /></a></p>
<p style="text-align: center;"><strong> 설치완료 후 [Close] 클릭</strong></p>
<p>4. PC 바탕화면에  <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" rel="lightbox[28246]"><img class=" wp-image-28271 alignnone" alt="29 아두이노 신호기 12" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" width="31" height="36" /></a>  이런 아이콘이 생겼으면 설치가 잘 된 것입니다.</p>
<p>그러면, 내친김에 얼른 실행시켜 볼까요?</p>
<p dir="ltr">
<p dir="ltr">1. 아두이노와 PC를 USB 케이블로 연결</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-26.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28285" alt="29 아두이노 신호기 26" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-26-620x348.jpg" width="620" height="348" /></a></p>
<p dir="ltr">2. 전원 LED에 녹색으로 불이 들어오면 일단 OK!!! 구요.</p>
<p>PC 화면에서 <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" rel="lightbox[28246]"><img alt="29 아두이노 신호기 12" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-12.jpg" width="31" height="36" /></a> 아이콘 클릭하여 아래와 같은 화면이 나타나면 설치도 일단 OK!!! 네요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-13.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28272" alt="29 아두이노 신호기 13" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-13.jpg" width="500" height="600" /></a></p>
<p>내 아두이노가 준비되었고 나와 아두이노와 이야기를 나눌 아두이노 앱(App. 응용프로그램)이 준비되었으니 가장 기본적인 주거환경은 만들어진 것이네요.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large;"><strong><span style="color: #ffffff; background-color: #808000;">  ■ 프로그램을 짜서 실행시켜 보기   </span></strong></span></p>
<p dir="ltr">   잠시 쉬었으니까, 이제 첫번째 DIY 프로젝트로 빨강-노랑-녹색 불이 반짝 반짝 켜졌다 꺼지는 3색 신호등을 한 번 만들어 보겠습니다.</p>
<p dir="ltr">   걸음마도 못하는 아기가 뭐 벌써 만드냐구요? 뭐, 일단 목표를 세우고 만들어가는 과정에서 필요한 것은 차근차근 하나씩 배우고 익히면 되겠지요. 힘들면 쉬었다 가고, 재미있는 것이 나오면 조금 놀다 가고&#8230;</p>
<p dir="ltr">   “배우고 익힌다!”는 구절은 제가 아주 좋아하는 구절인데요. 논어의 가장 첫번째 장에 이런 구절이 있습니다. “學而時習之 不易說乎” (학이시습지 불역열호) &#8211; 배우고 때로 익히면 또한 기쁘지 아니한가! 나머지 2개도 멋있습니다. “有朋自遠方來 不亦樂乎” (유붕자원방래 불역낙호) &#8211; 벗이 있어 멀리서 찾아오면 또한 즐겁지 아니한가! “人不知而不溫 不易君子乎” (인불지이불온 불역군자호) 사람들이 알아주지 않는다 하여도 성내지 않으면 또한 군자(멋진 사람)가 아닌가! 옆 길로 잠시 샜는데&#8230;다시 원래 길로 돌아 갑니다.</p>
<p dir="ltr">   앞에서 아두이노는 마이크로콘트롤러가 들어있는 간단한 컴퓨터라고 이야기했습니다. 좀 더 쉽게 이해하기 위하여 아두이노를 그냥 “잘 훈련된 훈련견”이라고 생각하면 이해하기 쉬울 것 같습니다. 명령을 내리면 훈련견이 명령에 알맞은 동작을 취하듯, 아두이노에게 해야 할 명령을 내리면 아두이노가 실행하게 되는 것이지요. 여기서 명령이라는 것이 바로 프로그램인데, 훈련견이 정해진 명령어에만 반응하는 것처럼, 아두이노도 정해진 형식을 갖춘 정해진 명령어만 알아듣습니다.</p>
<p dir="ltr">   오우~ 그럼 명령어의 종류를 알아서 필요한 명령만 죽 연결해서 명령을 내리면 되겠네요.</p>
<p dir="ltr">   짝~짝~짝~</p>
<p dir="ltr">   예. 맞습니다. 너무 잘 하는데요?</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-14.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28273" alt="29 아두이노 신호기 14" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-14-620x402.jpg" width="620" height="402" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   그러면, 어떤 명령어가 있을까요? 마음이 급하니까 일단 제일 쉬운 명령어 두 세 개만 배워서 명령을 내려봅시다. 아래와 같이 진행해 볼까요?</p>
<p>&nbsp;</p>
<p dir="ltr">1. 아두이노와 PC를 USB 케이블로 연결</p>
<p dir="ltr">
<p dir="ltr">2. PC에서 아두이노(앱, 엄밀하게는 IDE(Integrated Development Environment, 통합개발환경)) 실행</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-15.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28274" alt="29 아두이노 신호기 15" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-15.jpg" width="500" height="600" /></a></p>
<p>&nbsp;</p>
<p>3. 메뉴에서 [도구] -&gt; [보드] -&gt;[Arduino Uno] 선택</p>
<p dir="ltr">(아두이노는 사실 우노(UNO)뿐만 아니라 NANO, MEGA, MINI 등 다양한 종류가 있으나 UNO가 가장 많이 사용되고 있음)</p>
<p dir="ltr">
<p dir="ltr">4. 메뉴에서 [도구] -&gt; [시리얼포트] -&gt; [COMx] 선택 (단, x는 [시작] -&gt; [제어판] -&gt; [장치관리자] -&gt; [포트] -&gt; [Arduino Uno(COMx)]로 보이는 상태에서 x에 대응되는 숫자임) (아두이노는 USB로 연결되기 때문에 PC 입장에서는 USB 장치이므로 USB 드라이버가 필요하며 이 드라이버는 아두이노 프로그램 설치시 이미 함께 설치되었음. 만약 설치되지 않았다면 수동으로 설치하여야 함)</p>
<p>&nbsp;</p>
<p>5. 흰색 창에 아래와 같은 프로그램을 입력</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-16.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28275" alt="29 아두이노 신호기 16" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-16.jpg" width="500" height="600" /></a></p>
<p>&nbsp;</p>
<p>6. 상단 메뉴에서 <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" rel="lightbox[28246]"><img class=" wp-image-28276 alignnone" alt="29 아두이노 신호기 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" width="29" height="25" /></a> 생긴 아이콘을 찾아 클릭하면 아래쪽에 “스케치 컴파일” ▶ “업로딩” ▶ “업로딩 완료”로 제목이 나타나며 진행이 되고, 아래쪽 검정색 창에는 진행되는 내용이 스크롤되면서 디스플레이되며, 최종적으로는 아래의 형태가 나타납니다.(최종적으로 제목으로 “업로드 완료”가 나타나고 메시지 내용으로 “avrdude done. Thank you.”,가 나타나면 성공입니다.)</p>
<p>(<a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" rel="lightbox[28246]"><img alt="29 아두이노 신호기 17" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-17.jpg" width="29" height="25" /></a> 아이콘은 컴파일 및 업로드를 수행하라는 아이콘이며, 컴파일은 C, C++ 언어와 같은 프로그램언어를 마이크로콘트롤러가 직접 알아먹을 수 있는 좀 더 직접적인 기계어로 바꾸어주는 작업을 말하며, 업로드는 컴파일의 결과로 생긴 기계어를 마이크로콘트롤러에게 전달하여 이를 마이크로콘트롤러 내부에 실행할 수 있는 형태로 저장하는 작업을 말함.)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-18.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28277" alt="29 아두이노 신호기 18" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-18.jpg" width="500" height="600" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">7. 위와 같은 형태가 나오지 않고 “컴파일 에러”가 나오면 입력한 프로그램의 형식이 잘못된 것이고, 메시지 출력 부분에서 “Retry timeout ERROR” 등이 나타나면 USB 연결선이 잘못되었거나, 아두이노가 고장 난 경우 등등입니다. 만약, 정상적으로 업로드되지 않았다면 그 원인을 찾아내어 이를 해결한 후 다시 실행하여야 합니다.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #ff0000;"><strong>   [ setup() 과 loop() ]</strong></span></p>
<p>&nbsp;</p>
<p dir="ltr">   아두이노에서 프로그램을 작성하는 것을 스케치(sketch)라고 합니다. 아두이노는 예술가와 같은 비전공자도 쉽게 사용할 수 있도록 간단한 인터페이스를 제공하는데, 원하는 것을 쉽게 쓱쓱 그려낸다는 의미를 담아 스케치라고 하였다네요.</p>
<p dir="ltr">   아두이노 프로그램의 기반은 C++이라는 컴퓨터 프로그래밍 언어(C++ 언어는 C언어에 기반을 둔 목적기반 언어)이며, 이 언어로 올바르게 작성된 프로그램만 아두이노가 명령어로 받아들이고 실행하게 됩니다. 그러므로, 아두이노에게 일을 시켜려면 이 언어에 대한 기본 형식과 구조 등에 대한 내용을 알아야만 합니다. 전체적인 내용을 모두 배우려면 시간이 많이 걸릴 수 있으므로, 우리는 DIY 작품을 만드는데 꼭 필요한 부분만 필요할 때마다 배우고 익히도록 해보지요. (다만, 이 강좌가 C 및 C++ 언어에 대한 강좌는 아니기 때문에, C 및 C++에 대하여는 최소한의 기초적인 내용은 알고 있다고 가정하고, 진행합니다.)</p>
<p dir="ltr">   일단, 위에서 작성한 프로그램을 보겠습니다.</p>
<p dir="ltr">   아두이노의 프로그램은 크게 두 부분으로 나누어집니다. 하나는 setup() 이라는 부분이고, 다른 하나는 loop()라는 부분입니다. 원래 C 프로그램은 main()이라는 함수의 형태를 취하도록 되어 있고, 이 main() 함수 내에서 필요한 명령을 순차적으로 작성하여 실행하게 되어 있습니다.</p>
<p dir="ltr">   아두이노 개발환경(IDE)은 사용자가 쉽게 프로그램할 수 있도록 항상 main() 프로그램을 공짜로 넣어주도록 되어있고, 이 main() 프로그램 안에서 첫번째로 setup()이라는 함수를 실행하고, 두번째로 loop()라는 프로그램을 반복적으로 실행하도록 이미 만들어져 있다고만 알아두면 되겠습니다.</p>
<p dir="ltr">   이렇게 실행이 되겠네요.</p>
<p>&nbsp;</p>
<p dir="ltr">   <strong><span style="color: #ff0000;">setup()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   loop()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   loop()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   …</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   Loop()</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   …</span></strong></p>
<p dir="ltr"><strong><span style="color: #ff0000;">   … (무한 실행)</span></strong></p>
<p>&nbsp;</p>
<p dir="ltr">   우리가 작성한 setup() 함수와 loop() 함수는 중괄호로 둘러싸인 부분의 내용이 하나도 없으므로, 이 프로그램은 아무 것도 안하고 그냥 다시 원위치로 돌아가는 프로그램이 되겠습니다. 하지만 우리는 이 프로그램이 잘 컴파일되고, 잘 업로드 되었다는 사실만으로도 이제부터 우리가 원하는 진짜 프로그램을 작성할 수 있는 준비를 끝낸 것이 됩니다.</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><span style="font-size: large; background-color: #808000;"><strong><span style="color: #ffffff;">  ■<a href="http://www.devicemart.co.kr/goods/view.php?seq=34404" target="_blank"> 아두이노</a>에 LED 연결하기   </span></strong></span></p>
<p dir="ltr">   신호등을 만들어서 이것을 아두이노에 연결해서 불을 켜고 끄려면, 일단 아두이노가 이 신호등에 전기를 넣었다 끊었다 할 수 있어야 할 것 같은데… 이것은 어떻게 할 수 있을까요?</p>
<p dir="ltr">   보통 집에서 사용하는 전등이나 전열기 등은 콘센트를 꼽으면 전기가 통하고 뽑으면 전기가 끊어집니다. 또는 전등과 같이 미리 전원은 연결해 놓고 중간에 스위치를 넣어서 이것을 ON/OFF 위치로 이동하여서 껐다 켰다 할 수도 있겠지요.</p>
<p dir="ltr">   아두이노도 이러한 기능을 하는 전기선을 가지고 있는데 이러한 선이 바로 입출력 핀(커넥터)입니다. 전기를 공급하였다가 끊었다가 할 수 있는 선이지요. 아두이노는 프로그램에 의하여 각각의 입출력 전압을 ON(5V, High) 상태로 만들거나, OFF(0V(GND), Low) 상태로 만들 수 있는 능력이 있답니다. 이런 핀들이 아래와 같이 커넥터로 나와 있는데. 아두이노 UNO의 경우는 총 20개나 되지요.</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-19.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28278" alt="29 아두이노 신호기 19" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-19-620x425.jpg" width="620" height="425" /></a></p>
<p dir="ltr">   물론, 집에 있는 콘센트는 220V의 교류(AC : Alternating Current) 전원이고, 아두이노의 입출력핀은 5V의 직류(DC : Direct Current)를 제공하는 점이 다르지만, 전기를 공급한다는 점에서는 비슷하답니다. 음, 그렇다면, 형광등이나 전등처럼 빛을 발산하는 것으로 5V의 전원으로 동작하는 부품을 찾아 이것을 연결하면 될 것 같은데, 이 부품은 뭘까요? 뭐, 모두 다 잘 아시리라 생각하는데… 이것이 바로 LED(Light Emitting Diode)랍니다. 요렇게 생겼지요. (심볼은 오른쪽 그림)</p>
<p dir="ltr"> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노1-자료.png" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28297" alt="아두이노1 자료" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/아두이노1-자료.png" width="440" height="133" /></a></p>
<p dir="ltr">   2개의 다리를 가지고 있고, 색깔은 빨강, 파랑, 노랑, 녹색, 흰색이 있답니다. 크기는 지름이 3mm나 5mm 인 것이 보통이고, 형태는 둥근 것이 보통이나 사각형 형태도 있지요.</p>
<p dir="ltr">   LED를 그대로 번역해보면, Light(빛) + Emitting(발산) + Diode(다이오드)가 되어서 보통 ‘발광다이오드’라고 칭하는데, 다이오드여서 한쪽 방향으로만 전기가 통합니다. 즉, 순방향으로 전압을 가하면 전류가 잘 흘러서 불이 켜지고, 역방향으로 전압을 가하면 전류가 흐르지 않아 불이 꺼지게 되는 것이지요.</p>
<p dir="ltr">   가정용 전구와 LED의 연결을 비교해 보면 아래와 같습니다. (LED는 보통 200오옴 ~ 1K 오옴의 저항을 직렬로 연결해 주어야 하며, 이 저항이 전류의 양을 조절하여 빛의 밝기를 조절할 수 있게 해줍니다. 저항 없이 직접 연결하면 빛은 엄청 밝지만 수명은 매우 짧아지므로 주의 요망!)</p>
<p dir="ltr">   또한, 교류 전원은 방향이 없어서 콘센트를 아무쪽 방향으로 꽂아도 되지만, LED의 연결은 방향이 있어서 그림에서와 같이 입출력핀에서 순방향이 되도록(LED는 다리의 길이가 긴 쪽이 ‘+’ 임!) +5V 전원 ▶ 저항 ▶ LED ▶ GND로 연결하여야 합니다.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-21.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28280" alt="29 아두이노 신호기 21" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-21-620x417.jpg" width="620" height="417" /></a></p>
<p dir="ltr">   이제 실전 DIY로 넘어가기 전에 잠깐 또 쉬겠습니다.</p>
<p dir="ltr">   10분간 휴식! 기지개도 좀 펴시고, 간단한 스트레칭도 해 봅시다. 헛! 둘! 헛! 둘!</p>
<p dir="ltr">
<p dir="ltr">
<p dir="ltr"><strong><span style="color: #ffffff; font-size: large; background-color: #808000;">  ■ LED 1개 켜기 / 끄기   </span></strong></p>
<p dir="ltr">   자, 드디어 실전 DIY 시간입니다. 3개의 LED 켜기에 앞서 먼저 1개의 빨강 LED를 다뤄보지요. “뱁새가 황새 따라가다가는 가랑이가 찢어진다”는 속담과 “천리길도 한걸음부터”라는 속담을 새기면서 말이죠.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: medium;"><strong>[실행 순서]</strong></span></p>
<p dir="ltr">1. 아두이노를 준비하고, 브레드보드와 부품, 케이블을 이용하여 다음과 같이 연결. 즉, LED를 ‘2’ 핀(앞으로는 ‘D2’라고 이름하겠습니다. 여기서 ‘D’는 Digital의 의미)에 연결 (LED는 일반 5mm(또는 3mm) 빨강 LED, 저항은 200~1K 오옴)</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-22.jpg" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28281" alt="29 아두이노 신호기 22" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-22.jpg" width="351" height="344" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">2. USB 케이블로 아두이노와 PC 연결</p>
<p>&nbsp;</p>
<p dir="ltr">3. 메뉴에서 [도구] ▶ [보드] ▶ [Arduino Uno] 선택 (처음 한번 세팅되면 다음부터는 생략!)</p>
<p>&nbsp;</p>
<p dir="ltr">4. 메뉴에서 [도구] ▶ [시리얼포트] ▶ [COMx] 선택 (단, x는 [시작] ▶ [제어판] ▶ [장치관리자] ▶ [포트] ▶ [Arduino Uno(COMx)]로 보이는 상태에서 x에 대항되는 숫자)</p>
<p>&nbsp;</p>
<p dir="ltr">5. 아래의 스케치 프로그램 입력</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">void setup()</p>
<p dir="ltr">{</p>
<p dir="ltr">   pinMode(2, OUTPUT);                           // 2번핀을 출력으로 선언</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()</p>
<p dir="ltr">{</p>
<p dir="ltr">   digitalWrite(2, HIGH);                         // 2번핀에 High(1)를 출력</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   setup() 함수는 한번만 실행이 되고 loop() 함수는 무한 반복으로 실행된다고 하였으니 실제 실행되는 내용은 아래와 같이 되겠네요.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">        pinMode(2, OUTPUT);</p>
<p dir="ltr">        digitalWrite(2, HIGH);</p>
<p dir="ltr">        digitalWrite(2, HIGH);</p>
<p dir="ltr">        …</p>
<p dir="ltr">        digitalWrite(2, HIGH);</p>
<p dir="ltr">        …</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   아두이노는 상당히 많은 라이브러리 함수를 제공하는데요. 이것 때문에 우리는 아두이노의 내부를 알 필요 없이, 그냥 아두이노가 제공하는 함수를 불러다 쓰면 되기 때문에 매우 편리합니다. pinMode() 함수와 digitalWrite() 함수도 아두이노가 제공하는 라이브러리입니다.</p>
<p dir="ltr">   그러면 이 라이브러리는 어떻게 동작하는 좀 더 자세히 알아보겠습니다.</p>
<p style="text-align: left;">   pinMode() 함수는 아두이노의 입출력핀을 입력으로 사용할 것이냐, 출력으로 사용할 것이냐를 정해주는 함수입니다. 어떤 핀? 입력?/출력? 을 결정해 주어야 하니까 2개의 값이 필요하겠네요. 즉, 어떤 핀?에 해당되는 값을 pin이라는 변수로, 입력?/출력?에 해당되는 값을 mode 형태로 전달하면 되므로 다음과 같은 형태가 됩니다.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">pinMode(pin, mode)</p>
<p dir="ltr">pin : 입출력핀 번호에 해당하는 숫자</p>
<p dir="ltr">mode : 이 핀을 입력으로 사용하는 경우는 “INPUT”, 출력으로 사용하는 경우는 “OUTPUT” (INPUT이나 OUTPUT은 상수값인데요. 이것도 이미 아두이노에서 정해준 값이므로 그냥 이렇게 사용하면 됩니다.)</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   우리는 LED를 D2핀에 연결하였고, 이 핀은 아두이노 입장에서 출력이므로 pinMode(2, OUTPUT)으로 프로그램합니다.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;" valign="middle">
<p dir="ltr">digitalWrite(pin, value)</p>
<p dir="ltr">pin : 입출력핀 번호에 해당하는 숫자</p>
<p>value : 이 핀을 HIGH 상태로 만들려면 “HIGH”, LOW 상태로 만들려면 “LOW”</td>
</tr>
</tbody>
</table>
<p dir="ltr">   digitalWrite() 함수는 아두이노의 입출력핀에 출력으로 어떤 값을 내보낼 것인가, 즉, HIGH(ON, +5V) 또는 LOW(OFF, 0V)를 정해주는 함수입니다. 이 함수도 어떤 핀?을 HIGH?/LOW?로 만들 것인지를 결정해야 하므로 2개의 변수값이 필요하므로 digitalWrite(pin, value) 형태가 되겠습니다.</p>
<p dir="ltr">   이제 2개 함수를 종합적으로 이해해본다면, 위 프로그램은 D2핀을 출력으로 하고, 이 D2핀을 HIGH로 출력하는 것을 무한히 반복하는, 즉 LED가 항상 켜지는 프로그램이 되겠습니다!</p>
<p dir="ltr">   정말 그런지 얼른 실행해 봅시다.</p>
<p style="text-align: left;">
<p dir="ltr">6. 상단 메뉴에서 생긴 아이콘을 찾아 클릭하고 아래쪽에 “스케치 컴파일” ▶ “업로딩” ▶ “업로딩 완료” 및 “avrdude done. Thank you.”, 메시지가 나타나는지 확인!</p>
<p style="text-align: left;">
<p dir="ltr">7. 에러가 없는 경우 빨강색 LED가 켜지는지 확인!</p>
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-23.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28282" alt="29 아두이노 신호기 23" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-23-620x348.jpg" width="620" height="348" /></a></p>
<p>&nbsp;</p>
<p dir="ltr">   켜졌다면 와우! 3번째 “축하축하”입니다. 이제 8부 능선에 도착했네요.</p>
<p dir="ltr">   정상이 코 앞에 다달았습니다. 여기서 다시 충분한 휴식을 취한 후에 정상 공격에 나서겠습니다. 10분간 또 휴식~~~ 그리고 막간을 이용해서 아래의 간단 과제 실행 실시! 윽!</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="background-color: #9acd32;" valign="middle">
<p dir="ltr"><strong>[과제-3색신호등-1]</strong></p>
<p dir="ltr"><strong>위의 LED를 끄는 스케치 프로그램을 작성하고 실행하여 실제로 꺼보세요!</strong></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: left;">
<p dir="ltr">
<p dir="ltr"><strong><span style="color: #ffffff; font-size: large; background-color: #808000;">  ■ 3색 신호등 연결하기    </span></strong></p>
<p dir="ltr">   “시작이 반이다”라는 속담이 있는데 정말 시작이 반인 것 같다는 생각을 가끔 합니다. 실행하려면 미리 준비하여야 하는 것도 있고, 일단 시작하면 특별한 일이 없는 한 계속 가야 하는 것이어서 마음 먹는 것, 실행하는 것 자체가 반은 진행된 것이라는 느낌이지요.</p>
<p dir="ltr">   조금 전 첫 DIY로 빨강 LED 하나 달랑 켜는 것을 해 보았습니다. (참, LED 끄는 과제는 내드렸는데 다들 해보셨죠? 너무 너무 쉬었겠지만&#8230;) 어느새 우리는 간단한 중간 목표를 한 개 달성했습니다. 시작했다 싶었는데 벌써 결과가 나온 것이지요. LED를 한 개 켜보았으니, 3개(3색 신호등), 100개(전광판)도 켜고 끌 수 있고, LED가 아닌 것(버저, 모터 등)도 얼마든지 연결하면 동작시킬 수 있다는 가능성을 연 것입니다. 정말 “시작이 반이지요?” 또, 옆으로 샜는데… 다시 원위치로 돌아가, 정상 공격에 나서겠습니다.</p>
<p dir="ltr">   빨강색 LED 1개를 연결하는 것을 방금 배웠으니, LED 3개 연결하는 것도 이것을 그대로 응용하면 될 것 같습니다. LED 1개를 아두이노 입출력 포트 1개에 연결한 방법과 똑같이 LED 3개를 각각 다른 포트에 연결하면 되겠네요. 오~ 너무 쉽다.</p>
<p dir="ltr">   음. 그런데 어떤 핀에다 연결할까요? 입출력핀이 20개나 있으니까 아무데나 연결해도 괜찮긴 하지만, 기왕이면 순서대로 연결하도록 하지요. 이번에는 D4-빨강, D3-노랑, D2-녹색 LED를 연결하는 회로를 꾸며봅시다. 혼자서도 할 수 있겠지요? 이번 DIY가 3색 신호등이니까 당연히 LED는 빨강-노랑-녹색 순으로 브레드보드에 그럴듯하게 꽂아야 합니다. 자, 그럼 아래 그림 보기 전에 각자 회로 꾸미기 시작~~~~ 누가 누가 예쁘게 꾸미나~~~ (5분 줍니다.) (참, 브레드보드 내의 핀 연결은 어떻게 되는지 모두 알지요? 혹시 모르면 다음 그림 참조)</p>
<p style="text-align: left;">
<p dir="ltr"><span style="color: #0000ff;">(1분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(2분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(3분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(4분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">(5분)</span></p>
<p dir="ltr"><span style="color: #0000ff;">…</span></p>
<p style="text-align: left;">
<p dir="ltr">   저는 요렇게 만들어 보았습니다. 실제로 장착할 때는 선 길이와 부품 모양이 달라서 요것과는 조금 다르게 보이겠지만요. 예쁜가요?</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-28.jpg" rel="lightbox[28246]"><img class="aligncenter size-large wp-image-28287" alt="29 아두이노 신호기 28" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/29-아두이노-신호기-28-620x502.jpg" width="620" height="502" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #ffffff; font-size: large; background-color: #808000;"><strong>  ■ 3색 신호등 알고리즘    </strong></span></p>
<p dir="ltr">   이제 연결은 끝났으니 프로그램을 작성하여 실행할 차례네요.</p>
<p dir="ltr">   그런데, 프로그램을 작성할 때는 항상 주어진 문제를 어떤 식으로 풀어갈 것인지를 먼저 생각하여야 합니다. 그냥 무작정 프로그램을 작성할 수도 없을뿐더러 별 생각없이 생각나는대로 아무렇게나 프로그램을 작성하다 보면 효율성도 떨어지고 해결책을 찾는 것도 뒤죽박죽이 되어 쉽지 않은 경우가 대부분이지요.</p>
<p dir="ltr">   그러면 어떻게 해야 할까요?</p>
<p dir="ltr">   “어떤 문제를 해결하기 위해 명확히 정의된 유한 개의 규칙과 절차의 모임”을 알고리즘(algorithm)이라고 하는데, 우리는 어떤 문제를 해결하려고 할 때 이러한 알고리즘을 먼저 작성한 후 이를 프로그램으로 바꾸는 방법을 사용하도록 하겠습니다. 뭐, 똑 떨어지게 꼭 이렇게 해야 한다는 법도 없고 실제로 일을 하다 보면 그렇게 되지도 않지만, 가능한(조금 부족하거나 모호한 경우가 있더라도) 알고리즘을 작성한 후에 프로그램을 하도록 하는 것이 정상적인 방법입니다. 완벽하지는 않더라도 어느 정도는 방향을 잡고 가야 한다는 이야기입니다.</p>
<p dir="ltr">  알고리즘을 기술하는 방식은 크게 아래와 같이 3가지가 있습니다.</p>
<p dir="ltr">1. 자연어를 이용하는 방법 : 말(글)로 자연스럽게 기술</p>
<p dir="ltr">2. 순서도(flow chart)를 이용하는 방법 : 미리 의미가 정해진 도형과 선을 이용하여 기술</p>
<p dir="ltr">3. 유사 코드(psudo code)를 이용하는 방법 : 프로그램 언어와 비슷하지만 문법에는 크게 얽매이지 않게 어느 정도 자유롭게 기술하는 방법</p>
<p dir="ltr">   저는 위 3가지를 혼합하여 이해하기 쉽게 표현하는 형태를 취하도록 하겠습니다.</p>
<p dir="ltr">   참, 알고리즘을 기술하려면, 이것에 앞서 일단 해결하고자 하는 목표(요구사항)를 정확하게 규정할 필요가 있습니다. 즉, 제작하려고 하는 것이 무엇인지? 기능이 무엇인지? 어떻게 동작하여야 하는지? 등이 명확하게 기술되어 있어야 실제로 구현을 어디까지 해야 하는지가 명확하게 되기 때문입니다. 보통 이것을 규격(스펙, SPEC, Specification)이라고 하는데, 우리의 목표인 3색 신호등 DIY를 위하여 기능적인 부분만 규격을 작성해 보기로 하지요.</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="font-size: medium;"><strong>[3색 신호등 기능 규격]</strong></span></p>
<p>1. 처음 전원이 들어오면 빨강 LED에 불이 켜진다.</p>
<p dir="ltr">2. 불이 들어오는 순서는 빨강 → 노랑 → 녹색 → 빨강 → 노랑 → … 으로 무한 반복된다.</p>
<p dir="ltr">3. 불은 어떤 한 순간 1개만 켜져 있어야 한다.</p>
<p dir="ltr">4. 한 개의 불은 3초 동안 켜진 상태를 유지한다.</p>
<p dir="ltr">   위 기능을 만족하기 위한 프로그램을 작성하기 위하여 먼저 알고리즘을 기술해 봅시다.</p>
<p dir="ltr">   순서도 비슷하게 기술해 보면 다음과 같은 형태가 될 것 같네요.</p>
<p> <a href="http://www.ntrexgo.com/wp-content/uploads/2015/07/Cap-2015-07-16-15-59-13-417.png" rel="lightbox[28246]"><img class="aligncenter size-full wp-image-28288" alt="Cap 2015-07-16 15-59-13-417" src="http://www.ntrexgo.com/wp-content/uploads/2015/07/Cap-2015-07-16-15-59-13-417.png" width="430" height="273" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p dir="ltr"><span style="color: #ffffff; font-size: large; background-color: #808000;"><strong>  ■ 3색 신호등 코딩(cording)하기    </strong></span></p>
<p dir="ltr">   프로그램을 작성하는 것을 보통 코딩(cording)한다고 합니다. 위의 알고리즘을 보면서 순서대로 알맞은 코딩을 하면 되겠네요. 우리는 이미 배워서 알고 있는 것은 그 방법을 사용하여 코딩하면 되고, 잘 모르는 것은 새로운 코딩 방법을 배워야 합니다. 새로운 코딩은 기존에 배웠던 것을 응용하거나 조합하여 만들어 내는 방법도 있지만, 일단 아두이노에서는 혹시 우리가 원하는 기능을 라이이브러리로 이미 만들어 놓았는지, 아니면 다른 몇 개의 기존 라이브러리를 응용하거나 조합하여 구현할 수 있는지를 확인해 보는 것이 중요합니다. (남들이 애써서 다 만들어 놓은 것을 내가 낑낑대면서 또 만들 필요가 없으니까요. “고맙습니다” 하면서 낼름 갔다 쓰는게 장땡!이고, 사실 아두이노는 이것이 가장 큰 장점 중의 하나입니다.) 하나씩 체크해 볼까요?</p>
<p dir="ltr">   LED를 켜고 끄는 것은 조금 전에 배웠으므로 그것을 이용하면 되고, 일정 시간(초) 동안 기다리는 기능이 있는데, 이것을 해결해 줄 수 있는 아두이노 라이브러리(들)이 있는지를 잘 찾아 봐야겠습니다.</p>
<p dir="ltr">   다행히, delay( )라는 함수가 있네요. 그럼 형태와 기능이 어떤지 살펴볼까요.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">void delay(unsigned long ms)</p>
<p dir="ltr">                  // 1/1000초(millisec) 단위로 시간을 지연하는 함수</p>
<p dir="ltr">                  // “void”는 함수 실행 종료 후 리턴값(출력값)이 없음을 의미</p>
<p dir="ltr">                  // “unsigned long ms”는 함수 입력값은 ms이고</p>
<p dir="ltr">                  // 타입은 unsigned long임을 나타냄 (4바이트 크기, 최대 40억 정도까지 표현 가능)</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   예를 들어 “delay(500);” 을 코딩하면 500ms = 0.5초가 지연되는(흘러가는) 것이 되겠습니다. Good~~~ 그렇다면, 이제 모든 부분이 해결되었으니까 여러분이 직접 코딩해 보겠습니다. 10분 기다리면 되겠지요? 참, 앞에서도 그랬지만 같이 해보기 전에 무조건 자신이 먼저 시도해 보는 것이 바람직합니다. (이래야 실력이 쑥쑥 늡니다.). 잘 안되면 그 때 아래에 제시한 내용을 보고 이해한 후, 다시 처음부터 혼자 힘으로 한 번 더 코딩해서 똑같은 결과를 얻어야만 자기 것이 되지요. 꼭~꼭~꼭~ 그렇게 해보세요!! 10분 기다립니다. 저도 하러 갑니다.</p>
<p dir="ltr">   모두(?) 잘(?) 되었죠? YES or NOT? 다음을 보시지요.</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="border: 1px solid #000000;">
<p dir="ltr">#define RED_LED 4           // “#define A B”은 이후 프로그램에서 A가 나오면 B로 치환</p>
<p dir="ltr">#define YELLOW_LED 3      // 프로그램에서 직접 숫자를 써도 되지만 이렇게 해놓으면</p>
<p dir="ltr">#define GREEN_LED 2        // 번호가 아닌 Label로 의미가 전달되므로 더 쉬움</p>
<p dir="ltr">void setup()                     // 초기에 한 번만 실행</p>
<p dir="ltr">{</p>
<p dir="ltr"> pinMode(RED_LED, OUTPUT);                     // 4번핀은 출력</p>
<p dir="ltr"> pinMode(YELLOW_LED, OUTPUT);                // 3번핀도 출력</p>
<p dir="ltr"> pinMode(GREEN_LED, OUTPUT);                  // 2번핀도 출력</p>
<p dir="ltr"> digitalWrite(RED_LED, HIGH);                     // 빨강 LED ON</p>
<p dir="ltr">}</p>
<p dir="ltr">void loop()                       // 무한 반복 루프</p>
<p dir="ltr">{</p>
<p dir="ltr"> delay(3000);                                            // 3초 대기</p>
<p dir="ltr"> digitalWrite(RED_LED, LOW);  digitalWrite(YELLOW_LED, HIGH);</p>
<p dir="ltr">                                                              // 빨강 LED OFF, 노랑 LED ON</p>
<p dir="ltr">  delay(3000);</p>
<p dir="ltr"> digitalWrite(YELLOW_LED, LOW);  digitalWrite(GREEN_LED, HIGH);</p>
<p dir="ltr">                                                              // 노랑 LED OFF, 녹색 LED ON</p>
<p dir="ltr">  delay(3000);</p>
<p dir="ltr"> digitalWrite(GREEN_LED, LOW);  digitalWrite(RED_LED, HIGH);</p>
<p dir="ltr">                                                               // 녹색 LED ON, 빨강 LED ON</p>
<p dir="ltr">}</p>
</td>
</tr>
</tbody>
</table>
<p dir="ltr">   이제 아두이노 연결하고 스케치 프로그램 입력하고 실행하는 것은 다 아시니까 실행해 봅시다. 다들 잘 동작하나요?</p>
<p style="text-align: center;"><iframe width="425" height="350" src="http://www.youtube.com/embed/JVNDQeTjNb0" frameborder="0"></iframe></p>
<p>   이 동영상처럼 3초마다 돌아가면서 빨강-노랑-녹색 LED가 잘 켜지면 되겠습니다. 성공입니다! 자축의 박수~ 짝! 짝! 짝!</p>
<p dir="ltr">   여러분, 오늘 모두모두 너무너무 수고하셨고 자랑스럽습니다.</p>
<p dir="ltr">   첫번째 단추를 잘 끼웠으니 여러분은 벌써 목표의 반은 이루신 것이지요.</p>
<p dir="ltr">   다음 시간에는 3색 LED를 가지고 “카멜레온 반지 만들기 DIY”에 도전해 보기로 하고, 오늘은 기쁜마음으로 여기에서 강의를 마치겠습니다.</p>
<p dir="ltr">   아래 과제는 시간 나실 때 해보시고, 다음 강의에서 건강한 얼굴로 뵙겠습니다. 모두모두 안녕~!</p>
<p dir="ltr">   감사합니다.</p>
<p dir="ltr">
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="background-color: #9acd32;" valign="middle">
<p dir="ltr"><strong>[과제-3색신호등-2]</strong></p>
<p dir="ltr"><strong>LED 불의 움직임이 0.5초 간격으로 (녹색 → 노랑 → 빨강 → 녹색 → …)이 무한 반복되는 프로그램을 작성해 보세요.</strong></p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="width: 600px;" border="0" cellpadding="10">
<tbody>
<tr>
<td style="background-color: #9acd32;" valign="middle">
<p dir="ltr"><strong>[과제-3색신호등-3]</strong></p>
<p><strong>LED가 1초 간격으로 (빨강-노랑 → 빨강-녹색 → 녹색-노랑 → 빨강-노랑-녹색 → 모두 꺼짐 → …)이 무한 반복되는 프로그램을 작성해 보세요.</strong></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="font-size: medium;"><strong> </strong></span></p>
<p style="text-align: center;">
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/28246/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[제이씨넷] 신제품 출시기념 할인이벤트!!</title>
		<link>http://www.ntrexgo.com/archives/26348</link>
		<comments>http://www.ntrexgo.com/archives/26348#comments</comments>
		<pubDate>Mon, 01 Sep 2014 08:05:34 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[이벤트]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=26348</guid>
		<description><![CDATA[&#160;
[제이씨넷] 신제품 출시기념 할인이벤트!!
신제품 출시기념 6총 5%할인!!

이벤트 보러가기 &#62;&#62;


]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p style="text-align: center"><span style="font-size: large"><strong><span style="font-family: arial, helvetica, sans-serif">[제이씨넷] 신제품 출시기념 할인이벤트!!</span></strong></span><br />
<span style="font-family: arial, helvetica, sans-serif">신제품 출시기념 6총 5%할인!!</span></p>
<p style="text-align: center">
<a href="http://www.devicemart.co.kr/goods/event.php?seq=295" target="_blank"><span style="font-family: arial, helvetica, sans-serif">이벤트 보러가기 &gt;&gt;</span></a></p>
<p style="text-align: center">
<p><a href="http://www.ntrexgo.com/wp-content/uploads/2014/09/8592471.jpg" rel="lightbox[26348]"><img class="alignnone size-full wp-image-26341" alt="859247[1]" src="http://www.ntrexgo.com/wp-content/uploads/2014/09/8592471.jpg" width="620" height="731" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/26348/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[26호]JARDUINO-UNO-BTmini 출시</title>
		<link>http://www.ntrexgo.com/archives/26391</link>
		<comments>http://www.ntrexgo.com/archives/26391#comments</comments>
		<pubDate>Mon, 01 Sep 2014 04:51:34 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[프로덕트 뉴스]]></category>
		<category><![CDATA[26호]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=26391</guid>
		<description><![CDATA[디바이스마트매거진 26호 &#124; 제이씨넷에서 블루투스 기반의 신제품 2종을 새롭게 출시했다.]]></description>
				<content:encoded><![CDATA[<table>
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2014/09/제이씨넷-JMOD-BT-PC.jpg" rel="lightbox[26391]"><img class="alignnone size-medium wp-image-26392" alt="제이씨넷 JMOD-BT-PC" src="http://www.ntrexgo.com/wp-content/uploads/2014/09/제이씨넷-JMOD-BT-PC-300x213.jpg" width="300" height="213" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2014/09/제이씨넷-01.jpg" rel="lightbox[26391]"><img class="alignnone size-medium wp-image-26393" alt="제이씨넷 01" src="http://www.ntrexgo.com/wp-content/uploads/2014/09/제이씨넷-01.jpg" width="258" height="187" /></a></td>
</tr>
<tr>
<td>JMOD-BT-PC</td>
<td>JARDUINO-UNO-BTmini</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><strong><span style="font-size: x-large">JARDUINO-UNO-BTmini 출시</span></strong></p>
<p>제이씨넷에서 블루투스 기반의 신제품 2종을 새롭게 출시했다.<br />
JARDUINO-UNO-BTmini는 아두이노 UNO R3와 기능이 동일하며, USB를 통한 유선 프로그램 업로드와 블루투스 시리얼 모듈을 통한 무선 프로그램 업로드가 모두 가능한 모듈이다. 소형 로봇이나 장남감 자동차 등 움직이는 타겟이나 손이 닿지 않는 곳에 장착된 소형 타겟 등에 매우 유용하며, 업로드 후에는 무선으로 블루투스 통신도 가능한 획기적인 제품이다.<br />
JMOD-BT-PC는 PC의 시리얼(COM) 포트를 통한 입출력을 블루투스 신호로 바꾸어 무선으로 송수신해주는 블루투스 시리얼 동글임과 동시에 JMOD-BT-1 모듈을 손쉽게 셋업할 수 있는 기능을 가진 JMOD-BT-1 셋업 툴이다. 마스터 모드 및 슬레이브 모드 설정이 가능하며 제이씨넷의 자사 제품인 JMOD-BT-1과 셋업이 가능하다.<br />
보다 자세한 사항은 디바이스마트와 제이씨넷 홈페이지에서 확인 가능하다.<br />
TEL. 042-486-0761<br />
www.jcnet.co.kr</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/26391/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[25호]ISP 다운로더가 내장된 ATmega128 모듈 2종 및 블루투스/모터드라이브를 탑재한 아두이노 모듈/자동차 2종 출시</title>
		<link>http://www.ntrexgo.com/archives/25901</link>
		<comments>http://www.ntrexgo.com/archives/25901#comments</comments>
		<pubDate>Tue, 01 Jul 2014 00:50:51 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[프로덕트 뉴스]]></category>
		<category><![CDATA[25호]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[디바이스마트]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=25901</guid>
		<description><![CDATA[디바이스마트 매거진 25호 &#124; 제이씨넷은 최근 ISP 다운로더가 내장된 ATmega128 모듈 JMOD-128-mini 및 JMOD-128-BASE 2종과 무선 프로그램 업로드 기능, 블루투스 통신 기능, 모터 드라이버 기능을 모두 내장한 아두이노(Arduino)인 JARDUINO-UNO-BM, 그리고 이 모듈을 탑재한 무선자동차 JARDUINO-UNO-CAR(Eco) 2종을 출시했다.]]></description>
				<content:encoded><![CDATA[<h1><strong><span style="font-size: large">ISP 다운로더가 내장된 ATmega128 모듈 2종 및</span></strong><br />
<strong><span style="font-size: large">블루투스/모터드라이브를 탑재한 아두이노 모듈/자동차 2종 출시</span></strong></h1>
<table style="width: 620px" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="text-align: center"><a href="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-05.jpg" rel="lightbox[25901]"><img class="alignnone  wp-image-25937" alt="25 product 05" src="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-05-150x150.jpg" width="120" height="120" /></a></td>
<td style="text-align: center"><a href="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-06.jpg" rel="lightbox[25901]"><img class="alignnone  wp-image-25927" alt="25 product 06" src="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-06-150x150.jpg" width="120" height="120" /></a></td>
<td style="text-align: center"><a href="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-07.jpg" rel="lightbox[25901]"><img class="alignnone  wp-image-25928" alt="25 product 07" src="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-07-150x150.jpg" width="120" height="120" /></a></td>
<td style="text-align: center"><a href="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-08.jpg" rel="lightbox[25901]"><img class="alignnone  wp-image-25929" alt="25 product 08" src="http://www.ntrexgo.com/wp-content/uploads/2014/07/25-product-08-150x150.jpg" width="108" height="108" /></a></td>
</tr>
</tbody>
</table>
<p>제이씨넷은 최근 ISP 다운로더가 내장된 ATmega128 모듈 JMOD-128-mini 및 JMOD-128-BASE 2종과 무선 프로그램 업로드 기능, 블루투스 통신 기능, 모터 드라이버 기능을 모두 내장한 아두이노(Arduino)인 JARDUINO-UNO-BM, 그리고 이 모듈을 탑재한 무선자동차 JARDUINO-UNO-CAR(Eco) 2종을 출시했다.</p>
<p>JMOD-128-mini는 ISP 다운로더가 내장된 4각형 모양의 ATmega128 미니 모듈로, JMOD-128-1의 기본 기능에 블루투스 모듈 추가시 무선으로 다운로드를 수행할 수 있는 기능이 추가된 모듈이다. 공간의 제약을 받는 경우나 무선으로 다운로드를 하여야 할 필요가 있는 타겟을 구현하는데 적합한 제품이라고 할 수 있다.<br />
JMOD-128-BASE는 ISP 다운로더가 내장된 박스헤더 인터페이스를 갖는 ATmega128 모듈로, 외부의 다른 부품과 쉽게 연결할 수 있도록 ATmega128의 GPIO 핀 모두를 2 x 5 박스헤더로 제공하는 모듈로, 점퍼선만으로 원하는 부품과 연결하려할 때 사용이 편리한 제품이다.<br />
JARDUINO-UNO-BM은 &lt;아두이노 UNO R3&gt; + &lt;블루투스 실드&gt; + &lt;모터 실드&gt;를 통합한 제품으로 아두이노 UNO R3와 기능 및 인터페이스가 동일하며, 무선 프로그램 업로드와 블루투스 통신, 모터 구동이 가능하므로 하나의 모듈로 로봇이나 장난감 자동차 등 움직이는 타겟을 구현하는데 매우 적합한 획기적인 제품이라 할 수 있다.<br />
JARDUINO-UNO-CAR(Eco)는 &lt;JARDUINO-UNO-BM&gt; + &lt;자동차 차체&gt; + &lt;모터 및 바퀴 등의 부속품&gt;으로 구성된 조립용 무선자동차 세트의 이코노믹(Eco) 버젼으로, 무선으로 프로그램 업로드가 가능하며 스마트폰으로 조정이 가능한 무선자동차이다.<br />
신제품에 대한 자세한 사항은 디바이스마트와 제이씨넷 홈페이지를 통해서 확인할 수 있다.</p>
<p><a href="http://www.devicemart.co.kr/goods/brand.php?seq=967" target="_blank">제품구매하러가기</a></p>
<p>TEL. 042-486-0761<br />
FAX. 042-486-0763<br />
www.jcnet.co.kr</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/25901/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[19호]임베디드모듈 신제품 3종 출시!</title>
		<link>http://www.ntrexgo.com/archives/15437</link>
		<comments>http://www.ntrexgo.com/archives/15437#comments</comments>
		<pubDate>Fri, 28 Jun 2013 04:25:10 +0000</pubDate>
		<dc:creator>디바이스마트 매거진</dc:creator>
				<category><![CDATA[디바이스마트 매거진]]></category>
		<category><![CDATA[프로덕트 뉴스]]></category>
		<category><![CDATA[19호]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[매거진]]></category>
		<category><![CDATA[임베디드모듈]]></category>
		<category><![CDATA[제이씨넷]]></category>

		<guid isPermaLink="false">http://www.ntrexgo.com/?p=15437</guid>
		<description><![CDATA[디바이스마트 매거진 19호 &#124; 교육용 블루투스 시리얼 모듈인 JMOD-BT-1은 HC-05 블루투스 시리얼 모듈을 기반으로 한 간편한 인터페이스의 교육용 블루투스 시리얼 모듈이다. JMOD-BT-1은 ATmega128 기본 모듈인 JMOD-128-1에 장착하거나 브레드 보드에 장착하여 블루투스 시리얼 모듈 역할을 수행할 수 있으며, JTOOL-MKII-1에 장착하면 AVRISP 무선 다운로더로도 사용 할 수 있는 편리한 제품이다.]]></description>
				<content:encoded><![CDATA[<table class=" aligncenter" border="0">
<tbody>
<tr>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/07/19produt007.jpg" rel="lightbox[15437]"><img class="alignnone  wp-image-15422" alt="19produt007" src="http://www.ntrexgo.com/wp-content/uploads/2013/07/19produt007-300x225.jpg" width="192" height="144" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/07/19produt006.jpg" rel="lightbox[15437]"><img class="alignnone  wp-image-15421" alt="19produt006" src="http://www.ntrexgo.com/wp-content/uploads/2013/07/19produt006-300x225.jpg" width="185" height="139" /></a></td>
<td><a href="http://www.ntrexgo.com/wp-content/uploads/2013/07/19produt008.jpg" rel="lightbox[15437]"><img class="alignnone  wp-image-15423" alt="19produt008" src="http://www.ntrexgo.com/wp-content/uploads/2013/07/19produt008-300x225.jpg" width="192" height="144" /></a></td>
</tr>
<tr>
<td style="text-align: center"><span style="font-size: x-small">JMOD-BT-1</span></td>
<td style="text-align: center"><span style="font-size: x-small">JARDUINO-UNO-1</span></td>
<td style="text-align: center"><span style="font-size: x-small">JTOOL-MKII-1</span></td>
</tr>
</tbody>
</table>
<p>임베디드시스템 전문업체인 제이씨넷에서 타사 제품과 차별성을 갖는 임베디드모듈 3종을 출시했다.</p>
<p>교육용 블루투스 시리얼 모듈인 JMOD-BT-1은 HC-05 블루투스 시리얼 모듈을 기반으로 한 간편한 인터페이스의 교육용 블루투스 시리얼 모듈이다.<span style="background-color: #ffff00"><strong> JMOD-BT-1</strong></span>은 ATmega128 기본 모듈인 JMOD-128-1에 장착하거나 브레드 보드에 장착하여 블루투스 시리얼 모듈 역할을 수행할 수 있으며, JTOOL-MKII-1에 장착하면 AVRISP 무선 다운로더로도 사용 할 수 있는 편리한 제품이다. 3.3V ~ 5V의 전원 입력에서 모두 동작하며, 설정에 따라 마스터 및 슬레이브 모드로 동작이 가능하며 baudrate도 사용자가 쉽게 변경할 수 있는 장점이 있다.</p>
<p>아두이노 UNO R3 호환 모듈 <strong><span style="background-color: #ffff00">JARDUINO-UNO-1</span></strong>은 아두이노 UNO R3 오리지널 모듈과 호환 가능하며, 기본 기능 외에 JARDUINO-UNO-MINI를 기반으로 탈부착이 가능하도록 구현하여, 필요시 분리하여 소형의 임베디드 모듈로 사용할 수 있다. 또한, ISP 다운로드 기능을 제공하여 AVR Studio, Code Vision 등의 환경에서도 사용이 가능하며, 블루투스 시리얼 모듈인 JMOD-BT-1을 쉽게 장착할 수 있는 커넥터를 제공한다. 따라서 아두이노 1개 가격으로 아두이노와 아두이노 미니의 2개 모듈 및 부가 기능까지 얻을 수 있다.</p>
<p><strong><span style="background-color: #ffff00">AVRISP MKII/무선 다운로더 </span><span style="background-color: #ffff00"><strong>J</strong>TOOL-MKII-1</span></strong>는 USB 방식을 사용한 AVRISP MKII 다운로더로, 다양한 AVR 시리즈(ATxmega, ATmega, AT90, ATiny)에 대하여 빠른 다운로드가 가능한 모듈이다. 또한 블루투스 시리얼 모듈인 JMOD-BT-1을 장착할 경우 무선 ISP 다운로더로 동작하는 획기적인 제품이다. ISP(ATmega용) 커넥터 및 PDI(ATxmega용)/TPI(ATiny용) 커넥터를 제공하며 AVR Studio 4, AVR Studio 5, Atmel Stuio 6 및 Codevision 환경에서 모두 동작이 가능하다. 보다 자세한 사항은 디바이스마트 홈페이지에서 확인 가능하다.</p>
<p><a href="http://www.devicemart.co.kr/goods/view.php?seq=1063748" target="_blank">JMOD-BT-1 제품구매하러가기</a></p>
<p><a href="http://www.devicemart.co.kr/goods/view.php?seq=1063749" target="_blank">JARDUINO-UNO-1 제품구매하러가기</a></p>
<p><a href="http://www.devicemart.co.kr/goods/view.php?seq=1066944" target="_blank"> JTOOL-MKII-1 제품구매하러가기</a></p>
<p>Tel. 042-486-0761</p>
<p>http://cafe.naver.com/lazydigital</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ntrexgo.com/archives/15437/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
