Neste post vou apresentar a placa que desenvolvi do CLP Duino Wantronics, que utiliza a plataforma do Arduino.
Com a intenção de projetar uma placa de circuito impresso, com as mesmas características de um CLP convencional, porém de fácil programação, foi desenvolvido o CLP Duino Wantronics.
A plataforma do Arduino dispensa o uso de um gravador específico, e possui muitos exemplos disponíveis na internet e no próprio ambiente de programação, o que torna o processo de aprendizado mais rápido e fácil.
A PCB ficou como mostrado na figura a seguir.
Foi feito um misto de componentes PTH e SMD.
Quando pensamos em grandes lotes de PCBs, o ideal na hora de fazer o layout da placa de circuito impresso é usar o máximo possível de componentes SMD, e tentar deixar a PCB o menor possível, tudo isso para reduzir custos de fabricação.
O CLP Duino Wantronics possui 6 entradas digitais optoacopladas, com LEDs indicativos de qual entrada está acionada, 6 saídas a relés, com LEDs indicativos de qual saída está acionada, interface para comunicação serial RS232, possui 6 entradas analógicas que pode ser configuradas de 0 a 5 Vcc, ou fechando os jumpers na PCB de 0 a 10 Vcc.
É possível montar duas versões do circuito, uma para funcionar com uma tensão de alimentação de 12 Vcc, e outra para funcionar com uma tensão de alimentação de 24 Vcc, para isso basta alterar os valores de alguns componentes do circuito.
Para validar o funcionamento do circuito, foram feitos dois códigos em linguagem C, utilizando a IDE do Arduino. O primeiro código são feitos os testes das saídas sequencialmente, veja o código abaixo.
/**********************************************
* CLP Duino Wantronics
*
* 03 / 02 / 2020
*
* Saídas do 2 ao 7
* Entradas do 8 ao 13
*
* by Wandery
*********************************************/
int RL1 = 2, RL2 = 3, RL3 = 4, RL4 = 5, RL5 = 6, RL6 = 7;
int i = 0;
void setup() {
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
}
void loop() {
for (i = 2; i < 8; i++) {
digitalWrite (i, HIGH);
delay (500);
}
for (i = 2; i < 8; i++) {
digitalWrite (i, LOW);
delay (500);
}
}
No próximo código são feitos os testes das entradas e das saídas do CLP Duino Wantronics, observem o uso do operador ternário da linguagem C para teste condicional.
/**********************************************
* CLP Duino Wantronics
*
* Saídas do 2 ao 7
* Entradas do 8 ao 13
*
* by Wandery
*********************************************/
int Input1 = 13, Input2 = 12, Input3 = 11, Input4 = 10, Input5 = 9, Input6 = 8;
int RL1 = 2, RL2 = 3, RL3 = 4, RL4 = 5, RL5 = 6, RL6 = 7;
void setup() {
pinMode (Input1, INPUT);
pinMode (Input2, INPUT);
pinMode (Input3, INPUT);
pinMode (Input4, INPUT);
pinMode (Input5, INPUT);
pinMode (Input6, INPUT);
pinMode (RL1, OUTPUT);
pinMode (RL2, OUTPUT);
pinMode (RL3, OUTPUT);
pinMode (RL4, OUTPUT);
pinMode (RL5, OUTPUT);
pinMode (RL6, OUTPUT);
}
void loop() {
digitalRead (Input1) ? digitalWrite (RL1, HIGH) : digitalWrite (RL1, LOW);
digitalRead (Input2) ? digitalWrite (RL2, HIGH) : digitalWrite (RL2, LOW);
digitalRead (Input3) ? digitalWrite (RL3, HIGH) : digitalWrite (RL3, LOW);
digitalRead (Input4) ? digitalWrite (RL4, HIGH) : digitalWrite (RL4, LOW);
digitalRead (Input5) ? digitalWrite (RL5, HIGH) : digitalWrite (RL5, LOW);
digitalRead (Input6) ? digitalWrite (RL6, HIGH) : digitalWrite (RL6, LOW);
}
No vídeo a seguir é apresentado o funcionamento do CLP Duino Wantronics, utilizando os dois códigos mostrados acima.
Por fim, esse projeto pode ser utilizado em uma grande quantidade de aplicações, como em automação residencial, automação agrícola, e também para aprendizagem e prototipação, uma vez que o investimento em um CLP industrial pode alto, e quando se precisa validar uma ideia, uma solução como o CLP Duino Wantronics pode ser utilizado.
Espero que tenham gostado dos resultados obtidos, e até o próximo post!!!
Este obra está licenciado com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.