Guía do usuario de DYNAMENT AN0007 Arduino a Platinum COMM

AN0007 Arduino a Platinum COM

Información do produto

Especificacións

  • Nome do produto: DOCUMENTO DE AXUDA DE COMUNICACIÓN DE ARDUINO A PLATINUM
  • Fabricante: Dynament Limited
  • Enderezo: HermitagPolígono industrial de e Lane, Kings Mill Way,
    Mansfield, Nottinghamshire, NG18 5ER, Reino Unido
  • Contacto: Tel.: 44 (0)1623 663636, Correo electrónico: sales@dynament.com,
    Websitio web: www.dynament.com
  • Edición: 1.2, Data: 09/04/2025

Instrucións de uso do produto

Conectando o sensor

Esta folla de datos usa o Arduino Mega como exemplo.ampé dicir, conectar como
segue:

  • 5v -> pin de Arduino de 5v
  • 0v -> Terra de Arduino
  • Transmisor -> Arduino RX1
  • Rx -> Vai á saída do divisor de potencial. A entrada
    vai a Arduino Tx

Voltage Compatibilidade

O Arduino usa 5 V lóxica alta mentres que o sensor de platino usa
3.3 V. Usa un vol.tagdivisor e con valores suxeridos para R1 e R2 como
4K7 para evitar danos no sensor.

Configuración de Arduino IDE

  1. Descarga a versión máis recente do software Arduino IDE desde
    o Arduino websitio.
  2. Selecciona a placa Arduino, o procesador e o porto nas ferramentas
    menú despregable.

Carga de código

  1. Copia o exemplo proporcionadoampo código no IDE de Arduino.
  2. Sube o código ao Arduino premendo na frecha.
  3. Abrir o monitor serie para view transmisión de datos.

FAQ

P: Que debo facer se teño un Arduino Uno cun só conector?
porto?

R: Conecte o sensor de platino a ese porto. Ao usar o
monitor serie, tamén mostrará o hexadecimal transmitido.

"'

Nota de aplicación AN0007
DOCUMENTO DE AXUDA DE COMUNICACIÓNS DE ARDUINO A PLATINUM

Dynament Limited
HermitagPolígono industrial de e Lane, Kings Mill Way, Mansfield, Nottinghamshire, NG18 5ER, Reino Unido. Tel.: +44 (0)1623 663636
Correo electrónico: sales@dynament.com www.dynament.com

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 1 de 14

Contidos
Dynament Limited …………………………………………………………………………………………………….1 Conexión do sensor……………………………………………………………………………………..3 Arduino IDE ………………………………………………………………………………………………5 Explicación do código…………………………………………………………………………………………..9 Desglose de paquetes ………………………………………………………………………………………….11 Usando Serial.read() …………………………………………………………………………………….13
Notas avanzadas de conversión……………………………………………………………………………….14

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 2 de 14

Conexión do sensor Esta folla de datos usa o Arduino Mega como exemplo.ampÉ dicir, o Ardunio Mega proporciona máis dun porto de comunicación, polo que o porto de comunicación 1 úsase para comunicarse co sensor e o porto de comunicación 0 úsase para imprimir no PC.
O Arduino usa 5v lóxica alta mentres que o sensor de platino usa 3.3v, polo que para evitar danos ao sensor, un vol.tagDébese usar o divisor e. Os valores suxeridos para R1 e R2 son 4K7.

Figura 1: Reduce o volumetage a nivel utilizable
A liña de transmisión do sensor que vai ao receptor do Arduino non precisa dun divisor, xa que 3.3 V é unha entrada aceptable para o Arduino.
Para alimentar o sensor, debe estar conectado a 5 V e 0 V. Para facelo, podes usar os pines do Arduino.
Unha vez completado isto, o sensor debería ter os seguintes pines conectados:
5v -> pin de Arduino de 5v
0v -> Terra de Arduino
Transmisor -> Arduino RX1
Rx -> Vai á saída do divisor de potencial. A entrada vai ao Arduino Tx

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 3 de 14

Unha vez feito isto, o sensor de platino debería estar conectado como se mostra:
Figura 2: O sensor móstrase boca abaixo cun adaptador de soldadura.
Se estás a usar un Arduino cun só porto de comunicación (como o Arduino Uno) terás que conectalo a ese; porén, cando uses o monitor serie (que se mostra máis adiante) tamén mostrará o hexadecimal que se transmite.

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 4 de 14

Vaia ao IDE de Arduino websitio web e descarga a versión máis recente do software Arduino IDE. Unha vez instalado, deberías ver a seguinte pantalla:
Figura 3: Pantalla de inicio de Arduino
No menú despregable de ferramentas, selecciona a placa Arduino, o procesador e o porto que estás a usar:

Figura 4: Selección das opcións de placa, procesador e porto

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 5 de 14

Copiar neste ex.ampcódigo: void send_read_live_data_simple(); void receive_read_live_data_simple();
configuración void() { Serial.comezo(38400); Serial1.comezo(38400);
}
bucle baleiro() { enviar_lectura_datos_en_vivo_simple(); recibir_lectura_datos_en_vivo_simple(); retardo(5000);
}
void send_read_live_data_simple(){ // 0x10, 0x13, 0x06, 0x10, 0x1F, 0x00, 0x58 Serial1.write(0x10); Serial1.write(0x13); Serial1.write(0x06); Serial1.write(0x10); Serial1.write(0x1F); Serial1.write(0x00); Serial1.write(0x58);
}
void recibir_leer_datos_en_vivo_simple(){ mentres (Serial1.available()) { Serial.print(Serial1.leer(), HEX); Serial.print("|"); } Serial.println();
}

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 6 de 14

Figura 5: Código listo para cargar
Fai clic na frecha para cargar o código no Arduino. Despois de programar o Arduino, abre o monitor serie.

AN0007

Figura 6: Abrir o monitor serie

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 7 de 14

Figura 7: O Monitor Serial mostra o paquete que foi recibido

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 8 de 14

Explicación do código O IDE de Arduino usa C++ para programar o Arduino.
Esta liña é unha declaración directa. Úsase para indicarlle ao microcontrolador que máis adiante no programa se chamarán as funcións `send_read_live_data_simple' e `receive_read_live_data_simple'.
A continuación, vén a función de configuración. Este código só se executa unha vez ao iniciar. Inicia os portos Serial0 e Serial1. Serial0 é o que se mostra na pantalla do monitor serie. Serial1 é o porto para comunicarse co sensor.
Este é o bucle principal, este código repítese repetidamente. Podes ver lendo os nomes das funcións que envía unha solicitude para ler unha versión simplificada da estrutura de datos en directo. Despois le o porto de recepción para ler a resposta. Despois disto, o microcontrolador agarda 5000 ms.
Esta función escribe a solicitude para obter a estrutura simple de datos en directo no porto serie 1. Como se mencionou anteriormente, se só tes un porto serie, debes cambiar Serial1 a Serial. Para ver a lista completa de comandos, consulta o documento do protocolo de comunicacións de sensores Premier. Aquí tes a parte do documento que che indica o que debes escribir para este comando:

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 9 de 14

Esta función repite a función de lectura mentres aínda hai datos por recibir do sensor Platinum. Serial1.read() le os datos de Serial1, que está conectado ao sensor, e imprímeos en Serial0 para que se poidan ver no monitor serie. Despois imprímese o carácter `|` para dividir cada byte recibido e facelo máis claro no monitor serie.
Unha vez completado isto, escribe unha nova liña no monitor serie.

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 10 de 14

Desglose de paquetes As figuras 8 e 9 mostran a saída dun descodificador en serie conectado ás liñas de recepción e transmisión.
Figura 8: Paquete de saída
Figura 9: Paquete entrante
As figuras 10 e 11 mostran o hexágono de saída e de entrada respectivamente cunha columna que indica de que comando se trata.

Figura 10: Descrición do paquete de saída

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 11 de 14

Figura 11: Descrición do paquete entrante
Ten en conta que a lectura do gas é un decimal, non un número enteiro. Este decimal está en formato IEEE-754; podes usar un conversor en liña como este para convertelo. O valor do gas neste caso mostra -250 (xa que estaba en modo de erro nese momento).

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 12 de 14

Usando Serial.read()
O código anterior só imprimía os datos recibidos no monitor serie; se queres gardar os datos en variables, terás que facer un procesamento adicional. O paquete que recibes divídese en bytes, polo que terás que concatenar algúns destes datos en variables. Serial1.Read() devolve un número enteiro (que para Arduino é de 16 bits); porén, só se usan os primeiros 8 bits. Grazas a isto, podemos copialo nun tipo de datos máis pequeno que só teña 8 bits; neste caso, usarei char.
para os paquetes que só teñen un byte de lonxitude, isto funciona ben:
Para os paquetes de 2 ou 4 bytes de lonxitude, terás que concatenar os datos.

Podes facelo de moitas maneiras diferentes. Aquí o que vou facer é desprazar os datos á esquerda e despois usalos como OR.

Usando este código, se readByte1 é 0x34 e readByte2 é 0x12.

(int)readByte2

// isto converte o 0x12 en 0x0012.

(int)readByte2 << 8

// isto despraza os bits nun byte, converténdoo en 0x1200.

(int)readByte2 << 8 | readByte1 // isto logo é aplicado a un OR, con 0x34 dando 0x1234.

Outra forma de facelo sería poñer os valores nunha matriz e despois converter a matriz ao tipo que desexamos:

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 13 de 14

Os caracteres teñen unha lonxitude dun byte, mentres que o valor float ten 4 bytes. Por iso, se creamos unha matriz de 4 caracteres cos nosos valores e cambiamos o tipo a float.
Neste caso, readArray é un punteiro a unha matriz de caracteres. (float*)readArray esta parte convérteo nun punteiro a un float e despois engádese un * ao principio para obter o valor do float.
Notas avanzadas de conversión
1. Serial.read() devolve un número enteiro en lugar de un número char porque os erros devolverán valores negativos. O teu programa debería comprobar isto.
2. Deberíanse usar uint8_t e uint16_t no canto de char e int respectivamente, xa que estes tipos non teñen un tamaño estándar (no meu PC int é de 32 bits mentres que no Arduino é de 16 bits).
3. O protocolo de comunicacións contén caracteres recheos de bytes (tamén coñecidos como caracteres de control). Isto explícase con máis detalle no documento do protocolo de comunicacións do sensor Premier tds0045. Debido a isto, o paquete simple de datos en directo lido ás veces será maior do esperado.

AN0007

Número 1.2

09/04/2025

Nota de cambio 805

Páxina 14 de 14

Documentos/Recursos

DYNAMENT AN0007 Comunicación Arduino a Platinum [pdfGuía do usuario
AN0007 Arduino a Platinum COMM, AN0007, Arduino a Platinum COMM, a Platinum COMM, Platinum COMM

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *