Boa noite parceiros, então eu estou tentando enviar os dados que eu recebo no pino 0 rx para o pino 1 tx, eu já tentei várias maneiras mas ele só envia para o monitor terminal, quando eu escrevo Serial.write(c); ele deveria escrever os dodos da variável c no pino 1 tx? Eu já pensei na possibilidade deste pino estar com defeito mais eu testei e ele está ok, eu fico muito grato se algum colega puder dar alguma dica.
Não imagino o que possas estar a fazer ou o que pretendes fazer...
O que tens ligado no pino 0 e 1?
Sabes que os pinos 0 e 1 têm lá ligados o conversor USB - TTL?
Sabes o que é um conversor USB - TTL?
O que pretendes fazer? Já fizeste código? Onde está?
Tens um esquema?
Então eu estou ligando nos pinos rx e tx do Arduino um computador, o conversor ttl eu usei o max232 e eu já consigo receber o que o outro pc envia mas o que eu não estou conseguindo é mandar de volta, o código que eu usei é esse:
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
char c = Serial.read();
Serial.write(c);
}
}
Seria um terminal de comunicação, eu fico muito grato se vcs puderem me dar algumas dicas.
thank you very much
Esqueceste-te de responder a algumas perguntas...
bubulindo:
Sabes que os pinos 0 e 1 têm lá ligados o conversor USB - TTL?Sabes o que é um conversor USB - TTL?
Tens um esquema?
Resta-me outra pergunta, que placa estás a usar?
Sabes que os pinos 0 e 1 têm lá ligados o conversor USB - TTL? Sim eu sei e inclusive é esse conversor que possibilita a comunicação do pc com o Arduino.
Sabes o que é um conversor USB - TTL? Sim
Tens um esquema? Não tenho mas se tiver mais alguma dúvida é só perguntar
Resta-me outra pergunta, que placa estás a usar? R3
thanks.
Percebes que o facto de teres esse conversor estraga um bocado a possibilidade das coisas funcionarem como pretendes, correcto?
Correcto parceiro e foi justamente por isso que eu pedi ajuda no fórum porque eu sou iniciante em programação então eu pensei talvez com código especifico daria para contornar o problema. Eu fico grato se você ou alguém souber uma maneira de contornar a situação. thanks
Eu não sei exactamente o que pretendes fazer... mas está-me a parecer que o Arduino está a mais no meio. Tu queres enviar dados duma porta USB onde o Arduino está ligado e receber noutra onde ligaste um RS232? É isso?
Porque é que meteste o Arduino no meio? Se explicares o propósito poderá ajudar já que pode haver outras formas de fazer o que queres.
Em todo o caso dá uma vista de olhos a algo chamado SoftSerial ou NewSoftSerial.
Isso mesmo ele fica no meio e ele vai intermediar a comunicação ou seja os bytes que ele receber pelo pino0 rx sera exibido no terminal e ao mesmo tempo será enviado de volta pelo pino1 tx para que seja exibido no terminal do pc que mandou, com o código que postei eu consigo receber os dados agora eu preciso mandar as informações que ele está recebendo de volta. Fico grato se vc tiver alguma sugestão de algum código que possa fazer isso.
Obrigado.
Então basicamente tens dois computadores e um Arduino, correcto?
Ligas um com USB e ligas o outro com RS-232.
Se for assim, o teu problema é exactamente esse... estás a meter um chip no meio (Arduino) que não vai fazer nada. Se queres comunicar entre dois computadores, escusas de meter um processador no meio.
Se queres mesmo fazer isso... procura por newsoftserial como te aconselhei, mas não vais usar os pinos 0 e 1 uma vez que esses já estão ocupados pelo conversor USB - TTL.
Então basicamente tens dois computadores e um Arduino, correcto? Exatamente isso.
Ligas um com USB e ligas o outro com RS-232. Isso mesmo.
Se for assim, o teu problema é exactamente esse... estás a meter um chip no meio (Arduino) que não vai fazer nada. Se queres comunicar entre dois computadores, escusas de meter um processador no meio. Cada cabeça uma sentença.
Se queres mesmo fazer isso... procura por newsoftserial como te aconselhei, mas não vais usar os pinos 0 e 1 uma vez que esses já estão ocupados pelo conversor USB - TTL. Ok eu vou correr atras.
Eu acho ate melhor não usar os pinos 0 e 1 porque depois se eu quiser ligar mais pcs fica mais fácil.
Muito obrigado!
ArduinoUnoFire:
Se for assim, o teu problema é exactamente esse... estás a meter um chip no meio (Arduino) que não vai fazer nada. Se queres comunicar entre dois computadores, escusas de meter um processador no meio. Cada cabeça uma sentença.
Tu lá sabes...
ArduinoUnoFire:
Se queres mesmo fazer isso... procura por newsoftserial como te aconselhei, mas não vais usar os pinos 0 e 1 uma vez que esses já estão ocupados pelo conversor USB - TTL. Ok eu vou correr atras.
Eu acho ate melhor não usar os pinos 0 e 1 porque depois se eu quiser ligar mais pcs fica mais fácil.
Se achas melhor não usar esses pinos... porque é que os usaste?
Porque o código fica mais lite e eu estive pensando nesse caso não seria melhor eu usar a placa Arduino mega que tem 4 portas pre-programadas, o Arduino que eu estou usando em: Import library não aparece a biblioteca Newsoftserial e aparece a: SoftwareSerial que eu vi alguns sites dizendo para não usar essa pq ela está cheia de bugs?
Muito Obrigado!
O Arduino mega é, de facto, uma solução tecnicamente melhor para isto.
News: NewSoftSerial is in the core! Starting with Arduino 1.0 (December, 2011), NewSoftSerial has replaced the old SoftwareSerial library as the officially supported software serial library. This means that if you have 1.0 or later, you should not download this library. To port your code to 1.0, simply change all NewSoftSerial references to SoftwareSerial.
daqui NewSoftSerial | Arduiniana
Ou aqui:
The version of SoftwareSerial included in 1.0 and later is based on the NewSoftSerial library by Mikal Hart.
http://arduino.cc/en/Reference/SoftwareSerial
Então não tens de te preocupar com versões.