My inspiration for this project was a painting by my favorite artist Van Gogh (the Sunflowers) and I also wanted to create something that I would want to keep in my personal space. Therefore, my midterm project was a mimic of a ‘sunflower’ – a flower that would follow the direction of light.
I initially also wanted to make a flower that would open and close (as recommended by Aaron but despite trying to different methods – I felt as if I would be limited by time if I continued. So instead, I created my final one using two photoresistors and a servo.
For my code, since I used only one pin for both my photoresistors, the code was not too complicated. I used the sensor value (servoValue) to produce the values for which the servo should turn (servoTurn) and initially let this begin at a 90 degree angle. I also added a delay at the end so that allows the servo to reach the position indicated before the sensor senses anymore changes.
#include <Servo.h> int sensorPin = A0; int servoPin = 9; int sensorValue = 0; int servoTurn = 90; int tolerance = 20; Servo myservo; void setup() { Serial.begin(9600); pinMode(sensorPin, INPUT); myservo.attach(servoPin); myservo.write(servoTurn); // sets the degrees to which the servo is to be positioned } void loop() { sensorValue = analogRead(sensorPin); Serial.println(sensorValue); // print the sensor values if (sensorValue < (340-tolerance) ) // perform the first check if the value read from before is less than the difference between 340 { if (servoTurn < 180) servoTurn++; // ++ increments x by one and returns the old value of x // perform a further check that the servo is not > 180 } if (sensorValue > (340+tolerance) ) // value read by the sensor is compared with the sum of 340 + tolerance { if (servoTurn > 0) servoTurn--; // check that the angle the servo is located is not less than 0 } myservo.write(servoTurn); delay(50); // allows the servo to reach the position indicated before sensor sensing changes }
Other sources/help/inspiration:
- https://www.instructables.com/id/Light-Controlled-Servo/
- https://www.instructables.com/id/Ever-Blooming-Mechanical-Tulip/
- https://www.instructables.com/id/Create-an-Arduino-Controlled-Light-Following-Flowe/