Na Progressive Automations, oferecemos muitas opções para controlar seu atuador linear. De soluções simples, como interruptores basculantes, aos nossos controladores mais avançados, como a PA-35 Wi-Fi Control Box, temos muitas opções plug-and-play. No entanto, às vezes os requisitos do projeto e as necessidades dos clientes são um pouco mais específicos do que essas opções podem oferecer. É aí que os microcontroladores podem realmente ser nossos aliados. Neste artigo, veremos como podemos alterar a posição de um atuador com base na quantidade de luz presente, oferecendo uma forma única e avançada de controle de atuador linear.
Do que você vai precisar?
Tudo o que precisamos para este projeto é um Arduino (neste caso, um Arduino Uno), um resistor dependente de luz (também conhecido como fotorresistor ou LDR), um resistor de 10 k ohms, um módulo de relé de 2 canais e, claro, um atuador.
Escolhendo seu Atuador linear
Em muitos casos, usaremos esse tipo de acionamento para aplicações externas, como um atuador de porta de galinheiro alimentado por energia solar. Você precisa considerar em que tipo de ambiente seu atuador estará operando e garantir que ele tenha o Grau de proteção IP correto. Para ajudar, você pode encontrar nosso guia de Grau de proteção IP aqui. Também precisamos garantir que você encontre o Recorrido e a força nominal corretos para o seu atuador. Para obter ajuda com isso, consulte uma de nossas muitas outras postagens no blog aqui. Em essência, o tipo de atuador que você usa depende totalmente da sua aplicação e da severidade do ambiente em que está.
Fiação

A fiação para este projeto de atuador alimentado por energia solar é a seguinte:
LDR para Arduino
- Terminal do LDR 1 – Terra
- Terminal do LDR 2 – 5 V (via resistor de 10 k)
- Terminal do LDR 2 – Pino analógico 0
Módulo de relé para Arduino
- VCC – 5V
- GND – GND
- IN1 – Pino 2
- IN2 – Pino 3
Módulo de relé para Fonte de Alimentação e Atuador
- +12 V para NC1 (terminal normalmente fechado no relé 1)
- -12 V para NO1 (terminal normalmente aberto no relé 1)
- NC1 para NC2
- NO1 para NO2
- COMMON1 para o condutor 1 do atuador
- COMMON2 para o condutor 2 do atuador
Usando um módulo de relé de 2 canais, as instruções acima mostram como fazer a fiação deste projeto. Esta é uma configuração muito simples e fácil de programar, mas tem suas limitações. Se você quiser adicionar recursos como controle de velocidade ou feedback de força, pode considerar usar o MegaMoto motor driver shield em vez de relés. Mais informações sobre isso aqui.
Programando seu atuador alimentado por energia solar
A funcionalidade do código fornecido foi pensada para ser o mais simples possível. Quando houver luz, o atuador irá retrair. Quando estiver escuro, o atuador irá estender. Para evitar que o atuador seja acionado de forma não intencional (se alguém passar e bloquear a luz, ou se um clarão for captado pelo sensor), a mudança de escuro para claro (ou de claro para escuro) deve durar pelo menos trinta segundos. Esse atraso pode ser facilmente alterado modificando o valor de “const int triggerDelay”.
A quantidade de luz presente é determinada lendo a tensão que vai para o pino analógico 0. Quanto mais luz houver, menor será a resistência do nosso resistor dependente de luz. Como estamos usando um resistor de pull-up, isso significa que a tensão diminuirá à medida que o ambiente ficar mais claro. O Arduino lê isso como um valor entre 0 e 1028. Se você quiser alterar o valor em que o estado do atuador mudará, basta alterar o valor de “const int threshold” (definido como 650 por padrão).
Este código cumpre seu propósito como está, mas a grande vantagem de projetos como este é que sempre há espaço para melhorias. Sinta-se à vontade para modificar este código para atender melhor à sua aplicação de atuador linear alimentado por energia solar! Alguns exemplos de funções extras que podem ser adicionadas a este código são: um tempo limite para evitar que o atuador continue se movendo caso não atinja o fim de curso dentro de um determinado período; detecção de colisão por meio de monitoramento do consumo de corrente (exigiria um MegaMoto driver em vez de relés); ou uma função que permita definir o atuador em várias posições com base na quantidade de luz (não apenas totalmente para cima ou totalmente para baixo).
/*The hardware required for this project is an Arduino, one light dependant resistor (LDR), a 10K resistor and a 2-channel 5V relay module.
Its purpose is to control the extension and retraction of an actuator based on the amount of light that is present.
Written by Progressive Automations 12/02/2020
*/
#define relay1 2 //relay used to extend actuator
#define relay2 3 //relay used to retract actuator
int ldr; //analog reading from light dependent resistor
int countOpen = 0;//counts how long sensor is recieving light
int countClose = 0;//counts how long the sensor is not recieving light
const int triggerDelay = 3000;//number of seconds x 100 to wait after lighting changes before triggering actuator
const int threshold = 650;//
void setup() {
Serial.begin(9600);
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
}
void loop() {
checkSensor();
}
void checkSensor()
{
ldr = analogRead(0);
Serial.println(ldr);
if(ldr > threshold)//if reading is greater than threshold, start counting
{
countOpen++;//count how long the sensor is not recieving light
delay(10);
}
else
{
countOpen = 0;//reset count to zero if statement is not true
}
if(countOpen > triggerDelay)// wait x seconds before triggering actuator
{
extend();//extend actuator
}
if(ldr < threshold)//if reading is less than threshold, start counting
{
countClose++;//count how long sensor is recieving light
delay(10);
}
else
{
countClose = 0;
}
if(countClose > triggerDelay)// wait x seconds before triggering actuator
{
retract();
}
}
void extend()
{
digitalWrite(relay1,LOW);
digitalWrite(relay2,HIGH);
}
void retract()
{
digitalWrite(relay2,LOW);
digitalWrite(relay1,HIGH);
}
Conclusão
Pronto! Nossa metodologia por trás de usar um sensor de luz com atuador linear para controlar seu atuador usando energia solar. Sabemos que nem toda aplicação é igual, então você pode ter algumas dúvidas sobre este projeto ou alterações que deseja discutir com nossa equipe de engenheiros. Sem problema – basta nos enviar um e-mail para sales@progressiveautomations.com, ou ligar grátis para 1-800-676-6123.