Tags:
Bom dia André,
Sabe ler em alemão? Não? Pode usar tradutor do Google.
Informe o seu e-mail.
Abraços,
Gustavo
Está dando certo.
Apenas um opto-acoplador já serve pois a comunicação vai ser uni-direcional. Só preciso empacotar mais dados e ver como vai ficar a velocidade no final (vou transmitir a tensão, corrente, watts e temperatura).
Recomendo usar um opto mesmo,pode ser o PC817, ele é encontrado pra todo lado, fontes chaveadas de celular, microondas, tudo. Fácil de comprar, barato e simples. Embora nos circuitos antigos ele não apareça, aparece em "todos" os circuitos comerciais.
Mais simples de usar.
Ele tem só 4 pinos.
Ref:
Boa Edurado, obrigado.
Estou usando esse mesmo. Está funcionando, mas estou tendo algumas perdas nos dados na recepção. Estou usando o monitor serial para ver o TX e o RX. O TX está OK, mas no RX está chegando alguns dados inconsistentes. Estou usando 9600bps.
Estou lendo um inteiro até 1023 e mapeando de 0 a 26Volts usando a entrada do Arduino para simular por enquanto, e tenho que transformar em 2 bytes para poder transmitir. Testei com o delay e sem, e mesmo assim assim ainda não está legal.
De vez em quando aparece um " -1 " no receptor.
//TX
lepot1=map (analogRead(A0), 0,1023,0,2600);
lepot2=map (analogRead(A1), 0,1023,0,3000);
enviar[1] = lepot1 / 100;
enviar[2] = lepot1 % 100;
enviar[3] = lepot2 / 100;
enviar[4] = lepot2 % 100;
for (int i=1; i<=4; i++){
mySerial.write(enviar[i]);
//delay(1);
}
-------------------------------------
//RX
if(mySerial.available()){
for(int i=1; i<=4; i++){
recebido[i] = mySerial.read();
//delay(1);
}
voltage_CH2 = ((recebido[1]*100) + recebido[2]) / 100.0;
current_CH2 = ((recebido[3]*100) + recebido[4]) / 100.0;
Serial.print(recebido[1]);
Serial.print(" | ");
Serial.print(recebido[2]);
Serial.print(" | ");
Serial.print (recebido[3]);
Serial.print(" | ");
Serial.println(recebido[4]);
Bom dia,
Você percebeu que tem um circuito de inversor digital na saída do optoacoplador?
Esse circuito é de um projeto de fonte comercial. Que funciona!
Bom dia.
Sim, eu percebi. Montei conforme o esquema e a comunicação está funcionando, mas estou tendo algum problema e ele de tempo em tempo recebe um dado errado. Ainda não sei o que pode ser, pois mesmo conectando ambos os MCUs sem o optoacoplador acontece o mesmo problema.
Anexo segue o print da tela do osciloscópio com o formato enviado (amarelo) e recebido (azul). Dá para perceber uma pequena deformação na recepção quando usado com opto-acoplador, mas como eu disse acima, mesmo sem o optoacoplador ainda estou tendo uma perda na comunicação.
Boa tarde,
Qual opto-acoplador esta usando?
Veja as característica do HCPL-0600. Compare com o seu.
High CMR, High Speed TTL Compatible Optocouplers
Estou usando o P817, mas creio que o problema aqui não é mais a comunicação.
Estou aprendendo agora sobre transmissão e recepção de dados e eu não estou sabendo formatar corretamente os dados para envio e decodificar na recepção.
Eu preciso enviar 4 grandezas medidas (tensão, corrente, potência e temperatura).
Em praticamente tudo o que pesquisei na internet, sempre ensinam a mesma coisa, como enviar um evento, ou uma String, apertar um botão, e coisas simples. Mas enviar essas variáveis em tempo real, preciso converter de float para byte, para enviar, e depois fazer o inverso no receptor.
Ainda não sei qual a melhor maneira de fazer isso.
Boa noite,
Tenho quase certeza de que está usando uma biblioteca do tipo SoftSerial.
O arduino não é capaz de trafegar dados de forma confiável a 9600 ou mais usando simulação de portas seriais.
Recomendo testar com velocidades de 4800, 2400 ou até 1200 bps.
Boa sorte,
'Eiju
Sim, estou, pois estou usando a serial por hardware para ver os dados no monitor. Vou testar essas opções. Obrigado.
Boa noite André,
Sugiro que faça testes exaustivos com ligação direta das interfaces seriais, até conseguir bons resultados.
E depois faça os testes com a interface isolada.
https://robotic-controls.com/learn/arduino/arduino-arduino-serial-c...
https://iot-guider.com/arduino/serial-communication-between-two-ard...
https://www.mschoeffler.de/2020/01/12/arduino-to-arduino-communicat...
http://www.zonnepanelen.wouterlood.com/arduino-bare-basics/arduino-...
Esses links deram uma clareada. Vou verificar com calma e fazer os testes.
Obrigado.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por