Segundo Passo

Elaboração do código que será inserido no Arduino UNO

 

   No decorrer desta seção serão explicados todos os passos utilizados para o desenvolvimento do projeto proposto, isto é, o código será comentado de modo que todo conhecimento aplicado seja facilmente compreendido.

   Num primeiro momento deve-se incluir as bibliotecas necessárias para que o código a ser inserido no Arduino UNO funcione adequadamente. Neste artigo utilizaremos somente a biblioteca desejada para estabelecer a comunicação entre o Arduino UNO e o PSi4 através do protocolo Modbus. Neste exemplo iremos utilizar a biblioteca SimpleModbusSlaveV10, facilmente encontrada na internet. O código a ser utilizado foi derivado diretamente do exemplo disponível, juntamente com a biblioteca em questão. Portanto, caso o leitor queira, pode apenas modificar o exemplo citado.

 

image-1665066259760.png

   Posteriormente pode-se observar um bloco chamado enum, neste estarão escritos os registradores que conterão as informações utilizadas na leitura ou no acionamento de dispositivos. Estes são denominados Registradores Holding e para declará-los basta escrever seus nomes seguidamente no código. Neste artigo, por exemplo, os Registradores Holding utilizados para conter os valores provenientes dos potenciômetros são chamados VALOR_POT1, VALOR_POT2 e VALOR_POT3. É importante ressaltar que após as declarações dos respectivos Registradores Holding, deve-se escrever HOLDING_REGS_SIZE (informação utilizada pela biblioteca para identificar a quantidade de Registradores Holding que estão sendo utilizados) e em seguida cria-se a variável holdingRegs para a manipulação dos registradores em questão.

 

Interface gráfica do usuário, Aplicativo, Word

Descrição gerada automaticamente

   Na função setup() utiliza-se primeiramente a função modbus_configure() para determinar os parâmetros necessários para estabelecer a conexão via comunicação serial utilizando o protocolo Modbus. Os parâmetros mais importantes para este artigo são o segundo, o terceiro e o quarto que dizem respeito à taxa de transmissão de dados, o formato do pacote utilizado no protocolo Modbus e a identificação do escravo, respectivamente. Note que estes três argumentos citados devem estar em conformidade com as configurações do PSi4. Em seguida temos a função modbus_update_comms() que também é responsável pela comunicação via Modbus.

 

Interface gráfica do usuário, Texto, Aplicativo

Descrição gerada automaticamente

   O conteúdo da função loop() começa com a função modbus_update() utilizada para a atualização dos valores dos registradores citados anteriormente. Em seguida, realiza-se a leitura da tensão aplicada às portas de entrada analógica A0, A1 e A2 e posteriormente os valores encontrados são convertidos em números inteiros contidos no intervalo entre 0 e 1023 utilizando a função analogRead(). Estes são armazenados nos Registrador Holding identificados como VALOR_POT1, VALOR_POT2 e VALOR_POT3 respectivamente.

 

image-1665067914670.png