Escolar Documentos
Profissional Documentos
Cultura Documentos
CAMPUS LUZERNA
Luzerna – SC
2021
Resumo
A comunicação entre dispositivos no meio industrial, por muito tempo foi
dominada pelo protocolo Modbus RTU, através do meio físico RS-485. Hoje, com o
avanço das tecnologias de comunicação, o seu uso tende a diminuir, mas mesmo assim,
ainda é muito encontrado nas diversas aplicações industriais, por se tratar de um meio
de comunicação simples, eficaz e confiável.
Também, este projeto pode ser utilizado como base, para projetos onde se
necessite acionar dispositivos a distância com certa facilidade de instalação da
rede(apenas um par de cabos trançados), e com baixo custo em material, quando
comparado com a implementação de um controlador lógico programável (CLP).
3.2 Microcontrolador...................................................................................6
4.6 Programa................................................................................................6
Uma antena transmitindo sinal para os rádios, um controle remoto enviando sinal
para a TV, um controlador enviando sinal para o atuador, todos esses exemplos servem
para mostrar que a comunicação entre dispositivos está presente nas mais adversas
situações de nossas vidas através de diversos meios.
- Microcontrolador ATMEGA328:
• Arquitetura RISC;
• 32KB de memória flash (menos 512 bytes reservados ao bootloader);
• 2Kb de RAM;
• 1Kb de EEPRON;
• 28 pinos (23 de I/O);
• Tensão de operação 4.5 - 5.5V (ou até 1.8V com frequência reduzida);
• 2 temporizadores/contadores 8 bits;
• 1 temporizador/contador 16 bits;
• 6 entradas e saídas ADC 10 bits;
• 32 registradores de 8 bits;
• Comparador analógico;
- Alimentação da Placa:
- Programação:
4.2 Microcontrolador
4.6 Programação
#define RE_DE 2 // Define o pino 2 como DE_RE (DE=ATIVA PARA ENVIAR, RE=ATIVA PARA
RECEBER)
#define PORTA_Serial 0 // Define a porta seria 0 como porta de comunicação
#define LED 13
LiquidCrystal_I2C lcd(0x27, 16, 2); // define( Endereço do Lcd I2C, qnt colunas, qnt linhas)
Modbus master(0, PORTA_Serial, RE_DE); // Configuração da biblioteca ( Modo Master=0, porta Serial
0, controle RE_DE habilitado na porta 2)
modbus_t telegram[1]; // String para o telegrama do Modbus
unsigned long u32wait; // variável de tempo de esperad de do ciclo moddus
case 1:
telegram[0].u8id = 1; // endereço do escravo
telegram[0].u8fct = 16; // código de função para escrever em multiplos registradores
telegram[0].u16RegAdd = 8501; // endereço de inicio da escrita
telegram[0].u16CoilsNo = 2; // quantidade de registradores a escrever
telegram[0].au16reg = au16data; // ponteiro para o vetor de memória
master.query(telegram[0]); // envia a solicitação ao escravo
u8state++;
break;
case 2:
master.poll(); // checa se recebeu retorno do comando
if(master.getState() == COM_IDLE) u8state++; // Incrementa contador
break;
case 3:
telegram[0].u8id = 1; // endereço do escravo
telegram[0].u8fct = 3; // código de função para ler registradores
telegram[0].u16RegAdd = 3202; // endereço de inicio da leitura
telegram[0].u16CoilsNo = 6; // numero de registradores a serem lidos
telegram[0].au16reg = au16data; // ponteiro para o vetor de memória
master.query(telegram[0]); // envia a solicitação ao escravo
u8state++;
break;
case 4:
master.poll(); // checa se recebeu retorno da solicitação
if(master.getState() == COM_IDLE)
{
u8state = 0; // Limpa o registrador para iniciar o ciclo
u32wait = millis(); // recarrega o contador
pv_hz = au16data[0];
pv_v = au16data[5];
}
break;
}
void setup()
delay(500);
}
E finamente é chamada a função void loop, que é a função cíclica que é
executada a cada ciclo de scan do microcontrolador. nessa função são chamadas as
funções do escravo 1 e escravo 2, e feitas as escritas no display lcd as variáveis de
sp_hz, pv_hz, comando, e de pv_volts da saída do inversor.
void loop()
escravo_1();
escravo_2(pv_hz,pv_v);
AHMED, Ashfaq. Eletrônica de potência. 1. ed. São Paulo: Prentice Hall, 1999.
479 p.