Tenho um Arduino MEGA e estou tentando usar 2 dispositivos compostos de pinos RX e TX no mesmo, porém estou tendo dificuldades.

Os dipostivos são:

- Display LCD Nextion

- VR Recognizer V3 (Módulo de reconhecimento de voz)

Quando uso o código conforme a biblioteca dos mesmos, tenho o seguinte problema... Ambos recebem comandos do Arduino, ou seja, o arduino consigo enviar comandos para os dois, PORÉM apenas 1 módulo consegue enviar comandos para o Arduino (no caso sempre o módulo de voz).

Eu descobri que é possível usar vários pinos de comunicação com o Arduino MEGA, eu tentei fazer isso, mas o comandos são enviados "crús" para o Arduino, além de eu ter que tentar descobrir como lê-los, também tenho a problemática de usar facilidades da biblioteca dos mesmos...

<code>

#include <SoftwareSerial.h> // (DISPLAY)
#include <Nextion.h> // (DISPLAY)
SoftwareSerial nextion(10, 11); // (DISPLAY)
Nextion myNextion(nextion, 9600); // (DISPLAY)

#include "VoiceRecognitionV3.h" // (COMANDO DE VOZ)
SoftwareSerial VR myVR(53, 52); // (COMANDO DE VOZ)

</code>

Essa é a configuração padrão (de acordo com cada biblioteca), porém quando uso isso, apenas um módulo consegue se comunicar 100% com o Arduino, o outro só recebe dados....

O que será que posso fazer para corrigir isso? Será que terei que usar as portas de Rx1, Tx1, Rx2 e Tx2?

Exibições: 1173

Responder esta

Respostas a este tópico

Para o Mega o caminho é usar as seriais em hardware dele.

Veja em:

https://www.arduino.cc/en/Serial/Begin

O trecho "Arduino Mega Example".

A unica diferença é que os pinos dessas seriais são pré definidos. Vc tem que usar conforme escrito na placa:

http://pighixxx.com/megapdf.pdf

Veja os azul claro (Serial Pin)

Bom dia Eduardo, consegui resolver metade do meu problema... Consegui fazer o meu Display funcionar com o HardwareSerial...

No momento tenho 2 Hardware seriais funcionando simultaneamente, o módulo esp-8266 e o Display, porém ainda preciso fazer o módulo de voz funcionar na 3a porta do hardware.

No display, eu li no "Readme" da library dele e lá tinha as instruções de como adaptá-lo para o hardware serial, foi bem tranquilo... Agora na library do módulo de reconhecimento de voz, não há nenhuma instrução para o uso de hardware serial, como será que vou fazer a comunicação com esse módulo de voz? Será que consigo usar a biblioteca deles que foi toda adaptada para o uso em Software Serial?

Links Módulo de Voz

Manual

Biblioteca 

Heitor, já vi alguns sketchs que usavam hardware serial e software serial juntos.

Nos seu caso, acho que você poderia usar hardware para o nextion (pinos 0 e 1) e software para o módulo de reconhecimento.

Só tentando para ver se  funciona...

Boa tarde José Augusto, então, é possível sim usar 1 software e 2 hardware, porém tenho 3 saídas hardware, porque não usa-las?

Eu criei um tópico no forum do próprio Arduino.cc e lá um rapaz me falou que é muito melhor você usar o hardware serial. Olha o que ele falou

"The only difference is that Serial# uses a hardware UART that can reliably send and receive data, independently of what the CPU and the other UARTs are doing, while you can only send or receive on one SoftwareSerial port at any given time, and you can't do anything else at the same time."

Ou seja, é um meio mais confiável de ser comunicar com o seu UART

Heitor, sim.

Entendo que o Hardware serial é melhor. Isso não há duvida. Ainda mais no mega que oferece essa possibilidade.

Sugeri isso, para tentar te ajudar a resolver o problema que está tendo em usar o reconhecimento de voz pelo hardware serial.

Mesmo porque o software serial não é esse vilão que estão pintando.

Sim! Provavelmente irá solucionar meu problema, tentarei pesquisar mais um pouco, caso não consiga resultados, terei que usar o Software Serial..

Heitor, você conseguiu fazer funcionar o módulo de reconhecimento de voz separadamente?

Ele funciona bem?

Cara,ele funcionou com os outros hardwares, porém não está confiável, está falhando muito, as vezes sofre um delay meio alto para executar algum comando meu.

Qual é a marca/modelo do seu módulo? Alguns possuem problemas conhecidos, como esse aqui:

http://labdegaragem.com/forum/topics/voice-recognition-v3-1-com-ard...

Pois é, parece que os problemas graves começam quando vc quer mais de duas softseriais. Tente manter esse como softserial.

Então José Augusto, meu módulo é igual o desse rapaz, ele no caso mencionou o "v3.1" mas na verdade é o "v3.0", em relação ao funcionamento do módulo, está tudo perfeito PORÉM como meu código é grande e exige bastante do meu processador, quando adiciono esse módulo eu meu código, ele fica fica bem lento (apesar de funcionar na maioria das vezes)... Agora se eu coloco esse módulo para funcionar sozinho, não da 1 erro!

Falando em processador, não sei como melhorar mais ainda meu código, fiz de tudo que estava em minhas mãos, só não alterei bibliotecas (das quais eu mal consigo interpretar). Vai aqui uma pergunta, conhece alguma placa genérica que trabalhe com um processador da mesma arquitetura que a do Arduino MEGA e que tenha uma velocidade de processamento maior?

Heitor,

Existe o Arduino Due, que usa outro processador, é bem mais rápido mas é compatível.

O problema é que trabalha com 3.3V

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço