Boas a todos.

Pessoal estou fazendo um projeto aqui onde quero usar um Arduino Uno para ler uma porta serial de um CLP meu na qual é ligada uma impressora FH190 Custon.

O protocolo desta impressora é RS232.

Se eu ligar a saída do CLP no meu PC e ficar escutando ela os dados que aparecem sao normais como mostrado abaixo:

->Esterilizando
00:17 132 228 00:18 132 228 00:19 110 228

Mas se eu fico agora escutando via Arduino aparecem um monte de carácter estranho, como mostrado abaixo:

Recebi: ÷óyÿ»ßëúÕÿþßûÿéÿöÿÿÿÿÿûÏÎÿþÿÿûþÛr¶ÿÿþÿ¿ÿÿÿÿþ-ëý¾ïÿóîöþßþ

Estou usando um conversor RS232 - TTL para intermediar mas mesmo assim nao esta dando certo.

Alguem tem alguma ideia do que pode ser?

O codigo do meu arduino é este abaixo:

int led = 13;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}

/**
* Função que lê uma string da Serial
* e retorna-a
*/
String leStringSerial(){
String conteudo = "";
char caractere;

// Enquanto receber algo pela serial
while(Serial.available() > 0) {
// Lê byte da serial
caractere = Serial.read();
// Ignora caractere de quebra de linha
if (caractere != '\n'){
// Concatena valores
conteudo.concat(caractere);
}
// Aguarda buffer serial ler próximo caractere
delay(10);
}

Serial.print("Recebi: ");
Serial.println(conteudo);

return conteudo;
}

void loop() {
// Se receber algo pela serial
if (Serial.available() > 0){
// Lê toda string recebida
String recebido = leStringSerial();

if (recebido == "LED1:1"){
digitalWrite(led, HIGH);
}

if (recebido == "LED1:0"){
digitalWrite(led, LOW);
}
}
}

Desde ja agradeço a ajuda de todos.

Exibições: 458

Responder esta

Respostas a este tópico

Você chegou a verificar a velocidade? No exemplo está configurando o Arduino para 9600. Talvez seja outra velocidade.

Bom dia tudo bom.

Sim a velocidade esta correta tanto no Arduino como no CLP.

Tx e rx invertidos? 

Ja verifiquei esta correto uma vez que a porta do CLP neste caso usa apenas a TX para enviar os dados que vão para impressora - não usa o RX

Parece que a leitura esta vindo em algo parecido com ASCII ou coisa assim.

Aparentemente a sua codificação está correta. Não analisei bem e nem testei.

Diga uma coisa os GNDs estão ligados junto, arduino > conversor > CLP ?

Os GNDs devem estarem interligados. 

Consegui resolver pessoal.

O meu CI MAX 232 esta com algum problema pois eu troquei ele e deu certo.

Valeu a todos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço