Ola pessoal, como vao?

estou com uma duvida...

teria como usar mais de uma porta serial no arduino?

exemplo se comunicar com 3 tipos de dispositivos serial,

                            <============>Dispositivo 1

arduino == <Serial> <============>Dispositivo 2

                            <============>Dispositivo 3

vi que o arduino tem somente uma porta serial... teria como implementar mais duas ou mais usando outros pinos?

Obrigado a todos galera, forte abraço!

Exibições: 10107

Responder esta

Respostas a este tópico

Bom dia Cleimar

Para isso utilize a biblioteca SoftSerial

http://arduino.cc/en/Reference/SoftwareSerial

Ela foi desenvolvida para utilizar qualquer par de terminal do arduino como uma serial.

Tem suas limitações de velocidade, não é tão boa quanto a serial por hardware, mas resolve alguns problemas.

Abraços

Oopa isso e muito legal....
valeu pela dica!
voce sabe se teria como enviar algum comando via ssh ou telnet do arduino para o linux?

estou precisando implantar um sistema de verificação em um servidor, mais preciso enviar codigos de fora do servidor via 3g...

conectaria pelo ip do 3g que esta ligado no arduino, e dali enviaria um comando pre configurado.

para executar dentro do linux,

ex travou a placa de rede do servidor, eu enviaria um comando para o arduino ligado pela porta serial do servidor via ssh ou telnet,

por um pc ligando a rede no servidor seria (ssh ipservidor -l usuario "/ifdown ethx && ifup ethx")

como a placa de rede estaria travada nao iria funcionar! ja no esquema do arduino conectaria e daria o comando, seria util tabem um esquema de rele para desligar alguma tomada e ligala novamente para reiniciar um roteador por exemplo...

pelo linux tem como deixar um script rodando a um tempo predeterminado pelo cron, seria muito mais facil mais por este esquema daria para min fazer outras coisas e um acesso de fora por 3g caso o link do servidor caia...
bom e isso rssss
forte abraço Bruno


Não sei qual  tipo do seu servidor, mais pela minha experiencia em servidores proxy, mikrotik, dados, para a placa de rede travar isoladamente voce teria que estar usando MAQUINA VIRTUAL ,ou tua placa de rede estar bixada, ja vi muito disso, agora se o hardware esta bom, a maquina estiver dimensionada certo, dentro de um ambiente com a temperatura correta não é para travar.

1ºsugestao= voce pode pegar um arduino uno com shield ethernet, como voce falou que a maquina trava a placa de rede, provavelmente a placa nao responde ao comando PING, entao voce pode fazer um esquema de reiniciar a maquina.

2ºsugestao = se for maquina virtual que voce esta usando, crie script para comunicar com o arduino, caso a comunicação falhe, reinicia tb

Existem mil e uma maneiras de fazer neston, você é quem pode decidir com maior clareza a solução ideal

Olá.

Ela é compatível com o Uno R3?

A melhor solução seria fazer um sistema semelhante ao do I2C, o Tx do Arduíno continua como esta e no Rx fazer uma sistema com coletor aberto. A limitação é que se pode comunicar somente com um dispositivo por vez(receber dados, enviar pode ser para todos ao mesmo tempo), mas a vantagem é que  não corre o risco de perder dados e nem interfere no desempenho do microcontrolador como uma comunicação for software,

Aproveitando o tópico, seria possível a comunicação de um Arduino com outros dois apenas com TX x 2 RX:

                                                    /  (RX) ==== > Arduino A

Arduino 1 == <Serial TX>  ===>  [

                                                    \  (RX) ==== > Arduino B

 

Será possível fazer uma comutação externa do sinal da porta TX do Arduino 1 para direcionar o sinal para o Arduino A ou Arduino B?

Agradeço pela contribuição dos amigos.

Milton Vilela

 

Essa ligação 1TX para 2RX é só ligar via fio que funciona.

Para o reverso (se precisar) entra a dica do Jucelei, use coletor aberto.

Caso por algum motivo não consiga, por ex pq o dispositivo não permite coletor aberto.. vc pode usar uma porta OR ou AND (conforme polaridade). Se não quiser gastar um integrado pra essa porta ainda pode implementar ela com diodos ou transistores.

Valeu Eduardo!

No caso quero mandar sinal de um Arduino para outros dois. Nesse caso imagino que posso utilizar porta OR, confere?

Se for só mandar, ligar o TX de um em 2 RXs, é só ligar mesmo. 

Uma saída qualquer pode acionar várias entradas, seja sinal serial ou não. 

To precisando usar dois dispositivos seriais em uma porta do arduino, dá pra fazer? como funciona esse coletor aberto e essa porta OR ou AND?

O Arduino permite soluçoes melhores para ligar 2 dispositivos, como o SoftSerial ou mesmo multiplas seriais (usando pastilhas maiores), como dito pelo bruno.

Mas inspirado nos sistemas pobres de recursos a criatividade gera coisas como a simples ligação em paralelo dos RXs dos receptores com acionamento por um unico TX no microcontrolador. O que vc manda pela serial é recebido por todos os dispositivos no mesmo momento.

Já do outro lado vc nao pode simplesmente fechar curto em toros os TXs e ligar no seu RX. Nao pode por motivos elétricos. Para fazer essa ligação seria necessário uma porta OR, que pode ser feita com diodos. Se vc usar open colector, ou seja: O TX só aciona para terra, quem eleva a tensão é um resistor tb funciona.

Assim se apenas 1 dispositivo falar de cada vez vc consegue ouvir bem.

O protocolo precisa ser do tipo "passa anel", de tal forma que vc fala algo que apenas um reconhece como comando para transmitir.

Em paineis de bingo (urgh!) isso era muito usado. Vi coisas como ligarem um monte de painéis em série e cada um lia o bloco de dados e somava um no ID, de tal forma que a fiação determinava o numero de cada maquina. Simples, sem configurações. O controlador podia mandar comandos para uma ou para todas, falando só por ex "a terceira conectada". Para retorno da informação era tudo ligado com open collector. Assim quando a informação chegava a maquina solicitada só ela respondia. O ruim era que qualquer problema de fiação se propaga, derrubando várias máquinas. 

Obrigado Eduardo pela resposta... só deixa eu tentar explicar o que estou fazendo...

estou tentando montar um relogio de ponto, que tem 4 dispositivos seriais, são eles: leitor rfid, leitor biometrico, leitor de codigo de barras e impressora termica... minha dúvida é a seguinte, é possivel usar o leitor rfid/biometrico e o de barras ao mesmo tempo na entrada serial do arduino usando porta OR, mas tipo, sem que funcione bem, sem gambiarras?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço