아두이노를 이용한 1축 태양광 추적 시스템

오늘 내 블로그에 다시 오신 것을 환영합니다. Arduino UNO를 사용하여 단일 축 태양 추적 시스템을 만들 것입니다.

필수 구성 요소
  • 아두이노 우노 rev3
  • 서보 모터 SG90
  • 브레드보드소
  • LDR 5mm(광 종속 저항기)
  • 저항기 10k옴(2x)
  • 점퍼 와이어(10x)
  • 솔라 패널 5.5v
  • 9v 배터리
  • 배터리 커넥터

  • 필요한 도구
  • 글루건
  • 납땜 인두
  • 아두이노 IDE
  • 노트북

  • 배경



    태양 전지판은 들어오는 빛이 패널에 수직일 때 가장 많은 전기를 생성합니다. 태양 추적기는 항상 태양을 직접 향하도록 하나 또는 두 개의 축(고도 및 방위각)을 따라 패널을 회전시킵니다. 이것은 고정 패널에 비해 최대 25% 더 많은 에너지를 추가할 수 있습니다.

    집회


  • LDR을 5볼트에 연결하고 다른 핀을 A0에 연결한 다음 접지에 연결된 10K 저항에 연결합니다.
  • 두 번째 LDR을 5볼트에 연결하고 다른 핀을 A1에 연결한 다음 접지에 연결된 10K 저항에 연결합니다.

  • 이것은 각 LDR에 닿는 빛에 따라 아날로그 입력에 가변 전압을 제공하는 전압 분배기입니다.
  • 서보 갈색 선을 배터리 접지에 연결하고 빨간색 선을 9V에 연결하고 주황색 선을 디지털 핀 9에 연결합니다.

  • 서보가 제대로 작동하려면 더 많은 전력이 필요합니다.

    회로도를 살펴봅시다!!!





    암호




    //Code Written by TECH_TELE
    #include <Servo.h>
    Servo sg90;
    
    int ldr_1 = A0; // lrd pin connected to A0
    int ldr_2 = A1; // LDR pin connected to A1
    int servo_pin = 9;
    int pos = 90;// initial position
    int servo_max=178;      // maximum position for servo
    int servo_min=2;        // minimum position for servo
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);
      pinMode(ldr_1, INPUT);
      pinMode(ldr_2, INPUT);
      sg90.attach(servo_pin);// servo pin declared 9 Line no 5
      sg90.write(pos);
    
    }
    
    void loop() {
      double ldrStatus1 = analogRead(ldr_1);
      double ldrStatus2 = analogRead(ldr_2);
      Serial.print("LDR1 Status:");
      Serial.print(ldrStatus1);
      Serial.println("");
      Serial.print("LDR2 Status:");
      Serial.print(ldrStatus2);
      Serial.println("");
    if(ldrStatus1>ldrStatus2){
      for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
        // in steps of 1 degree
        sg90.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15); 
      }
      }
    if(ldrStatus1<ldrStatus2){
      for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
        sg90.write(pos);              // tell servo to go to position in variable 'pos'
        delay(15);
      }
    }
    }
    

    좋은 웹페이지 즐겨찾기