Day 6 progress

Day 6 progress

Shiran Guo and Yichao Xie

#include <Servo.h>  // Include the Servo library


// Define the pin connected to the photoresistor

const int photoPin = A0;  // Photoresistor (Adafruit 161) connected to analog pin A0


// Define the pin for the servo motor

const int servoPin = 9;   // Servo motor connected to pin 9


// Define the threshold value to detect light

// Adjust this value based on the specific lighting conditions

int lightThreshold = 50;  // Example threshold


// Create a Servo object

Servo myServo;


// Variable to track light detection state

bool isLightDetected = false;  // Track if light level is currently above threshold


void setup() {

  // Start serial communication

  Serial.begin(9600);

  while (!Serial) {

    ; // Wait for the serial port to connect (necessary for native USB port boards)

  }


  // Attach the servo to pin 9

  myServo.attach(servoPin);


  // Initialize the servo to its resting position (0 degrees)

  myServo.write(0);  // Start at 0 degrees


  // Print a startup message

  Serial.println("Photoresistor (Adafruit 161) with Servo Example Initialized");

}


void loop() {

  // Read the analog value from the photoresistor (range 0 to 1023)

  int sensorValue = analogRead(photoPin);


  // Print the sensor value to the serial monitor

  Serial.print("Photoresistor Value: ");

  Serial.println(sensorValue);


  // Check if the sensor value exceeds the threshold (light detected)

  if (sensorValue > lightThreshold) {

    if (!isLightDetected) {

      // Light newly detected, move the servo to 0 degrees

      Serial.println("Light Detected");

      myServo.write(0);  // Move servo to 0 degrees

      isLightDetected = true; // Mark that light is detected

    }

  } else {

    // Light is below threshold

    if (isLightDetected) {

      Serial.println("Light Below Threshold");

      myServo.write(70);  // Move servo to 70 degrees

      isLightDetected = false; // Reset the detection state

    }

  }


  // Longer delay to observe changes more clearly (1 second)

  delay(1000);

}