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.
Tags:
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por