Eu tenho tentado, sem sorte, fazer o Raspberry Pi falar com um Arduino. Estou usando um conversor de 3,3 V a 5 V para trocar tensões. Coloquei um LED no pino UART TX e parece que estava invertendo os dados. Se isso for verdade, de que circuito eu preciso para que ele se comunique com o Arduino?
Estou usando um conversor de nível lógico de componentes legais . É um transistor para 3,3 V a 5 V e resistor para 5 V a 3,3 V.
Estou usando um CD4050 para fazer a conversão de nível de 5V para 3.3V e também para atuar como um buffer para proteger meu Raspberry Pi. O Arduino deve considerar 3.3V como um ponto alto lógico, portanto, você não precisa converter de 3.3V para 5V (permaneço corrigido aqui, de acordo com a página do Arduino, qualquer voltagem acima de 3V é considerada alta como ponto alto).
Eu montei um exemplo rápido do uso do CD4050, Raspberry Pi GPIO UART e Arduino aqui: http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart
Quaisquer comentários são bem-vindos, está funcionando, mas eu posso ter feito errado :)
fonte
Na verdade, já deparei com o mesmo problema e o resolvi executando um barmone atmega328 com um carregador de inicialização Arduino a 3,3 volts, mas a 8 MHz. Os 8 MHz podem causar um problema se você tiver requisitos de tempo rigorosos. Eu, só estou pensando em usar o Arduino para gerar PWM para uma faixa de led rgb, então tudo bem se a frequência do pwm for metade da normal. Até agora, meus testes preliminares indicaram que o Arduino pode receber a mensagem muito bem.
fonte
Existe uma solução simples que você pode remover qualquer fonte de energia externa do Arduino e conectar o pino GPIO do Raspberry Pi 1 a 5v do Arduino usando fio de jumper para que a energia principal do Arduino seja 3,3v e todos os seus pinos tenham 3,3v em vez de 5v. Agora você pode conectar diretamente os pinos Uart do Pi e do Arduino. Trabalhou para mim.
fonte