라즈베리파이, 아두이노 27

라즈베리파이에서 one-wire 온도센서(DS18B20) 읽는 제일 쉬운 방법

1. One wire는? 1개의 데이터 선에 여러 장치를 붙여서 쓰는 식이다. 우리가 멀티탭에 전원을 꽂아서 쓰듯. 이 방식을 이용하면 선 1개로 여러 개의 센서를 붙일 수 있는데, 나는 온도 센서를 한줄로 붙여서 외부, 베란다, 거실 온도를 측정했다. 2. Raspberry 설정 1) one-wire 설정 enable 해주자. sudo raspi-config interface -> one-wire -> enable 2) 아래의 명령으로 w1 모듈을 프로브 해주자. sudo modeprobe w1-gpio sudo modprobe w1-therm 3) reboot을 하자. 4) /sys/bus/w1/devices 디렉터리가 생성되면 설정 완료 3. 디바이스 확인하기 나는 DS18B20 온도 센서를 3개 ..

라즈베리와 아두이노 USB로 통신하기

1. 간단하게 서로 통신할 방법이 없을까? 아두이노는 USB로 전원을 공급받을 수 있고, 프로그램 업로드도 가능하다. 즉 USB로 데이터 송수신을 할 수 있다. 2. Raspberry에서 어떻게 아두이노에 데이터를 줄까? Raspberry에서 serial 통신을 수행하면 된다. Python의 경우 PySerial을 통하여 시리얼 통신을 열고 read, write를 수행할 수 있다. 3. 라즈베리 예시코드 import serial com = serial.Serial(port = "/dev/ttyACM0", baudrate = 9600, bytesize = serial.EIGHTBITS, parity = serial.PARITY_NONE, timeout = 1) s = "TEST CODE" com.write..

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

MAX7219 도트 매트릭스 SPI 사용하기 1. MAX7219 드라이버 7세그먼트와 똑같이 Dot matrix 또한 다수의 핀을 필요로 한다. 따라서 이를 줄이기 위해서 SPI 통신이 가능한 MAX7219 드라이버를 이용해야 한다. MAX7219 도트매트릭스 드라이버를 사용하면 16개의 핀에서 VCC, GND, DIN, CS, CLK 총 5개의 핀으로 줄일 수 있고, 여러개를 병렬로 연결해서 사용할 수 있다. 라이브러리 매니저를 통해서 LedControl을 설치하자. 2. 회로 구성 3. 소스코드 Matrix를 여러개 병렬 연결할 수 있다. 여기서 0은 0번 매트릭스를 뜻한다. #include "LedControl.h" #define CS 10 #define CLK 11 #define DIN 12 Le..

[간단한 아두이노 코딩] 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개의 세그먼트의 불만 켤 수 있다. 따..

[간단한 아두이노 코딩] 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개를 쓰면된다. 여기서 아날로그 핀은 디지털 핀처럼 쓸 수있다. 다만 특정보드에서는 제약 사항이 있으므로 확인이..

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