Define the Problem
While solar energy is an excellent source of renewable energy being used today, in it’s current form it is not reaching its full potential and maximizing its gains. Currently, solar power efforts are only harnessing less than 1% of the sun’s energy. The amount of potential energy available from the sun greatly outweighs the amount of energy we are able to collect today.
Traditional solar panels are not able to directly face the sun at all times of the day. Therefore, while they capture some energy from the sun there is a great deal of energy that is wasted and not collected. Due to the static and immobile nature of most traditional solar panels, they are not able to maximize the amount of energy gained from the sun because of their position in relation to the sun at various times of the day.
Generate Concepts
- Increase the number of solar panels in use
- Create more efficient solar panels
- Decrease the distance between the sun and the panels
- Make panels face the sun more directly/often
- Explore the concept of concentrated solar power further
Develop a Solution
We chose to make a solar panel that faces the sun at all times to collect as much light as possible. To do this we will make use of servos and photoresistors to rotate the panel to face the sun at all times. The main advantage of this method over using more panels is space efficiency and at a large scale, it will be more efficient to have fewer panels that cost more but make more power, than to have lots of cheaper panels. Another benefit is that the panel will power the servos it uses to rotate itself to face the sun at all times, meaning that the system is self-sufficient
Construct and Test a Prototype
Code
#include <Servo.h>
const int photoresistorPin1 = A0;
const int photoresistorPin2 = A1;
const int servoPin1 = 9;
const int servoPin2 = 10;
const int servoPin3 = 11;
Servo servo1;
Servo servo2;
Servo servo3;
void setup() {
pinMode(photoresistorPin1, INPUT);
pinMode(photoresistorPin2, INPUT);
servo1.attach(servoPin1);
servo2.attach(servoPin2);
servo3.attach(servoPin3);
}
void loop() {
int sensorValue = analogRead(A2);
float voltage = sensorValue * (5.0 / 1023.0);
delay(100);
int lightLevel1 = analogRead(photoresistorPin1);
int lightLevel2 = analogRead(photoresistorPin2);
int lightDiff = lightLevel1 - lightLevel2;
if (lightDiff > 0) {
servo1.write(0);
servo2.write(0);
} else if (lightDiff < 0) {
servo1.write(110);
servo2.write(110);
}
int averageLightLevel = (lightLevel1 + lightLevel2) / 2;
int servo3Position = map(averageLightLevel, 0, 1023, 0, 180);
servo3.write(servo3Position);
delay(100);
}
Video
Evaluation of solution
I think our solution worked very well, as a first prototype at least. One thing i think it did well was show that our idea has real potential in being a viable solution. While our current design isn’t perfect, we managed to make it rotate and tilt to catch the most sun light and then stay there and I think the basic design of how it moves and turns is fairly good. Somethings I think we could improve on in future iterations of the panel would be to put more panels on each pivot point so we get more solar cells facing the sun using fewer motors, This would also improve the energy efficiency of the design. Another thing we could improve is to use a timer instead of a photo resistor to move the solar panels because a photoresistor can get confused by other light sources. Overall i think we did a decent job especially with the limited resources we had.


