일시 : 2018.01.11 14:00 ~ 18:00
내용 : I2C 조도센서, 온습도센서
부저, 초음파, 소리내기 집에서 해보기
//
I2C 통신 (Inter Integrated Circuit)
I-Square-C 라고도 부르며 필립스에서 제안한 통신 방식
두 개의 신호(SDA, SCL)를 사양하는 양방향 직렬 통신 방식
하나의 Master, 다수의 Slave
일반적으로 7-bits 주소 사용. 하나의 I2C 버스에 연결되는 개별 장치의 식별 용도로 활용
세계 표준 프로토콜
cpu <=> 모듈
두 개의 선으로 여러 개의 디바이스를 제어하기 위한 인터페이스 (1:N 통신)
하나의 Master와 다수의 Slave
-> I2C 버스를 통해 많은 외부 장치들과 연결 O
SDA(Serial DAta)와 SCL(Serial CLock) 두가지의 핀 사용
SDA : 데이터를 전송하기 위한 신호(데이터 입출력)
write동작에서는 Master -> Slave
read 동작에서는 Slave -> Master 양방향 신호
SCL : 마스터와 슬레이브를 동기화하는 역할(외부 장치와 통신할 때 신호 동기화)
Master -> Slave 단방향 신호
=> SDA와 SCL의 조합으로 여러 개의 디바이스를 제어
하나의 마스터칩이 동일 선상의 여러 개의 슬레이브칩 통신을 관리할 수 있음
슬레이브주소를 통해 통신 O, Slave address를 보내 맞는 Slave가 응답
마스터는 SCL을 통해 버스를 제어, 슬레이브는 마스터가 제어하는대로 SDA를 통해 데이터를 입출력
라즈베리파이(마스터) - 각종 센서, 외부 입출력 장치(슬레이브)
양방향 데이터 전송을 지원하므로 SDA, SCL은 open drain(high신호를 줄 수 없고 low신호만 보낼 수 있음)으로 외부 pull-up 저항 필요
디바이스 주소는 대부분 7bit 주소 체계를 사용하며 동일한 Line에 연결된 다수의 장치를 식별하기 위한 목적으로 사용
pull-up 저항 : +쪽(3.3v)에 설치하는 저항. 제대로 된 high값을 보내기 위해 플로팅 현상(low인지 high인지 알 수 없는 불안정한 상태)을 해결하기 위함. 풀업 저항일 때 스위치가 off이면 high상태로 입력값에 혼동이 없다.
# I2C 유틸리티 및 라이브러리 설치
sudo apt-get install python-smbus i2c-tools
# 재부팅
sudo reboot
'2017 멀티캠퍼스 > Raspberry Pi' 카테고리의 다른 글
#9 라즈베리파이 PWM (0) | 2018.01.30 |
---|---|
#8 라즈베리파이 Piezo 센서 (0) | 2018.01.30 |
#6 라즈베리파이 PIR 센서 (움직임 감지) (0) | 2018.01.14 |
#5 라즈베리파이 GPIO 조이스틱 (0) | 2018.01.14 |
#4 라즈베리파이 DC Motor (0) | 2018.01.14 |