Arduino에서 여러 i2c 인터페이스 장치를 단일 핀 A4 (SDA) 및 A5 (SCL)에 연결하는 방법은 무엇입니까?


31

작은 프로젝트에 실시간 시계 모듈을 추가하고 싶습니다. 기존 i2c 2x16 LCD 모듈에 시간과 날짜를 모두 표시하고 싶습니다.

i2c 인터페이스 실시간 클록 모듈과 2x16 LCD 모듈은 모두 Arduino Uno에서 동일한 핀 A4 (SDA) 및 A5 (SCL)를 사용합니다. 인터넷에서 몇 시간 동안 검색 한 후에 i2c 버스는 실제로 많은 직렬 장치를 사용할 수 있습니다. 각 장치마다 고유 한 주소가 있기 때문에 가능합니다.

내 질문은 두 개의 i2c 인터페이스 장치를 단일 A4 및 A5에 물리적으로 연결하는 방법입니다. 감사.


2
짧은 대답 : 그것들을 병렬로 연결하십시오. SDA를 함께 묶어 A4에 연결하고 SCL을 A5에 연결하십시오. 물론 때로는 도움이되는 풀업 문제가 있습니다.
SDsolar

답변:


32

일부 사람들은 서로 연결된 것을 시각화하는 데 어려움을 겪고 있으므로 그림이 있습니다.

(서빙 제안)

개략도

이 회로 시뮬레이션CircuitLab I2C를 사용하여 작성된 회로도 는 버스이므로 유사한 이름의 신호가 함께 연결됩니다. 주소 지정 체계를 통해 마이크로 컨트롤러는 대화중인 장치를 선택할 수 있습니다. Arduino에서 10k 풀업 저항은 5V 또는 3.3V 핀인 "VDD"로 이동합니다.


안녕하세요, 이것은 매우 기본적 일 수 있지만 전자 제품을 처음 사용하고 Google 검색에서이 페이지를 방문했습니다. uC 란 무엇인가요?
Ciasto piekarz

달리 명시되지 않는 한 연결 체계가 동일해야하기 때문에 참조는 모든 uC에 대한 것이라고 생각합니다.
KingsInnerSoul

uC는 Arduino가 될 수 있습니다. SDA는 핀 A4이고 SCL은 핀 A5입니다.
SDsolar

8
@Ciastopiekarz, μC는 "마이크로 컨트롤러"의 줄임말입니다. 그리스 문자 μ는 마이크로의 약어입니다. μ는 u처럼 보이기 때문에 많은 사람들이 "uC"를 씁니다.
foobarbecue

9

I2C의 경우 모든 슬레이브 장치의 장치 주소가 다른 경우 모든 SDA 핀을 함께 연결하고 모든 SCL 핀을 함께 연결해야합니다. 그렇게 간단합니다.

당연히 I2C에 필요한대로 양쪽 라인에 풀업 저항을 포함시켜야합니다. 어떻게 저항 값을 선택하는 것은 여기에서 논의 된 전에 .


장치 중 하나가 DS3231 RTC이면 외부 풀업이 필요하지 않습니다.
SDsolar

3
@SDsolar, 이것은 아마도 DS3231에 내부 풀업이 있음을 의미하므로 해당 장치를 사용하여 버스에 풀업을 제공합니다. 버스의 장치 수에 따라 풀업 저항을 조정할 수있는 자유를 제한하기 때문에 반드시 좋은 것은 아닙니다.
광자

내 생각과 일치 해. 외부 풀업을 추가하는 것은 DS3231에있는 것과 유사하므로 결국 I2C가 만족스럽지 않을 수 있습니다.
SDsolar

@ SDsolar, 이것은 OP의 질문이나 내 대답과 어떤 관련이 있습니까? 이 사이트는 일반적인 토론 사이트가 아닙니다. 물건에 대해 이야기하고 싶다면 대화방에 참여하십시오 .
광자

3

두 개의 핀 A4-sda를 A5-scl (두 보드의 uno-uno)에 연결하고 각 해당 sda-scl 라인에서 5v의 저항을 연결하십시오.

여기에 이미지 설명을 입력하십시오


대답이 원래 질문에 대답하지 않기 때문에 투표했습니다. 즉, "두 i2c 인터페이스 장치를 단일 A4 및 A5에 물리적으로 연결합니다".
Oleg Mazurov

삭제할 수 없어서 (아마도)보다 만족스러운 답변으로 편집
daedalucian

전압을 공유 할 필요가 없습니까?
clankill3r

0

I2C는 Philips가 개발 한 데이터 전송 프로토콜입니다. 통신에 두 개의 와이어를 사용하므로 2- 와이어 인터페이스라고도합니다. SCL- 시리얼 클록 라인. SDL- 직렬 데이터 라인. 따라서 i2c 장치의 해당 핀을 eeprom 또는 lcd 인 경우 풀업 저항과 함께 사용하는 마이크로 컨트롤러의 SCL 및 SDL 핀에 VDD에 연결해야합니다. 연결된 각 장치에 대해 7 비트 주소를 갖는 주소 프로토콜이므로 최대 2 ^ 7 개의 다른 장치를 처리 할 수 ​​있습니다. 그러나 일반적으로 슬레이브 장치의 I2C 주소는 개발자에 의해 하드와 이어링 될 비트로 미리 정의되어 있습니다. 이는 동일한 버스에서 서로 다른 주소지가 다른 동일한 유형의 장치를 연결하는 데 도움이됩니다.


1
사실이지만 BH1750 광도 단위와 같이 둘 이상을 원하면 짜증납니다. 이 중 4 개를 원하고 I2C 이중 버스 스위칭을 처리하고 싶지 않습니다. 또한 DS3231과 같은 일부 장치에는 내부 풀업이있어서 외부 풀업과 병렬로 연결됩니다.
SDsolar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.