
마이크로컨트롤러(MCU)는 다양한 전자기기에 탑재되어 있는 핵심 부품으로 중앙처리장치(CPU)와 메모리, 프로그래밍이 가능한 입출력 모듈을 모아서 하나의 칩으로 만든 장치이다. 두뇌가 인체를 제어하는 것처럼 MCU는 프로그래밍을 통하여 각종 센서의 신호를 읽고 계산이나

전원을 제공하는 배터리 전압은 V(Volt, 볼트)로 표시를 한다.전구는 저항에 해당하며 R(Register, 레지스터)라는 단위로 표시흘 한다.배터리에서 나온 전자들의 움직임을 전류라고 하며 I(Current, 커런트)로 표시한다.전압의 단위는 V(볼트), 저항의 단

아두이노 보드에 전자 회로를 구성할 때 브레드보드(빵판)는 납땜을 하지 않고 연결하는 역할을 한다.빵판이라는 이름은 회로를 만들 때 빵을 자르는 도마 위에 부품을 연결했던 것에서 유래를 찾을 수 있다.

아두이노(Arduino)는 상상력을 실현하기에 적합한 손바닥 컴퓨터이며 오픈소스 하드웨어로 AVR 기반의 단일 보드 마이크로컨트롤러이다. 소프트웨어 개발에 사용하기 쉽고 편리한 무료 통합개발환경(IDE)도 제공한다.이 소프트웨어 이름도 "아두이노"로 보드이름과 같다.

LED 켜기
마이크로컨트롤러는 MCU라고 부른다MCU는 전원을 연결하면 작동되는 초소형 컴퓨터이다.MCU는 CPU, 메모리, IO로 구성된다.CPU는 ALU, CU, 레지스터로 구성된다.MCU의 다양한 응용분야 소개MCU의 프로그래밍은 아두이노 IDE를 활용하고 업로드한다.대표적인

아두이노는 디저털과 아날로그 신호의 입력과 출력이 모두 가능하다.디지트(Digit)란 단어를 영어 사전에서 찾아보면 숫자, 손가락 등의 뜻으로 설명되어 있다.디지털 신호는 자료(data)를 표현할 때 최소 단위의 이산적인 수치를 사용해서 나타내는 것이다.자연에서 발생하

아두이노는 디지털 출력과 아날로그 출력을 모두 사용할 수 있다.' // ' 문장의 제일 앞에 '//'로 표시된 부분은 설명문으로 스케치를 설명하는 역할이다. 이 부분은 코드가 실행되지 않는다.void setup() { }프로그램 실행 초기에 한 번만 실행하는 부분이다.

회로 만들기 스케치 2-3 LED 여러 개 연결하기 스케치 2-3 설명 LED를 여러 개 연결할 때는 핀 모드를 각각 설정해주어야 한다. > int led1 = 2; 브레드보드에 여러 개의 LED를 연결할 때 핀 번호를 변수로 지정하면 같은 번호가 반복될 때 편리

시리얼 통신은 아두이노와 컴퓨터 사이에 통신할 때 사용하는 방법이다.모든 아두이노 보드는 시리얼 포트(UART)가 최소 한 개 이상 있다.시리얼 통신을 하면 아두이노의 디지털 핀'0번'은 'RX','1'번은 'IX'를 담당하여 데이터를 전송 및 수신한다. 시리얼 통신을

아두이노 보드의 디지털 핀에서 디지털 값을 입력받을 수 있다.아두이노에 스위치를 만들어 버튼을 누르면 전류가 흐르게 되고 입력 전류가 5V가 되므로 HIGH 상태가 된다. 그러나 스위치가 연결되지 않으면 전류가 흐르는지 아닌지 알 수 없는 상태가 되는데 이 때를 플로팅
아날로그 신호는 소리, 빛, 음파 등 자연의 신호이고 시간에 따라 연속적으로 표현된다.디지털 신호는 컴퓨터와 스마트폰과 같은 디지털 기기에서 사용하는 신호이다.디지털 신호는 아날로그 신호를 시간에 따라 숫자로 표현한 것이며 비연속인 데이터이다.저항은 전류의 흐름을 방해
아두이노에서 아날로그 데이터를 출력할 수 있다. 아날로그 신호는 자연환경에서 나오는 소리의 크기나 빛의 강도처럼 데이터가 연속적으로 연결되는 신호를 말하며 디지털 신호는 1과 0, On과 Off처럼 이산적인 신호를 말한다. 아날로그 신호는 다양한 값을 가질 수 있지만

int led1 =5; int led2 =11;LED의 핀 번호를 변수로 지정한다.변수의 형태는 정수이다. analogWrite(led1,30);analogWrite(핀 번호, 값);아날로그 신호를 전달한다. 값은 아날로그 값을 0~255까지 입력 가능하고 PWM 출
전자제품을 동작시키면 신호음이 나오는 경우가 있다. 예를 들어 전자레인지의 버튼을 누르면 버튼이 눌려질 때마다 '삐'소리가 난다. 사용자는 자신이 버튼을 정상적으로 잘 눌렀다는 것을 '삐'소리를 통하여 확인할 수 있다. 아두이노는 부저를 이용하여 소리를 낼 수 있다.

PWM 방식으로 LED의 밝기를 점점 밝게 하거나 점점 어둡게 제어하는 것과 부저로 음악을 만드는 것은 아날로그 출력에 해당한다.아날로그 데이터는 자연에서 발생하는 데이터로, 대부분의 센서 값은 연속형 데이터로 이루어진 아날로그 데이터이다. 조도센서, 온도센서는 대표적
아두이노에서는 PWM 방식을 이용하여 아날로그 출력 값을 제어할 수 있다.LED의 밝기를 PWM 펄스 폭으로 조절하여 제어할 수 있다.LED의 밝기를 256단계로 조절할 수 있다.아두이노에서 PWM을 사용할 수 있는 번호는 ~3,~5,~6,~9,~10,~11번이다.수동

아두이노는 디지털 입력과 출력을 제어할 수 있으며, 아날로그 입력과 출력도 제어할 수 있다.그래서 다양한 센서를 사용할 수 있다. 디지털 입력 신호뿐만 아니라 아날로그 신호도 쉽게 처리할 수 있다.디지털 입력 값은 digitalRead()함수를 이용해서 값을 읽는다.

일상에서 온도와 습도는 다양한 곳에서 필요한 기능이다. 가정 내에서도 실내의 온도와 습도 조절이 필요하고 식물원가, 농장 등에서도 온도와 습도 측정을 하는 것이 중요하다.DHT11 센서를 이용하여 온도와 습도를 한꺼번에 측정해보자. DHT11 온습도센서는 공기 중의 수

초음파센서는 우리 일상에서 생각보다 자주 볼 수 있다. 병원에서 초음파 진단기로 질병을 진단하고 초음파를 이용하여 세척을 하기도 한다. 그리고 바다에서 고기잡이를 하기 위해 수중 초음파 장비를 사용하기도 한다. 그리고 의료용으로 초음파를 이용하여 신체의 근육, 내부 장

적외선 리모컨은 일상생활에서 자주 사용하고 있는 전자제품이다. TV를 켜고 끄거나 채널을 바꿀 때 사용하는 리모컨도 적외선 리모컨이고 가정에서 사용하는 에어컨이나 다른 전자 기기를 제어할 때도 적외선 리모컨을 사용하고 있다. 적외선 리모컨은 전자기파를 이용하며 제품마다
아두이노의 아날로그 입력 핀을 이용하여 센서 측정 값을 읽을 수 있다.아두이노에서 아날로그 입력은 analogRead() 함수를 사용한다.LM35 온도센서는 저항을 사용하지 않는 온도센서이다.LM35 온도센서의 신호선은 아두이노의 A0~A5 핀 중 하나에 연결한다.DH

7-세그먼트 7-세그먼트 표시장치는 숫자 혹은 영문 알파벳의 일부를 표시하기 위하여 7개의 선분 형태의 발광 다이오드(LED)를 '8' 모양으로 배치하여 만든 표시장치로 디지털시계, 전자 계량기, 기본 계산기 및 숫자 정보를 표시하는 여러 전자 장치에 널리 사용된다.
스케치 5-6 (1자리 7-세그먼트 2개를 이용하여 두 자리 수 출력하기)

4자리 7-세그먼트 LED 표시장치에는 12개의 핀이 있다. 그 중에서 4개의 핀(D1~D4)은 4자리 중에서 어느 한 자리를 선택하는데 사용되고, 나머지 8개의 핀은 선택된 자리 내의 a에서 g까지의 LED와 dp(소숫점)LED를 제어하는데 사용된다. 표시장치의 모듈
요약

LCD는 액체처럼 유체의 성질을 가지면서 동시에 고체와 같이 광학적 성질을 가지는 액정이라는 물질의 전기적 성질을 이용하여 문자를 표시해주는 장치이다. LCD는 스스로 빛을 내지 않기 때문에 전력 소비가 거의 없다. 따라서 백라이트가 없는 LCD를 주로 사용하는 휴대용

I2C LCD1602 표시장치를 이용하여 실험을 하려면 관련 라이브러리를 설치해야 한다. 아두이노 IDE에서 [스케치] - [라이브러리 포함하기] - [라이브러리 관리..]를 실행한다. 그리고 해당 라이브러리를 설치한다.

아두이노 I2C LCD 모듈 제어 함수 | | 함수 | 설명 | |---|---|---| |1|LiquidCrystal_I2C lcd(0x27, 16, 2);|0x27는 I2C 주소를 가지고 있는 16x2 LCD객체 생성 |2|lcd.begin( );|LCD 사용 시

사용자 정의 문자열 I2C LCD1602 표시장치는 알파벳이나 숫자 등은 lcd.print( ) 함수를 이용하여 쉽게 출력할 수 있지만 한글이나 한자, 특수문자 등은 사용자 정의 문자를 설정하여 표시해야 한다. 사용자 정의 문자의 크기는 5x8이며, 8바이트의 배열로

DHT11 온습도 모듈이 측정한 값을 16X2 매트릭스의 I2C 통신 기반의 LCD1602 표시장치에 출력해보자 DHT
LCD(Liquid Crystal Display, 액정표시장치)는 액정이라는 물질의 전기적 성질을 이용하여 문자를 표시해주는 장치이며 스스로 빛을 내지 않기 때문에 전력 소비가 거의 없다.대부분의 LCD는 스스로 빛을 내지 않기 때문에 후면에 백라이트를 두고 전면에 액
모터 모터는 라틴어의 'moto(움직인다)'에서 온 단어로 플레밍의 왼손법칙에 따라 전기에너지를 운동(기계)에너지로 변환하는 장치이다. 일상생활에서 전기에너지를 받아들여서 기계적인 일을 하는 다양한 전기 모터를 발견할 수 있다. 산업용 팬, 송풍기, 공작 기계, 냉장고
서보모터 서보모터를 제어하는 아두이노 프로그램을 작성하려면 서보 라이브러리가 필요하다. 아두이노 표준 라이브러리인 servo.h는 다음과 같은 함수를 제공 |함수|설명| |---|---| | void attach(pin) |서보모터를 제어할 핀을 설정 | | vo

스텝모터 또는 스테핑모터라고도 하는 스테퍼모터는 디지털 펄스를 기계식 축 회전으로 전환하는 브러시가 없은 동기식 전기 모터이다. 스테퍼모터는 회전을 하는 것이 아니라 한 순간에 한 스텝씩 이동을 한다. 만약 360도 회전을 하려면 최대 200단계로 나누어 한 단계에 1
DC모터는 가볍고 구조가 단단하여 원격 조종 장난감을 비롯하여 선풍기나 냉장고 등의 가전제품, 자동문, 엘레베이터, 전기자동차나 고속 열차 등 다양한 영역에서 광범위 하게 사용되고 있다. DC모터에는 2개의 케이블이 있는데 하나는 +극(5V)에, 다른 하나는 -극(GN
모터는 라틴어의 'moto(움직이다)'에서 온 단어로 플레밍의 왼속 법칙에 따라 전기 에너지를 운동에너지로 변환하는 장치이다.DC모터는 전기장에 흐르는 전류의 방향을 전환하면서 자력의 밀어내는 힘이나 끌어당기는 힘으로 회전력을 생성시키는 원리로 작동되며, 가볍고 구조가

7개의 LED를 이용한 7-세그먼트 디스플레이와 달리 도트 매트릭스 디스플레이를 사용하여 알파벳, 숫자 또는 사용자 정의 문자들을 출력할 수 있다. 도트 매트릭스는 내부 구성 LED가 행과 열로 되어 있다는 의미다. 8x8이란 가로 8개 그리고 세로 8개 총 64개의

도트 매트릭스는 LED를 매트릭스 형태로 배열하여 다양한 문자나 패턴을 표현할 수 있도록 해주는 표시장치이다. 광고를 비롯한 다양한 분야에 활용되고 있다. 일반적으로 8x8이 기본 형태이며, 알파벳 한 글자, 숫자 그리고 사용자 모양 등을 이용하여 다양한 정보를 표현할
이번 실험은 Common 단자를 이용하여 ROW와 COL이 같은 곳에 LED를 켜는 것이다. 그리고 도트 매트릭스에 X모양으로도 LED를 켠다.COL 1에 LOW 그리고 그리고 8개의 ROW에 HIGH를 입력하면 전류가 흐르게 되어 첫번째 ROW의 LED가 켜진다.RO

도트 매트릭스에 하트 모양을 표시해보자 해당 도트 매트릭스를 하려면 라이브러리에서 FrequencyTimer2를 다운로드 받아야 한다.reset 함수는 LED를 초기화해주는 함수이다.
이번 실험은 도트 매트릭스에 글자와 모양을 움직이면서 표시하는 것이다. 도트 매트릭스에 모양을 만들 때 한 번에 만드는 것이 아니라 0번째 행부터 7번째 행까지 빠르게 번갈아 가면서 화면에 보여주는 것이다. 이것은 사람 눈의 잔상 효과를 이용한 것이며, 모든 줄이 빛이
다이오드의 극성을 파악할 수 있다.Common Cathonde는 LED의 (+)를 아두이노에서 제어할 수 있다.Common Anode는 LED의 (-)를 아두이노에서 제어할 수 있다.도트 매트릭스의 배열은 0부터 카운트 된다.도트 매트릭스에 글자가 움직이는 것은 0번째
UART는 Universal Asynchronous Receiver Transmitter의 약어이며, 통신 프로토콜 중의 하나이다. UART는 병렬 데이터 버스를 통해 나머지 마이크로컨트롤러 또는 컴퓨터 시스템과 통신하고 직렬 데이터 스트림으로 변환하여 하나의 단일 와

통신속도는 setup( ) 함수에서 Serial.begin( );을 이용하여 결정한다.loop( ) 함수 내의 Serial.println( ) 함수는 시리얼 통신의 데이터를 화면에 출력한다.print 함수와 동일하며 출력 이후 \\n을 추가로 출력한다.

회로 구성 두 개의 아두이노를 사용하여 아두이노 1에서 아두이노 2로 데이터를 전송하는 실험을 해보자. 아두이노 1의 TX 포트(1번)를 통하여 1과 0을 1초 간격으로 아두이노 2의 RX 포트(0번)로 보낸다. 아두이노 2는 RX 포트를 통하여 데이터를 수신하며, '

회로설계 이번 실험은 버튼에 의한 URAT 통신을 이용한 원격제어 실험이다. 스케치 9-4 UART 통신을 이용한 원격제어 실험 (마스터) 스케치 9-4 분석 > `digitalRead() 함수를 이용하여 스위치 상태(HIGH 혹은 LOW)값을 읽어 들인다. 스위치의 상태가 이전과 다르다면 현재의 스위치 상태(buttonState1)를 buttonSwi...
생각해보고 오겠습니다
데이터를 주고 받는 통신에는 직렬통신과 병렬통신이 있다.UART는 Universal Asynchronous Receiver Transmitter의 약어이다.UART는 비동기 통신 방식이다.UART는 연결된 두 개의 시스템이 같은 전송속도(baud rate)를 사용한다.

UART는 직렬통신 방법을 말하며 아두이노에서 아두이노와 컴퓨터 또는 다른 디바이스와 통신을 하여 데이터를 주고받는 것을 의미한다. 아두이노는 한 개 이상의 시리얼 포트를 설정하여 통신할 수 있다.아두이노의 RX는 Receive, 즉 수신용 핀이고 TX는 Transmi

우리가 인터넷을 사용하거나 스마트폰에서 정보를 검색할 때 통신을 사용한다. 일반적인 통신 방법에는 유선통신과 무선통신 방법이 있다. 유선 통신은 선을 이용하는 것으로 컴퓨터에서 인터넷 선을 연결하여 사용하는 방법을 예로 들 수 있다. 반면에 무선통신은 최근 수년 동안

스마트폰의 앱에서 버튼을 클릭하여 블루투스 연결된 아두이노의 LED를 제어하려면 스마트폰 앱을 만들어야 한다. 이 실습에서는 MIT 앱 인벤터(App Inventor)를 이용하여 앱을 만든다. 앱 인벤터는 안드로이드 스마트폰에 작동되는 앱을 만들 수 있고 브라우저는 반
UART 직렬통신 방법이며 아두이노와 컴퓨터 또는 다른 디바이스와의 통신을 하여 데이터를 주고받는 것을 의미한다.아두이노의 RX 핀은 수신(Receive) 핀이고 TX 핀은 송신(Transmit) 핀이다.시리얼 통신에서 다른 디바이스와 TX는 RX에 연결하고 RX는 T
TX와 RX핀을 이용하는 직렬 포트는 비동기식이므로(클럭 데이터가 전송되지 않음), 두 장치는 끊임없이 상대방이 데이터를 보내는지 확인해야 한다. 그래서 UART 통신에서는 1초를 몇 개의 간격으로 나누어 데이터를 보낼지(통신속도, Baud Rate)를 미리 정해야 한
I2C 버스에는 전원 및 접지 연결과 함께 두 개의 신호가 있다.두 신호선의 역할은 다음과 같다SDA: 양방향 데이터 선이다.SCL: 클럭 신호이다.각 신호 라인에는 2개의 풀업 저항이 연결되어 있으며 비활성 상태일 때 버스를 공급 전압까지 끌어 올린다. 공급 전압은
이번 실험은 master_reader / slave_sender 쌍을 변경하여 Master에서 Slave에 1Byte 데이터를 요구하고, Slave는 요청마다 1씩 카운트가 증가된 값을 반환하는 것이다.

master_write / slave_receiver 쌍을 변경하여 Master에서 Slave에 1Byte 데이터를 보내고, Slave는 수신된 데이터를 시리얼 모니터에 출력한다.

이번 실험은 가변저항기를 이영하여 원격지 LED의 ON/OFF 주기를 I2C 통신을 이용하여 실시한다.수신된 데이터를 저장하는 변수와 깜박임 속도에 대한 시간 지연 값을 전달하는 변수가 정의 된다. setup( ) 함수에서 LED의 I/O 핀을 출력으로 설정하고 I2C

이번 실험은 마스터에서 슬레이브의 센서 값을 읽어오는 시험이다. 마스터에 있는 버튼을 누르면 마스터는 지정된 슬레이브에 자료를 요청한다. 슬레이브는 마스터로부터 요청이 있는지를 검사하여 요청이 있을 경우, 해당된 데이터를 마스터로 보낸다.마스터에서 버튼을 누르면, 마스
I2C(Inter Intergrated Circuits) 통신을 이용한 실험을 할 수 있다.I2C 통신은 마스터와 슬레이브의 조합이다.SPI (Serial Periperal Interface) 통신은 동기식 데이터 전송방식이다.SPI 통신은 4개의 선(MISO, MOS
이더넷 칩 기반의 이더넷 쉴드 호환보드 Wiznet W5100을 사용한다. 이더넷 쉴드 호환보드는 아두이노 우노 등에 장착해서 이더넷에 접속하여 이더넷 통신을 할 수 있도록 해준다. TCT와 UDP 프로토콜을 모두 지원하는 네트워크 스택을 제공하며 동시에 4개의 소켓

이제는 아두이노에 이더넷 쉴드를 장착하고 랜선을 연결해서 IP와 웹서버를 확인해보겠다. IP 확인 먼저 연결한 후에 아두이노 IDE에 접속해서 `[파일] - [예제] -[Ethernet] - [DhcpAddressPrinter]` 순으로 클릭해서 예제 프로그램을 불

회로설계 스케치 12-1 웹서버를 이용한 LED 제어 실험 스케치 12-1 실행결과

요약 > 1. `이더넷 쉴드`를 사용한다. `Ethernet library`를 사용하여 아두이노 IDE에서 프로그래밍이 가능한다. `TCP와 UDP` 프로토콜을 모두 지원하는 네트워크 스택을 제공한다. 동시에 연결할 수 있는 소자는 `4개`까지 가능하다. 아두이노에서 `인터넷 통신`을 사용할 수 있다. 인터넷 통신을 통해 아두이노의 센서 값을 웹서버로 보낼...
멀티태스킹(Multitasking)은 CPU 하나를 시간 간격을 조절하여 여러 가지 일을 한꺼번에 처리하는 다중 작업을 말하낟. 실제로는 두 개의 일을 하나의 CPU가 시간 간격을 나누어서 하지만 CPU의 속도가 빨라 마치 한꺼번에 처리하는 것처럼 보인다.1000 밀

아두이노에서 LED를 깜박이면서 부저를 울려야 하는 경우와 같이 두 가지 작업을 동시에 해야하는 경우가 있다. 1초마다 LED를 깜박일 경우 일반적으로 delay(1000) 함수를 활용하며 delay(1000)는 1초 동안 아무 일도 하지 않고 기다리기만 한다. del

\[스케치] - \[라이브러리 포함하기] -\[라이브러리 관리]"MS-Timer2"로 검색한 후 설치이 프로그램은 1초마다 LED를 깜박인다. loop( ) 속에 다른 프로그램을 넣어서 다중 작업을 할 수 있다.타이머 라이브러리를 다운로드https://gith
인터럽트는 마이크로프로세서가 프로그램을 실행하는 도중에 예기치 않은 상황이 발생하여 현재 실행 중인 작업을 잠시 멈추고 발생된 예외상황을 처리한 후 다시 실행 중이던 작업으로 복귀하는 것을 말한다. 예를 들어 컴퓨터의 블루스크린 현상을 인터럽트로 볼 수 있는데, 운영체
다중 작업은 하나의 CPU를 시간 간격을 조절하여 활용하는 법이다.아두이노에서 다중 작업을 하는 방법에는 3가지가 있다.delay() 함수는 아무 일도 하지 않고 시간이 지나도록 기다린다.아두이노에서 delay()를 사용하면 중요한 이벤트를 놓칠 수 있어 주의가 필요하

블루투스 통신이 가능한 온습도 측정기를 구현해보려고 한다.아두이노는 2초에 한 번씩 온도와 습도를 측정한 후 HC-06 블루투스 모듈을 통하여 스마트 폰 앱으로 전달한다.
앱 인벤터(App Inventor)는 구글과 MIT대학이 개발한 블록 기반의 앱 제작 툴이다. 구글 크롬 브라우저에서 클라우드 기반 서비스를 제공하므로 프로그래밍을 위하여 별도의 개발 환경을 구축할 필요가 없으며 작성 중인 앱을 내 컴퓨터의 하드디스크에 저장할 필요도

온습도 모니터 앱
DHT11 온습도 모듈을 아두이노 보드에 연결할 때 DHT11 모듈의 VCC,DATA 및 GND를 각각 아두이노 보드의 5V, D2 및 GND에 차례대로 연결한다.블루투스 통신을 위하여 HC-06 BT 모듈을 아두이노에 연결할 때 블루투스의 송신부인 TX(Transmi