Escolar Documentos
Profissional Documentos
Cultura Documentos
No post de hoje vou mostrar o projeto de um CLP Shield, com ele é possível
monitorar entradas e acionar saídas de acordo com a lógica programada, a
placa desenvolvida permite conectar diretamente o Arduino Uno, facilitando a
montagem, troca de componentes e conexões.
O projeto foi desenvolvido para uso do Arduino UNO, portando sua quantidade
de IOs é limitada, o uso em conjunto com outro shield como relógio, ethernet,
lcd implicará no funcionamento do circuito e deverá ser adaptado.
1. Facilidade de programação;
2. Facilidade de manutenção com conceito plug-in;
3. Alta confiabilidade;
4. Dimensões menores que painéis de Relês, para redução de custos;
5. Envio de dados para processamento centralizado;
6. Preço competitivo;
7. Expansão em módulos;
8. Mínimo de 4000 palavras na memória.
Podemos didaticamente dividir os CLP's historicamente de acordo com o sistema de
programação por ele utilizado:
Fluxo de funcionamento
Principais recursos
5 Entradas digitais optoacopladas.
6 Entradas analógicas.
8 Saídas por Relé.
1 Conexão serial .
1 Saída regulada 5V x 1A.
Lista de componentes
1- Arduino Uno.
5 - Fotoacopladores TIL111 com soquete.
1 - ULN2803 com soquete.
19 - Resistores 1K 1/8W (marrom preto vermelho).
6 - Resistrores 10K 1/8W (marrom preto laranja).
1- Placa de fenolite cobreada face simples 15cm x 15cm.
9 - Leds 5mm (8 para monitoramento das saídas e 1 para indicação de
alimentação do circuito.
1- Regulador de tensão LM7809 com dissipador.
1- Regulador de tensão LM7805 com dissipador.
8 - Relés 12V 15A 1 polo 2 posições.
1 - Barra de pinos macho, serão usado 28 pinos.
9 - Bornes de encaixe TC 3 Vias para saída dos relés.
10 - Bornes de encaixe TC 2 Vias para entradas digitais, analógicas e
alimentação.
4 - Espaçador de placa ECI-9,4 (opcional).
1 - Fonte de alimentação 12V 1A.
Componentes e conexões
Componentes
Como Funciona
A placa é alimentada por uma fonte de 12V, usa reguladores de tensão para
alimentação do Arduino e para acionamento das entradas analógicas e
digitais, No post construindo-um-rele-shield usamos um transistor para
acionamento do relé, como na CLP Shield acionaremos 8 relés, vamos usar um
circuito integrado para simplificar nossa montagem, mas nada impediria de
usarmos os transistores. Usaremos optoacopladorers para isolarmos as
entradas digitais do arduino e leds para monitoramento do acionamento das
saídas.
LM7809
Regulador de tensão com entrada variável.
Saída constante de 9V
Máxima corrente na saída de 1A.
Encapsulamento com dissipador de calor (modelo TO-220).
Funciona de -40 a 125 graus.
1- Alimentação de entrada
2- GND
3- Saída 9V
LM7805
Regulador de tensão com entrada variável.
Saída constante de 5V
Máxima corrente na saída de 1A.
Encapsulamento com dissipador de calor (modelo TO-220).
Funciona de -40 a 125 graus.
1- Alimentação de entrada
2- GND
3- Saída 5V
ULN7809
O CI ULN2803 tem 8 entradas que podem controlar até 8 saídas, trabalha com
correntes máximas de 500mA e tensão de até 50v. Internamente cada driver é
composto por um transistor Darlington polarizados com resistores e diodos de
proteção. Usado no circuito para acionar os relés.
FotoAcoplador TIL111
OptoAcopladores proporcionam a isolação de sinais em uma grande variedade
de aplicações. Eles comutam ou transmitem sinais e informações ao mesmo
tempo que isolam diferentes partes de um circuito.
Testando a placa
Para testar a placa vamos usar uma fonte de 12V, um giga de testes de chaves
liga desliga e um shield de LDR, detalhes da ligação do LDR foram
apresentados no post testando-nosso-rele-shield.
Programa utilizado para o teste
/*
Sergio de Miranda e Castro Mokshin
01/02/2013
Todos os direitos reservados
*/
int Saida1 = 0;
int Saida2 = 1;
int Saida3 = 2;
int Saida4 = 3;
int Saida5 = 4;
int Saida6 = 5;
int Saida7 = 6;
int Saida8 = 7;
void setup() {
pinMode(EntradaDigital1, INPUT);
pinMode(EntradaDigital2, INPUT);
pinMode(EntradaDigital3, INPUT);
pinMode(EntradaDigital4, INPUT);
pinMode(EntradaDigital5, INPUT);
pinMode(Saida1, OUTPUT);
pinMode(Saida2, OUTPUT);
pinMode(Saida3, OUTPUT);
pinMode(Saida4, OUTPUT);
pinMode(Saida5, OUTPUT);
pinMode(Saida6, OUTPUT);
pinMode(Saida7, OUTPUT);
pinMode(Saida8, OUTPUT);
digitalWrite(Saida1, LOW);
digitalWrite(Saida2, LOW);
digitalWrite(Saida3, LOW);
digitalWrite(Saida4, LOW);
digitalWrite(Saida5, LOW);
digitalWrite(Saida6, LOW);
digitalWrite(Saida7, LOW);
digitalWrite(Saida8, LOW);
void loop() {
digitalWrite(Saida1, digitalRead(EntradaDigital1));
digitalWrite(Saida2, digitalRead(EntradaDigital2));
digitalWrite(Saida3, digitalRead(EntradaDigital3));
digitalWrite(Saida4, digitalRead(EntradaDigital4));
digitalWrite(Saida5, digitalRead(EntradaDigital5));
int leituraSensorLDR = 0;
leituraSensorLDR = analogRead(sensorLDRPin);