ข้ามไปที่เนื้อหาหลัก

ส่งงานครั้งที่ 15

Arduino Solar Tracker

อุปกรณ์
  • Servo Motor (sg90)
  • Solar panel
  • Arduino Uno
  • LDR’s X 2 (Light Dependent Resistor)
  • 10K resistors X 2
  • Battery (6 to 12V)
Diagram


Code
#include <Servo.h>      //ประกาศเมื่อมีการใช้Servo
Servo sg90;             //ตั้งค่าServoด้วยตัวแปรsg90
int initial_position = 90;   //ประกาศตัวแปรไว้ที่ค่า 90
int LDR1 = A0;          //ขาที่LDRต่อไว้
int LDR2 = A1;          //ขาที่LDR2ต่อไว้
int error = 5;          //ตั้งค่าเริ่มต้นของ error ที่ 5
int servopin=9;
void setup()
{ 
  sg90.attach(servopin);  // ให้ servo ที่ขา 9
  pinMode(LDR1, INPUT);   //ให้ขาที่ต่อกับLDRเป็นInput
  pinMode(LDR2, INPUT);
  sg90.write(initial_position);   //ขยับServoไว้ที่90องศา
  delay(2000);            // กำหนดdelay2วินาที
}

void loop()
{
  int R1 = analogRead(LDR1); // อ่านค่า LDR 1
  int R2 = analogRead(LDR2); // อ่านค่า LDR 2
  int diff1= abs(R1 - R2);   // คำนวณค่าการเปลี่ยนแปลงของ LDR's
  int diff2= abs(R2 - R1);

  if((diff1 <= error) || (diff2 <= error)) {
    //ถ้าค่าการเปลี่ยนแปลงน้อยกว่า error ไม่ต้องทำอะไร
  } else {  
    if(R1 > R2)
    {
      initial_position = --initial_position;  //ขยับServoไปที่0องศา
    }
    if(R1 < R2)
    {
      initial_position = ++initial_position; //ขยับServoไปที่180องศา
    }
  }
  sg90.write(initial_position); // เปลี่ยนค่าของServo
  delay(100);
}

Credit By : https://circuitdigest.com/microcontroller-projects/arduino-solar-panel-tracker

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ส่งงานครั้งที่ 16

Smoke Detector Using MQ2 อุปกรณ์ Arduino UNO Smoke Detector Arduino Shield (Self Designed) Power Supply Smoke Sensor (MQ2) Resistors (10K and 1K) Buzzer 16x2 LCD 10k POT LED LM358 Burg strips Diagram Code #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define buzzer 9 #define sensor A0   #define load_Res 10   #define air_factor 9.83                                                   float SmokeCurve[3] ={2.3,0.53,-0.44};    // (x, y, slope) x,y พิกัดของจุดหนึ่งและความลาดชันระหว่างสองจุด                                                                                     ...

ส่งงานครั้งที่ 9

Gyro Sensor Interfacing Gyro Sensor  คือเซ็นเซอร์ที่มีไว้สำหรับตรวจจับลักษณะการหมุน โ ดยเป็นการตรวจจับแบบ  3  แกน  (3-Axes) อุปกรณ์ Arduino Uno MPU-6050 10K POT Jumper wire Breadboard USB cable Power supply Diagram Code #include<LiquidCrystal.h> //ประกาศเมื่อใช้จอ LiquidCrystal lcd(8,9,10,11,12,13); //ขาที่ต่อจอ #include <Wire.h> #include <MPU6050.h> #define period 10000 MPU6050 mpu; int count=0; char okFlag=0; byte degree[8] = {   0b00000,   0b00110,   0b01111,   0b00110,   0b00000,   0b00000,   0b00000,   0b00000 }; void setup()  {   lcd.begin(16,2);   lcd.createChar(0, degree);   Serial.begin(9600);   Serial.println("Initialize MPU6050");   while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))   {     lcd.clear();     lcd.print("Device not Found"...

ส่งงานครั้งที่ 17

Air Pollution Monitoring อุปกรณ์ MQ135 Gas sensor Arduino Uno Wi-Fi module ESP8266 16X2 LCD Breadboard 10K potentiometer 1K ohm resistors 220 ohm resistor Buzzer Diagram Code #include "MQ135.h" #include <SoftwareSerial.h> #define DEBUG true SoftwareSerial esp8266(9,10); // กำหนดขา 9 ของ Arduino เป็น RX pin และ ขา 10 ของ Arduino เป็น the TX pin const int sensorPin= 0; int air_quality; #include <LiquidCrystal.h> LiquidCrystal lcd(12,11, 5, 4, 3, 2); void setup() { pinMode(8, OUTPUT); lcd.begin(16,2); lcd.setCursor (0,0); lcd.print ("circuitdigest "); lcd.setCursor (0,1); lcd.print ("Sensor Warming "); delay(1000); Serial.begin(115200); esp8266.begin(115200);   sendData("AT+RST\r\n",2000,DEBUG); // reset module   sendData("AT+CWMODE=2\r\n",1000,DEBUG); // กำหนดค่า  access point   sendData("AT+CIFSR\r\n",1000,DEBUG); // รับ ip address   sendData("AT+CIPMUair_quali...