아두이노
-
아두이노 I2C 통신 | LCD I2C 모듈Technology/Arduino 2024. 6. 14. 18:00
1. I2C 통신 두 장치가 일대일로 통신하는 시리얼 통신과는 다르게, I2C(Inter-Integrated Circuit) 통신은 한 컨트롤러(master)에 여러 개의 주변 장치(slave)를 연결하여 신호를 주고 받는다. I2C 통신은 데이터를 보내는 직렬 데이터 라인(Serial Data, SDA)과 데이터를 구분하는 직렬 클럭 라인(Serial Clock, SCL)으로 구성되어 있으며, 컨트롤러와 모든 주변 장치가 두 가닥의 신호선을 공유한다. 컨트롤러와 I2C 통신을 하는 모든 주변 장치는 자기만의 주소를 가지고 있는데, 통신할 때 해당 정보를 직렬 데이터 라인에 포함시켜 신호를 주고 받는다. 아두이노 플랫폼에서도 I2C 통신을 지원하므로, 아두이노 하드웨어에 I2C 통신을 위한 S..
-
아두이노 라이브러리 | LCD 모듈Technology/Arduino 2024. 4. 12. 18:00
1. LCD 모듈 LCD(Liquid Crystal Display)는 고정된 위치에 영문자나 숫자를 표시할 수 있는 출력 장치이다. 총 16개의 단자를 가지고 있으며, 왼쪽부터 접지 단자, 전원 단자, 가변저항과 연결하는 글자 밝기 조절 단자(V0), 제어 신호 단자 3개(RS, R/W, E), 데이터 입력 신호 단자 8개(DB0~DB7), 백라이트 LED 양극 단자와 음극 단자로 구성되어 있다. LCD 모듈은 아래 링크로 접속하면 구매할 수 있다. 1602 데이터버스 캐릭터LCD (화이트/블루)아두이노 호환 16×2 캐릭터 LCD 모듈 / 문자 : White / 백라이트 : Blue / 데이터버스를 통해 제어합니다. / 80mm×36mm / 재고소진시 납기 2주정도 소요됩니다.www.device..
-
아두이노 프로젝트 | 디지털 타이머Technology/Arduino 2024. 4. 5. 18:00
1. 디지털 타이머 일상에서 쉽게 발견할 수 있는 타이머를 아두이노 플랫폼을 이용해 디지털로 구현해보자. 구현하고자 하는 디지털 타이머는 0부터 9999초까지 설정할 수 있도록 네 자리 7-세그먼트 디스플레이를 가지고 있고, 시프트 레지스터 74HC595로 제어된다. 또한 택트 스위치 3개를 가지고 있으며, 첫 번째 스위치를 누르면 제어하려는 자리수를 왼쪽으로 옮길 수 있다. 두 번째 스위치를 누르면 제어하는 자리수의 숫자를 설정할 수 있고, 누른 횟수가 9회를 넘으면 다시 0으로 초기화된다. 마지막으로 세 번째 스위치를 누르면 설정한 시간에서부터 0초까지 1초 간격으로 숫자를 디스플레이에 나타내도록 프로그램을 작성해보자. 2. 프로젝트 2.1. 회로 구성 3461CSR 배열 : 4자리 / 사이즈 : 2..
-
아두이노 프로젝트 | 디지털 카운터Technology/Arduino 2024. 3. 29. 18:00
1. 디지털 카운터 일상에서 쉽게 발견할 수 있는 카운터를 아두이노 플랫폼을 이용해 디지털로 구현해보자. 구현하고자 하는 디지털 카운터는 0부터 9999까지 카운트할 수 있도록 네 자리 7-세그먼트 디스플레이를 가지고 있고, 시프트 레지스터 74HC595로 제어된다. 또한 택트 스위치 1개를 가지고 있으며, 택트 스위치를 누르면 누른 횟수가 디스플레이에 표시된다. 누른 횟수가 9999회를 넘으면 다시 0으로 초기화되도록 프로그램을 작성해보자. 2. 프로젝트 2.1. 회로 구성 3461CSR 배열 : 4자리 / 사이즈 : 29.5x14mm / 전압 : 2.25V / 전력 : 40mW / 색상 : 레드(Red) / Cathode타입 www.devicemart.co.kr 1/2W 1% Axial Resisto..
-
아두이노 라이브러리 | 7-세그먼트 디스플레이Technology/Arduino 2024. 3. 22. 18:00
1. 아두이노 라이브러리 추가 앞서 살펴본 예제에서는 7-세그먼트 디스플레이에 숫자나 글자를 나타내기 위해 세그먼트 LED를 하나하나 제어하였다. 그러나 아두이노 플랫폼은 7-세그먼트를 이보다 직관적으로 제어할 수 있는 라이브러리를 보유하고 있다. 그러나 기본적으로 제공되는 라이브러리는 아니기 때문에 라이브러리를 IDE에 추가하는 과정이 필요하다. 아두이노 IDE 상단 툴바에서 '툴'을 선택한 뒤 '라이브러리 관리' 항목을 선택하자. 그러면 곧이어 '라이브러리 매니저' 창이 나타난다. '라이브러리 매니저' 창 오른쪽 상단에 라이브러리 이름을 입력하면 아두이노 플랫폼에서 지원하는 라이브러리를 검색할 수 있다. 해당 칸에 우리가 이번 예제에서 사용할 라이브러리 'SevSeg'를 입력하자. 라이브러리를 검색하..
-
아두이노 | 네 자리 7-세그먼트 디스플레이Technology/Arduino 2024. 3. 22. 17:00
1. 네 자리 7-세그먼트 디스플레이 앞서 살펴보았던 7-세그먼트 디스플레이는 한 자리인 정수만 나타낼 수 있었다. 한 자리를 넘는 정수나 실수를 디스플레이로 나타내고자 한다면 디스플레이를 여러 개 사용해야할 것이다. 디스플레이 하나를 직접 제어하기 위해서는 디지털 입출력 핀 8개가 필요하고, 디스플레이 4개를 직접 제어하기 위해서는 32개가 필요하다. 7-세그먼트 디코더나 시프트 레지스터를 사용하더라도 디지털 입출력 핀을 많이 사용해야 한다. 하지만 디스플레이 4개를 사용하지 않고 네 자리 디스플레이를 사용한다면 더 적은 수의 디지털 입출력 핀으로 한 자리를 넘는 정수나 실수를 나타낼 수 있다. 네 자리 7-세그먼트 디스플레이는 아래 링크로 접속하면 구매할 수 있다. 3461ASR 배열 : 4자리 / ..
-
아두이노 | PISO 시프트 레지스터 74HC165Technology/Arduino 2024. 3. 15. 18:00
1. PISO 시프트 레지스터 74HC165 74HC1655는 앞서 살펴보았던 74HC595와는 반대로 PISO(Parallel-in, Serial-out) 기능을 하는 8비트 시프트 레지스터이다. 총 16개의 단자를 가지고 있으며, DC 5V 전원과 접지 단자, 정보를 병렬로 받는 입력 단자 8개, 직렬 출력 단자 1개, 입력 단자 3개로 구성되어 있다. 시프트 레지스터 74HC165는 아래 링크로 접속하면 구매할 수 있다. 74HC165N(DIP) 8-bit parallel-in/serial-out shift register www.devicemart.co.kr 2. 제어 방법 시프트 입력(Shift Input, SH) 단자에 디지털 신호 LOW가 입력되는 동안, 입력 단자 8개를 통해 병렬 데이터가..
-
아두이노 | SIPO 시프트 레지스터 74HC595Technology/Arduino 2024. 3. 15. 17:00
1. 시프트 레지스터 시프트 레지스터(Shift Resistor)는 이진수 정보를 저장하여 서로 주고 받는 논리 회로가 직렬로 연결된 전자 소자로, 직렬로 들어오는 정보를 병렬로 내보내거나(Serial-in, Parallel-out, SIPO), 병렬로 들어오는 정보를 직렬로 내보낸다(Parallel-in, Serial-out, PISO). SIPO 기능을 하는 시프트 레지스터를 사용하면 구동기를 제어하기 위한 여러 출력 정보를 직렬로 내보낸 뒤 병렬로 나눌 수 있기 때문에 마이크로컨트롤러의 출력 핀의 개수를 절약할 수 있다. 반대로 PISO 기능을 하는 시프트 레지스터를 사용하면 여러 센서로부터 들어오는 입력 정보를 하나의 직렬 정보로 받을 수 있기 때문에 마이크로컨트롤러의 입력 핀의 개수를 절약할 수..