Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Arduino Solar Tracker

Componentes e suprimentos

Arduino UNO
× 1
Micro servo motor SG90
× 2
LDR, 5 Mohm
× 4
Resistor 330 ohm
× 4
Potenciômetro rotativo (genérico)
× 1
Botão de pressão, botão de pressão
× 2
Mini painel solar
× 1

Ferramentas e máquinas necessárias

Arduino IDE
Parallax PLX-DAQ

Sobre este projeto


Este projeto apresenta uma bancada de teste de hardware / software aberta para rastreador solar. O protótipo proposto é baseado em um rastreador solar de eixo duplo controlado com Arduino Uno, que é uma plataforma de prototipagem de código aberto baseada em hardware e software fácil de usar. O rastreador solar pode ser controlado automaticamente com a ajuda de sensores LightDependent Resistor (LDR) ou manualmente usando um potenciômetro. Além disso, esta bancada de teste fornece instrumentação virtual baseada em Excel, na qual os dados do rastreador solar podem ser registrados e apresentados. O hardware usado foi escolhido para ser barato, compacto e versátil. A bancada de teste proposta é projetada para ajudar os alunos a desenvolver sua compreensão da teoria de controle e sua aplicação.

A bancada de testes proposta é apresentada na Fig. 1. É baseada em um rastreador solar que pode girar automaticamente para rastrear o sol com o auxílio de quatro sensores LDR e dois servomotores (SM1 e SM2), ou manualmente por meio de um potenciômetro. Para alternar entre os dois modos (automático e manual), um botão de pressão é usado. Outro botão de pressão é usado para conectar o SM1 (servomotor up-down) ou SM2 (servomotor esquerdo-direito) ao potenciômetro para controlar seu movimento. Além disso, um computador é utilizado como instrumento virtual para visualizar o modo e corrente, tensão e potência do painel FV de acordo com o tempo no MS Excel. A placa Arduino Uno é utilizada para implementar todos os requisitos de software do sistema.

Projeto mecânico

Conforme mostrado na Fig. 2, o modelo 3D de projeto auxiliado por computador (CAD) do rastreador solar é projetado no CATIA. É composto pelo painel PV, os servomotores esquerda-direita e cima-baixo e quatro sensores LDR. Para o eixo horizontal, um rolamento é fixado em paralelo com o servomotor up-down para melhor flexibilidade. O rastreador solar é projetado para ter dois graus de liberdade, de leste a oeste pelo servomotor esquerdo-direito e de sul a norte pelo servomotor up-down. Os sensores LDR são colocados nos quatro cantos do painel PV e são colocados em tubos escuros com um pequeno orifício na parte superior para detectar a iluminação do sol. Esses tubos escuros também são considerados concentradores de radiação e são utilizados para aumentar a robustez do rastreador solar.

Sistema de hardware

A Fig. 3 apresenta o circuito eletrônico do testbench proposto. Para o modo automático, o microcontrolador converte os valores analógicos dos sensores LDR (pinos A0 a A3) em digitais. Em seguida, ele controla dois servomotores (cima-baixo e esquerda-direita) usando dois sinais de modulação por largura de pulso (PWM) (pinos 5 e 6) para rastrear o sol. Os movimentos de rotação ocorrem em dois eixos, em azimute de leste a oeste de acordo com o caminho do sol diário e em elevação de sul para norte de acordo com o caminho do sol sazonal. Para o modo manual, um potenciômetro (pino A4) é usado para controlar o movimento dos dois servo motores, um botão (pino 11) é implantado para conectar o potenciômetro ao servomotor up-down ou servomotor esquerdo-direito. Além disso, outro botão (pino 12) é usado para alternar entre os dois modos. Além disso, a tensão FV é medida através do pino analógico A5 do Arduino, então a corrente FV é calculada visto que o resistor da carga já é conhecido. Em seguida, a corrente PV, tensão e potência versus tempo e o modo real são enviados ao computador para apresentá-los em tempo real no MS Excel.

O circuito do sensor LDR é projetado como um circuito divisor de tensão. A variação na intensidade da luz é proporcional à variação da tensão de saída do divisor. O topo do divisor de potencial é 5 V, o aterramento está em 0 V e a saída do divisor de tensão é conectada a uma entrada analógica ( A 0 por exemplo) do microcontrolador. Posteriormente, o conversor analógico para digital (ADC) do microcontrolador converte o valor analógico lido por A 0 em um valor digital entre 0 e 1023 porque o ADC é codificado em 10 bits, e de acordo com este valor, é possível saber o nível de luz. O valor dos resistores usados ​​em divisores de tensão é 330 Ω.

Dois servomotores de 180 graus são usados. Um servomotor (MG996R) para controlar o rastreador solar de acordo com o eixo vertical, que é o servomotor esquerdo-direito. E um micro servo motor (SG90) para controlar o rastreador solar de acordo com o eixo horizontal, que é o servomotor up-down. A vantagem do servomotor é que podemos controlar sua parada, funcionamento, sentido de rotação e velocidade usando um único fio de baixa corrente conectado diretamente a uma saída do microcontrolador sem a necessidade de drivers. Os servo motores usados ​​são controlados pela placa Arduino UNO via cabo elétrico de 3 fios conforme mostrado na Fig. 3, dois fios para alimentação e um fio para PWM para controlar suas posições.

O design de software incorporado

O software embarcado é a peça que será embutida no hardware (Arduino Uno) para controlar e monitorar a bancada de teste do rastreador solar. O software incorporado é projetado para cobrir os seguintes requisitos:

1. A bancada de teste possui dois modos:manual e automático. Um botão é conectado ao pino 12 para alternar entre os dois modos.

2. Se o modo manual estiver ativo, o potenciômetro pode controlar servomotores de leste a oeste para o motor esquerdo-direito ou de sul para norte para o motor up-down. Um botão de pressão é conectado ao pino 11 para alternar o potenciômetro entre os dois motores, ou ele controla o servomotor esquerdo-direito ou o servo motor up-down.

3. Se o modo automático estiver ativo, o algoritmo apresentado na Fig. 4 será executado. O último usa os valores analógicos retornados pelos sensores LDR. Por exemplo, considerando o azimute ou eixo vertical, os valores médios de dois LDRs direitos e dois LDRs esquerdos são comparados e se o conjunto esquerdo de LDRs receber mais luz, o rastreador solar se moverá nessa direção através do servomotor esquerdo-direito. O último continuará a girar até que o resultado da diferença esteja na faixa [−10, 10]. Este intervalo é usado para estabilizar o controlador e uma vez que o rastreador solar está perpendicular ao sol, nenhum controle adicional é feito. Por outro lado, se o conjunto direito de LDRs receber mais luz, o rastreador solar se moverá nessa direção através do servomotor esquerdo-direito e continuará a girar até que o resultado da diferença esteja na faixa [−10, 10]. Da mesma forma é usado para o eixo de elevação. Além disso, também determinamos a radiação média entre os quatro sensores LDR e se este valor é menor que um valor pequeno (8:um valor que foi ajustado e testado na prática e é retornado quando a irradiação é nula). Quer dizer, a noite chegou. Neste caso, o rastreador solar deve retornar à posição nascente do sol. Por exemplo, se a posição nascente do sol pode ser alcançada definindo 0 graus no servomotor esquerdo-direito e 30 graus no servomotor up-down. Isso pode ser feito facilmente por meio da função C “servox. write (angle) ”fornecido pelo Arduino IDE.

4. A tensão FV adquirida através do pino analógico A5 deve ser tratada e usada para calcular a corrente e potência FV. Em seguida, todos esses dados e o modo atual devem ser enviados através de um cabo USB para o computador e, em seguida, apresentá-los no MS Excel.

O PLX-DAQ Excel Macro é usado para aquisição de dados do microcontrolador Arduino para uma planilha Excel. Só precisamos fazer o download. Após a instalação, uma pasta chamada "PLX-DAQ" será criada automaticamente no PC, com um atalho chamado "Planilha PLX-DAQ" dentro. Em seguida, para estabelecer a comunicação entre a placa e o Excel, basta abrir a Planilha e definir as configurações de conexão (Baud rate e porta) na janela do PLX-DAQ (Fig. 5). Posteriormente, após clicar em "conectar" os dados de saída serão coletados e exibidos em tempo real na planilha Excel

O protótipo

A Figura 6 mostra o rastreador solar nos estados destacado e montado. Conforme apresentado, toda a estrutura foi fabricada em placas de madeira, e é claro que todos os componentes mencionados foram utilizados para construir o rastreador solar com modos manual e automático (sensores LDR, Arduino Uno, servomotores, potenciômetro, botões e painel fotovoltaico pequeno).

A Figura 7 mostra toda a bancada de teste, rastreador solar com instrumentação virtual e uma lâmpada artificial que pode expor a luz para testar o rastreador solar. O rastreador solar e o computador são conectados por meio de um cabo USB. Uma vez que a tensão FV é adquirida, o controlador trata esta informação e a usa para calcular a corrente e potência FV. Em seguida, todos esses dados são enviados ao computador para apresentação no MSExcel. Das Figs. 5 e 6, é claro que a bancada de teste proposta é pequena, flexível e fácil de usar. Ele pode permitir que estudantes, pesquisadores e engenheiros apliquem seus algoritmos de uma maneira fácil antes de prosseguir com a implementação de um grande dispositivo de rastreamento solar.



Código

  • Software integrado de bancada de teste de rastreador solar
Software integrado de bancada de teste do rastreador solar Arduino
 // Biblioteca do servo motor # include  // Inicializar as variáveis ​​modoint =0; int ax =0; int buttonState1 =0; int buttonState2 =0; int prevButtonState1 =0; int prevButtonState2 =0; int ldrtopr =0; // LDR superior direito int ldrtopl =1; // LDR superior esquerdo int ldrbotr =2; // LDR inferior direito int ldrbotl =3; // LDR inferior esquerdo int topl =0; int topr =0; int botl =0; int botr =0; // Declarar dois servosServo servo_updown; Servo servo_rightleft; int threshold_value =10; // configuração da sensibilidade para evitar a medição () {Serial.begin (9600); // configuração da conexão serial // abre a porta serial, define a taxa de dados para 9600 bps Serial.println ("CLEARDATA"); // limpar todos os dados que já foram colocados em Serial.println ("LABEL, t, tensão, corrente, potência, Modo"); // define os cabeçalhos das colunas (comando PLX-DAQ) pinMode (12, INPUT); // Botão de mudança de modo pinMode (11, INPUT); // Chave de eixo pinMode (A4, INPUT); // Potenciômetro para movimento direita-esquerda e movimento cima-baixo servo_updown.attach (5); // Movimento de subida e descida do servo motor servo_rightleft.attach (6); // Movimento direita-esquerda do servo motor} void loop () {// pv_power (); modo char; volt flutuante =analogRead (A5) * 5,0 / 1023; tensão flutuante =2 * volt; // Volt =(R1 / R1 + R2) * Voltagem / R1 =R2 =10Ohms => voltagem =2 * volt) corrente flutuante =voltagem / 20; // I =tensão / (R1 + R2) potência flutuante =tensão * corrente; Serial.print ("DADOS, HORA,"); // Comando PLX-DAQ Serial.print (voltagem); // envia a tensão para a porta serial Serial.print (","); Serial.print (atual); // envia a corrente para a porta serial Serial.print (","); Serial.print (potência); // envia a energia para a porta serial Serial.print (","); // Serial.println (Mode); buttonState1 =digitalRead (12); if (buttonState1! =prevButtonState1) {if (buttonState1 ==HIGH) {// Altere o modo e acenda o indicador correto if (mode ==1) {mode =0; } mais {modo =1; }}} prevButtonState1 =buttonState1; atraso (50); // Aguarde 50 milissegundos (s) if (mode ==0) {Mode ='M'; Serial.println (modo); // envia o modo "Manual" para a porta serial Handelsolartracker (); } else {// modo automático Mode ='A'; Serial.println (Modo); automaticsolartracker (); // enviar Modo "Automático" para a porta serial}} void automaticsolartracker () {// capturando valores analógicos de cada LDR topr =analogRead (ldrtopr); // capturando o valor analógico do LDR superior direito topl =analogRead (ldrtopl); // capturando o valor analógico do LDR superior esquerdo botr =analogRead (ldrbotr); // capturando o valor analógico do bot direito LDR botl =analogRead (ldrbotl); // capturando o valor analógico do LDR esquerdo do bot // calculando a média int avgtop =(topr + topl) / 2; // média dos principais LDRs int avgbot =(botr + botl) / 2; // média dos LDRs inferiores int avgleft =(topl + botl) / 2; // média dos LDRs esquerdos int avgright =(topr + botr) / 2; // média dos LDRs corretos // Obtenha os diferentes int diffelev =avgtop - avgbot; // Obtenha as diferentes médias entre os LDRs top e os LDRs bot int diffazi =avgright - avgleft; // Obtenha as diferentes médias entre os LDRs à direita e os LDRs à esquerda // movimento esquerda-direita do rastreador solar if (abs (diffazi)> =threshold_value) {// Mude a posição apenas se a diferença de luz for maior que o threshold_value if (diffazi> 0 ) {if (servo_rightleft.read () <180) {servo_rightleft.write ((servo_updown.read () + 2)); }} if (diffazi <0) {if (servo_rightleft.read ()> 0) {servo_rightleft.write ((servo_updown.read () - 2)); }}} // movimento de cima para baixo do rastreador solar if (abs (diffelev)> =threshold_value) {// Mude a posição apenas se a diferença de luz for maior que o thethreshold_value if (diffelev> 0) {if (servo_updown.read () <180) {servo_updown.write ((servo_rightleft.read () - 2)); }} if (diffelev <0) {if (servo_updown.read ()> 0) {servo_updown.write ((servo_rightleft.read () + 2)); }}}} void ownersolartracker () {buttonState2 =digitalRead (13); if (buttonState2! =prevButtonState2) {if (buttonState2 ==HIGH) {// Mude o modo e ilumine o indicador correto if (ax ==1) {ax =0; } mais {ax =1; }}} prevButtonState2 =buttonState2; atraso (50); // Aguarde 50 milissegundos (s) if (ax ==0) {// controle o movimento direita-esquerda servo_rightleft.write (map (analogRead (A4), 0, 1023, 0, 180)); } else {// // controla o movimento de cima para baixo servo_updown.write (map (analogRead (A4), 0, 1023, 0, 180)); }} 

Esquemas


Processo de manufatura

  1. Dados digitais Arduino
  2. Controlador de jogo Arduino
  3. Solar Tracker V2.0
  4. Jogo Pixel Chaser
  5. Rastreador solar baseado na Internet das coisas (IoT)
  6. Levitação eletromagnética repulsiva Arduino
  7. Arduino Home Controller ativado por Alexa
  8. NeoMatrix Arduino Pong
  9. Medindo a radiação solar com Arduino
  10. Jogo de roleta LED