Conversor de nível lógico entre 3.3V e 5V com 4 canais

Conversor de nível lógico entre 3.3V e 5V com 4 canais.

Este tipo de conversores permite fazer a ligação por uart, spi e i2c entre dispositivos que trabalham a 3.3V e 5V.

Este conversor de nível lógico é util por exemplo na ligação entre o Arduino e o Raspberry Pi. Como o seu uso fica garantido que nunca chega 5V ao Pi que o danificavam.

O meu conversor é igual ao da imagem. Pelo que pesquisei na net, nao percebi se todos os canais são bidirecionais. Por isso, na ligação I2C do Arduino com o Raspberry Pi B joguei pelo seguro, com a unica informação disponivel, e usei o esquema de pinos abaixo em que apenas os canais exteriores são bi-direcionais.

No entanto, acho que este conversor lógico tem todos os canais bi-direcionais.

Programa de teste

logic_level_test_v1

#define serialSpeed 115200

#define PIN1 11
#define PIN2 12
#define TIME1 2000
#define TIME2 3000
unsigned long timer1;
unsigned long timer2;
bool state1 = false;
bool state2 = false;

void setup() {

Serial.begin(serialSpeed);
pinMode(PIN1, OUTPUT);
pinMode(PIN2, OUTPUT);
timer1 = millis() + TIME1;
timer2 = millis() + TIME2;

}

void loop() {
if(millis() > timer1) {
timer1 = millis() + TIME1;
state1 = !state1;
digitalWrite(PIN1, state1);
}

if(millis() > timer2) {
timer2 = millis() + TIME2;
state2 = !state2;
digitalWrite(PIN2, state1);
}

}

O programa acima permite testar as saidas para os 3.3V com um multimetro.

Links

https://www.arduinoecia.com.br/2015/11/conversor-de-nivel-logico-33-5v-Arduino.html