전체 글 211

[간단한 아두이노 코딩] 20. 7세그먼트 (5461AH)로 디지털 시계 만들기 (8편 번외)

8-번외 / 7세그먼트 (5461AH)로 디지털 시계 만들기 1. 4자리 7 세그먼트 디스플레이 (5461AH) 5461AH는 7 세그먼트 디스플레이 4개가 하나로 구성된 장치이다. 일반 7세그먼트와는 달리 a,b,c,d,e,f,g그리고 dp까지 8개의 핀과 각 세그먼트별 CC 라인 4개가 포함되어 있다. 즉, A~DP 순서대로 11, 7, 4, 2, 1, 10, 5, 3이고, 첫번째 세그먼트부터 12, 9, 8, 6가 해당 세그먼트의 CC가 된다. 그렇다면 회로는 어떻게 짜야할까? 11, 7, 4, 2, 1, 10, 5, 3 핀은 CC타입이므로 디지털 핀에 할당하면 된다. 그리고 12, 9, 8, 6은 4개의 세그먼트가 동일한 A~DP 입력 선을 가지므로 한번에 1개의 세그먼트의 불만 켤 수 있다. 따..

Bash 2차원 배열 정의 및 Loop 탐색

Bash 2차원 배열 정의 및 Loop 탐색 Bash에서는 1차원 배열만 공식적으로 지원하기 때문에 2차원 배열을 사용해야 하는 경우에는 배열을 선언하고 그 배열을 다시 배열에 넣는 과정을 거쳐야한다. 1. Bash 코드 row1=("1" "2" "3" "4" "5") row2=("6" "7" "8" "9" "10") records=(row1 row2) for record in ${records[*]} do row="$record[*]" echo "Row --- " $record for col in ${!row} do echo $record $col done done 2. 실행 결과 Row --- row1 row1 1 row1 2 row1 3 row1 4 row1 5 Row --- row2 row2 6 ..

[간단한 아두이노 코딩] 19. HC-06 모듈로 Bluetooth 통신 해보기

HC-06 모듈로 Bluetooth 통신 해보기 1. Bluetooth 모듈 블루투스는 근거리에서 적은양의 데이터를 저전력으로 전송하기에 적합하다. 이런 요구사항에 가장 잘 들어맞는 것들이 휴대폰과 근거리에서 연결될 수 있는 웨어러블 장치들 (시계, 이어폰등)이다. 특히 HC-06모듈은 블루투스 2.0을 지원하는 모듈로 최신 BT 버전에 오래되었지만, 저렴하며 간단한 텍스트 통신에는 사용하기에 충분하다. 2. Master, Slave 모듈 BT 모듈은 Master와 Slave 모듈로 나뉜다. Master는 Slave를 스캔하고 선택하여 연결하는 모듈이며, Slave는 장치 이름을 Broadcasting하여 Master에게 자신의 존재를 알린다. 물론 Master와 Slave가 연결된 다음엔 양방향 통신이..

[간단한 아두이노 코딩] 18. RS485 통신 해보기 (TTL to RS485 컨버터)

RS485 통신 해보기 (TTL to RS485 컨버터) 1. RS485 통신이란 RS485는 이름에서 알 수 있듯, Serial 통신의 하나이다. RS232 혹은 UART와는 달리 오직 2개의 선으로 여러 장치를 병렬로 연결하여 통신할 수 있다는 장점이 있다. 물론 속도는 느린 편이지만, 선의 개수가 적고 높은 전압(일반적으로 +-12볼트)를 사용하기 때문에 최대 4000피트(약 1.2km)까지 통신할 수 있다. 아래는 RS485의 연결도를 나타낸다. 위 그림에서 알 수 있듯 총 4개의 장치가 같은 A와 B라인에 연결되어 있다. 즉, 한 시점는 반드시 한개의 장치만 데이터를 전송할 수 있다.(half-duplex) 또한 각 장치들은 모두 같은 보 레이트(Buad Rate)와 설정을 가지고 있어야 함을 ..

[간단한 아두이노 코딩] 17. USB to TTL 컨버터 사용해보기

Serial 통신 해보기 1. Serial 통신 시리얼 통신은 병렬 통신과 달리 적은 수의 신호선을 이용하여 데이터를 전송하는 방식을 말한다. 일반적으로 1~2개의 선을 가지며, 우리가 익숙하게 사용하는 USB도 Universal Serial Bus로 직렬 통신의 한 종류이다. 반대로 Parallel 통신은 여러 개의 신호선을 사용하기 때문에 짧은 시간에 많은 양의 데이터를 전송할 수 있어 대역폭에는 장점을 가지지만, 통신 거리가 길어지게 되는 경우 전체 길이가 길어져서 비용이 크게 증가하는 문제가 있다. 비슷한 관점으로 적은 선만 제어하면 되기 때문에 칩셋의 구성이 간단해지고 비교적 장거리 통신이 가능해지며 전체적인 가격이 저렴하다. 비슷한 Serial 통신에는 우리가 사용할 RS232와 RS485가 ..

[간단한 아두이노 코딩] 16. 릴레이 사용하기

릴레이 사용하기 1. 릴레이란? 릴레이는 큰 전압 및 전류를 안전하게 제어하기 위한 장치로, 5v의 100mA 이하의 전원을 사용하는 아두이노에서 220V나 혹은 더 큰 전원을 사용하는 장치를 제어할 수 있게 해준다. 일례로, 전등을 아두이노의 시그널에 맞게 켜고 끄는 기능을 digitalWrite 하나로 간단하게 수행할 수 있다. 릴레이는 종류에 따라서 허용되는 전압과 전류의 양이 정해져있다. 따라서 사용하기 전에 반드시 용량을 버틸 수 있는지를 확인해야 한다. 2. 회로 구성 회로는 간단하게 구성할 수 있다. 켜고자 하는 장치에 연결되는 전원선 중 하나를 잘라 2가닥을 Relay에 연결한다. Relay에는 총 3개의 단자가 있다. Common, NC, NO인데, Common에 하나를 연결하면 된다. ..

[간단한 아두이노 코딩] 15. 16x2 캐릭터 LCD 사용하기(LCM1602A)

1.16x2 캐릭터 LCD (LCM1602A) 16x2 캐릭터 LCD는 16개의 문자, 2개 라인을 지원하는 도트 LCD이다. 이 LCD에는 이미 ascii 코드값이 포함되어 있어서, 해당하는 값만 전달하면 LCD에서 출력된다. 이 LCD는 LiquidCrystal 라이브러리를 이용하면 간단하게 원하는 위치에 값을 출력할 수 있다. 라이브러리 매니저를 통해서 LiquidCrystal을 설치하자. 2. 회로도 LCD의 왼쪽부터 1번 핀이며, 3번은 LCD 글자의 contrast를 설정하는 저항(약 1k?)을 선택 하면 된다. 15번 핀의 경우 LCD의 백라이트이다. 적당히 2~300옴을 사용하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Vss Vdd V0 RS R/W E..

[간단한 아두이노 코딩] 14. 도트 매트릭스 사용하기

도트 매트릭스 사용하기 1. 도트 매트릭스 8x8 도트 매트릭스는 총 64개의 LED가 총 16개의 선으로 연결되어 있는 장치이다. 64개의 LED를 제어하기 위해서 행과 열이 8개의 LED에 +극과 -극으로 연결되어 있다. 마찬가지로 LED의 극성 연결에 따라서 A타입 B타입으로 나뉜다. 위 처럼 1,6 지점의 LED를 켜기 위해서는 Row1과 Col6을 극성에 맞는 값을 인가해야 한다. 내가 사용중인 1088BS는 아래와 같이 구성되어 있다. 2. 매트릭스 연결 방법 아두이노에는 아날로그 핀 6개와 디지털핀 14개가 있다. 총 16개의 핀이 필요하므로 우리는 아날로그 핀2개와 디지털 핀 14개를 쓰면된다. 여기서 아날로그 핀은 디지털 핀처럼 쓸 수있다. 다만 특정보드에서는 제약 사항이 있으므로 확인이..

[간단한 아두이노 코딩] 13. 적외선 센서 & 리모컨 사용하기

적외선 센서 & 리모컨 사용하기 1. 적외선 센서와 리모컨 TV, IPTV, 에어컨등 많은 생활가전에 사용되는 리모컨은 적외선을 통해서 데이터를 전송한다. 이러한 적외선 장치를 사용하기 위해서는 데이터를 송신하는 리모컨과 송신된 데이터를 수신하는 적외선 센서로 구성된다. 적외선 통신은 아날로그 형태로 데이터를 전달하기 때문에 휴대폰의 리모컨 기능처럼 전송 프로토콜만 알고있으면 하나의 송신장치로 제어가 가능하다. 오늘 사용할 리모컨은 아래와 같으며, 리시버로는 VS 1838B이다. 마찬가지로 IRemote라는 라이브러리를 이용할 예정이다. 라이브러리 매니저를 통해 아래의 라이브러리를 설치하자. 2. 회로도 3. 소스코드 LED(우노의 내장 LED 13번)을 이용하여, 리모컨의 버튼 "1"을 누르면 LED가..

[간단한 아두이노 코딩] 12. 스텝 모터 드라이버(DM741, ULN2003) 사용하기

스텝 모터 드라이버(DM741) 사용하기스텝 모터 드라이버(DM741, ULN2003) 사용하기 1. 스텝 모터 스텝 모터는 디지털 펄스에 맞추어 한개의 step 단위로 회전하는 모터이다. 즉 단순히 전원 인가, 차단을 통해 모터를 움직이는 것이 아니라 미리 계산된 각도만큼 코드로 모터를 회전시킬 수 있다. 주로 저렴한 가격의 스텝모터는 전류의 방향에 따라서 시계, 반시계 회전을 하는 유니폴라 구동 방식을 이용한다. 이 각도 계산은 모터별로 상이한데, DM741에 포함된 28BYJ48은 5.625도가 1스텝이며 360도 회전에 총 64번의 스텝이 필요하다. 이 스테핑 과정은 직접 제어하기 복잡하기 때문에 ULN2003을 이용하는 스텝 모터 드라이버를 주로 이용한다. 구동 방법은 ULN2003 데이터 시트..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사