Comunicação serial

Alguém poderia me ajudar por favor!!

Tenho um Arduino Mega e preciso enviar e receber comandos e informações do TIC (Turbo Instrument Controller), porém não estou conseguindo.

Tenho o manual de comunicação serial do tic, com a lista de comandos, porém não consigo enviá-los pelo Arduino e nem receber as respostas..

Queria saber se é possível fazer a comunicação serial do Arduino com o TIC!?

link com o manual de comunicaçao serial do TIC: https://shop.edwardsvacuum.com/Viewers/Document.ashx?id=1929&lcid=2057

Obrigada desde já!!

I am afraid if you post on this part of the forum you need to post in English. There is a Portuguese section or you could use Google Translate.

Could someone please help me !!

I have a Mega Arduino and need to send and receive TIC (Turbo Instrument Controller) commands and information, but I can not.

I have the tic serial communication manual, with the list of commands, but I can not send them through Arduino or receive the answers ..

I wanted to know if it is possible to do the Arduino serial communication with TIC!?

I looked at the manual you sent a link to. I could not find 'USB' in it, but it does mention RS232 and RS485. The Arduino has a serial link but it is not at RS232 voltage levels. Connecting RS232 directly to the Arduino will damage it. You need to use an RS232 or RS485 shield.

Sou nova no fórum, então não sabia que devia postar em inglês..
Já estou usando um conversor RS232 para TTL, para fazer a interface do TIC com o Arduino..

Obrigada!! :slight_smile: :slight_smile:

If you have a TTL - RS232 Converter then yes you should be able to send and receive commands.
You say it is not working, what actually goes wrong?

Are you sure you have configured both ends to run at the same speed and parity?

You should post your code using the </> tags and somebody might be able to help.

Estou tentando enviar os comandos utilizando Serial.print e quando leio a porta serial (Serial.read) recebo a mesma coisa que enviei, ao invés da resposta ao comando..

Já verifiquei que a velocidade e paridade do TIC e do Arduino são as mesmas.

Queria saber se tem outra maneira de enviar os comandos seriais para o TIC, sem ser Serial.print

This link may help you how to communicate between UNO and Remote Computer using
aync TTL <—>RS232<---->USB.

If you are reading what you sent then either the TIC is echoing back the characters or the connecting cable is wrong.
The TIC expects a Carriage Return at the end of each command are you sure you are sending that character?

Do you have a PC with the TIC program on it, that would let you check out your cable?

You should post your code.

O que poderia estar errado com o cabo de interface??

Não sei muito bem como funciona o carriage return, qual seria a maneira certa de enviá-lo ao TIC?

Tenho um programa para o TIC, porém não consigo verificar o cabo através dele…

Esse é o código que estou usando:

<
int numero;
char letras;

void setup() {
Serial.begin (4800);
Serial1.begin (9600);
}

void loop() {

Serial1.print ("?V913");
Serial1.print(’\r’);
delay(10);

if (Serial1.available() != 0) {
letras = Serial1.read();
Serial.print (letras);

delay (100);
}

}

Put a print statement just inside your loop function and you will see a lot of what is going wrong.

Como devo fazer isso??

Trabalho com Arduino a pouco tempo, então ainda não entendo muita coisa à esse respeito..

:-\ :-\

int numero;
char letras;

void setup() {
Serial.begin (4800);
Serial1.begin (9600);
}

void loop() {

Serial1.print ("?V913");
Serial1.print('\r');
Serial.println("I sent the command ?V913");
delay(10);

   if (Serial1.available() != 0) {
     letras = Serial1.read();
     // Serial.print(letras);
     Serial.print("I read the character ; ");
     Serial.println(letras);
     delay(100);
   }
}

Try the above.
The function 'loop' gets called again and again.
Each time round the loop your are sending the query "?V913\r" - the '\r' is the Carriage Return
However you are only reading one character of any reply from the TIC.

Muito obrigada!!

Vou tentar com esse código!

E como faço para ler todos os caracteres da resposta do TIC??

change
if (Serial1.available() != 0) {
to
while (Serial1.available() != 0) {

Muito obrigado!!

Farei as mudanças que você sugeriu e qualquer coisa volto a te perguntar OK!?

:slight_smile: :slight_smile:

I am not always here but if I am I will try to answer.

If you get any characters back from the TIC then your cable is probably okay.
I don't understand though why, since you have the software, you cannot just use a PC and prove that the cable works.
Once you know for certain the cable is okay it eliminates another source of problems.

Your code is the main problem at the moment though.

Vou tentar fazer isso então: verificar se o cabo está ok.
Também vou fazer as mudanças no código..
Espero que funcione..

Muito obrigado mesmo, ajudou bastante!