Quero adicionar um módulo de relógio em tempo real ao meu pequeno projeto. Quero exibir a hora e a data no meu módulo LCD i2c 2x16 existente.
O módulo de relógio em tempo real da interface i2c e o módulo LCD 2x16 usam o mesmo pino A4 (SDA) e A5 (SCL) no Arduino Uno. Após horas pesquisando na rede, o barramento i2c pode levar muitos dispositivos seriais. Isso é possível porque cada dispositivo tem seu próprio endereço exclusivo.
Minha pergunta é como conectar fisicamente os dois dispositivos da interface i2c em um único A4 e A5? Obrigado.
Respostas:
Algumas pessoas estão tendo dificuldade para visualizar as coisas conectadas, então aqui está uma foto:
(Sugestão de exibição)
simule este circuito - o esquema criado usando o CircuitLab I2C é um barramento, de modo que sinais com nomes semelhantes são conectados juntos. O esquema de endereçamento permite que o microcontrolador selecione com qual dispositivo está falando. No Arduino, os resistores pull-up de 10k passam para "VDD", que são os pinos de 5V ou 3,3V.
fonte
Para I2C, se todos os dispositivos escravos tiverem endereços de dispositivos diferentes, todos os pinos do SDA deverão ser conectados juntos e todos os pinos do SCL deverão ser conectados juntos. É simples assim.
Naturalmente, você também deve incluir resistores pull-up em ambas as linhas, conforme necessário para I2C. Como escolher os valores do resistor já foi discutido aqui antes .
fonte
Conecte dois pinos A4-sda a A5-scl (na placa uno-uno) e conecte o resistor de 5v de cada linha sda-scl correspondente.
fonte
I2C é um protocolo de transferência de dados desenvolvido pela Philips. Também conhecida como interface de dois fios, pois usa dois fios para comunicação. Linha de relógio serial SCL. Linha de dados SDL-serial. Portanto, você precisa conectar os pinos correspondentes dos dispositivos i2c, seja um eeprom ou lcd aos pinos SCL e SDL do microcontrolador que estiver usando com um resistor de pull-up ao VDD. Como é um protocolo de endereços com endereço de 7 bits para cada dispositivo conectado, você pode endereçar até 2 ^ 7 dispositivos diferentes. Mas normalmente o endereço I2C de um dispositivo escravo é predefinido com alguns bits a serem conectados pelo desenvolvedor. Isso ajuda na conexão do mesmo tipo de dispositivos com diferentes partes de endereços conectados no mesmo barramento.
fonte
Além disso, você deve verificar os resistores pull-up. Se você usar placas já fabricadas, não apenas o chip, essas placas geralmente possuem resistores de pull up a bordo entre o barramento e o vcc. Portanto, quando você conecta tudo em paralelo, os resistores também estão em paralelo, portanto, o valor total do resistor cai e sua comunicação pode falhar.
fonte