Tecnologia do Blogger.

Mostrando postagens com marcador Tracker Solar arduino project Ppantilt servo control ldr. Mostrar todas as postagens
Mostrando postagens com marcador Tracker Solar arduino project Ppantilt servo control ldr. Mostrar todas as postagens

Projecto arduino - Tracker solar



Boas Pessoal!
Hoje trago-vos mais um projecto, desta vês um "tracker solar".Este é constituído por um estrutura "pan tilt" com 2 Servos,  temos a base onde está o arduino e bread-board,4 ldrs e claro um painel solar. Basicamente o que isto faz é comparar os valores entre os quatro ldrs e virar o painel solar para a parte onde etsá a ser recebida mais luz.
Abaixo segue  o material utilizado,  imagens do projecto,um vídeo do tracker solar em funcionamento, esquemático de ligações e ainda o código em arduino.


Material utilizado:
-Pan-Tilt com 2 servos
-Estrutura em metal
-Uma bread board
-Um arduino
-4 Ldrs
-4Resistências de 10Kohms
-1Painel solar
-Parafusos
-Um pouco de cola quente
-Fio


Imagens














Vídeo:

Código:
---------------

#define LedPin1 4  
#define LedPin2 5

    #include <Servo.h>

    Servo myservo;
    int pos = 0;  
    int inputesquerda = A1; 
    int inputdireita = A0;

    int esquerda = 0; 
    int direita = 0; 
    
    Servo myservo2;
    int pos2 = 0; 
    int inputcima = A2;
    int inputbaixo = A3;
    int ldr = A5
    int tldr = 0

    int cima  = 0; 
    int baixo = 0; 
    void setup()
    {
    myservo.attach(9);
    myservo2.attach(10); 
    }

    void loop()
    {
      pinMode(LedPin1, OUTPUT);  
pinMode(LedPin2, OUTPUT); 
    Left = analogRead(inputesquerda);
    Right = analogRead(inputdireita);
    tldr = analogRead(ldr);
    if (esquerda > (direita +20))
    {
    if (pos < 179)
    pos++;
    myservo.write(pos);
    }
 if(tldr>512){
   digitalWrite(LedPin1,HIGH);
   digitalWrite(LedPin2,HIGH);
 }
 else{
      digitalWrite(LedPin1,LOW); 
   digitalWrite(LedPin2,LOW);
 }
    if (direita > (esquerda +20))
    {
    if (pos > 1)
    pos -= 1;
    myservo.write(pos);
    }
    delay(10);
    cima = analogRead(inputcima);
    baixo = analogRead(inputbaixo);
    if (cima > (baixo +20))
    {
    if (pos2 < 179)
    pos2++;
    myservo2.write(pos2);
    }
    if (baixo > (cima +20))
    {
    if (pos2 > 1)
    pos2 -= 1;
    myservo2.write(pos2);
    }

    delay(10);
    }

-----------------------
NOTA: CÓDIGO NÃO TESTADO, É FAVOR DE AVISAREM CASO ESTE ESTEJA MAL FEITO


Cumprimentos Rui Marinho !