Ir ao conteúdo
  • Cadastre-se

Wyara Souza

Membro Júnior
  • Total de itens

    9
  • Registro em

  • Última visita

  • Qualificações

    0%
  1. @Flávio Pedroza Olá! Obrigada pela resposta! Sim, no NodeMCU, mas pela IDE Arduino mesmo...Como sugestão do @mauro_b, usei apenas <float f = *((float *) data);> no vetor de dados que recebo e deu certo.
  2. @mauro_b Nossa! Muito obrigada! Testei aqui e deu tudo certinho, me ajudou bastante! Obrigada a todos que responderam!
  3. @Flávio Pedroza obrigada por responder! Então, eu estava usando esse processo..porém os valores que recebo estão em decimal, eu teria que convertê-los para hexa e em seguida para char. Para transformar em hexa estou usado: < uint16_t data[2]; // vetor com os dois registros que compõem a variável, no caso: //data[0] = 0; //data[1] = 16911; String varHex1[1] = String(data[1], HEX); String varHex2[1] = String(data[0], HEX); String vetorhex[1] = varHex1[0] + varHex2[0]; //retorna o valor em hexa mas na ordem correta e tudo junto: 420f0 >
  4. Olá, estou lendo alguns registradores de holding (16bits cada) de sensores porém os dados são floats trocados de 4 bytes, ou seja, cada dois registros recebidos devem ser trocados, convertidos em hexa, concatenados e então convertidos para float. Por exemplo: o valor de temperatura é dados por 0 16991, invertendo a ordem (16991 0) e convertendo para hexa 0x410f0000 que em float : 35,75. Eu consegui juntar os valor todo em hexa em uma string e estava tentando utilizar a função strtoul para converter para float mas sem sucesso, aparece mensagem de erro porque o valor está em uma strign...Enfim,
  5. Consegui conectar com o logger! Aparentemente era o cabo rs232 que eu estava usando.. Agora o problema é outro (rs) acho que ele tá mandando float trocado (4 bytes) pois os valores que recebo destoam muito do esperado. Como eu poderia fazer a inversão dos bytes lidos no arduino? Desde já, agradeço! (Obs.: No problema anterior o 226 estava aparecendo quando eu colocava o próprio read.HoldingRegister como uma variável. )
  6. É um datalogger, que já está configurado para 9600 e 8N1 e também tenho o endereço dos registradores...deveria estar funcionando . Como pensei que o problema fosse o arduino testei com esp8266...mas independente de estar conectado ao datalogger ou não (só o arduino ou esp ligado pela USB ao PC) o erro ainda permanece, esse 226..já troquei cabo rs232, já troquei o USB...
  7. Olhei o tutorial e agradeço por compartilhar. Vou conseguir um conversor UBB/RS232 para testar algo parecido. Porém o problema acho está relacionado com biblioteca protocolo ou meu computador pois testei o mesmo código com um esp8266 ( tx---D8 e rx----D7) e o mesmo erro aparece (226) como resultado no node.readHoldingRegister..o mesmo que ocorre no Arduino. Já tentei de tudo..
  8. Sim sim, pois é o protocolo que o datalogger permite para comunicar...apenas a rs232 está disponível.
  9. Estou tentando fazer a comunicação entre um datalogger e o Arduino UNO(mestre) através de um conversor max3232(rs232/TTL). O Hardware é o seguinte: datalogger(RS232)----DB9(FEMEA)----DB9(FEMEA)—MAX3232----ARDUINO(TX/RX) O protocolo é o Modbus RTU. Realizei alguns testes com as bibliotecas ModbusMaster que achei mas sem sucesso pois na serial sempre retornava um erro de código 226 e alguns caracteres estranhos. Já adianto que todos os dispositivos estão configurados com baudrate 9600…o problema é que mesmo que eu não conecte no datalogger, ou seja, carregando só no Ardui

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!