//Include the servo library so the servomotor can be controlled
#include <Servo.h>
//create a servo object, named 'laserServo'
Servo laserServo;
//intitialise Global variables
//integers for laser angle variable and endpoint
int laserAngle = 0;
int laserPeak = 0;
//***STAGE #1 - define your variables here ***
int LDRPin = A5;
int potentiometerPin = A0;
int switchPin = 7;
int LDR_LEDPin = 3;
int potentiometer_LEDPin = 5;
int button_LEDPin = 6;
int servoPin = 9;
int LDRValue = 0;
int potentiometerValue = 0;
boolean switchState = false;
void setup() {
//initialise servo (this is done for you)
laserServo.attach(9); //attach servo to pin 9
//***STAGE #2 - setup your system here ***
pinMode(LDRPin, INPUT);
pinMode(potentiometerPin, INPUT);
pinMode(switchPin, INPUT_PULLUP);
pinMode(LDR_LEDPin, OUTPUT);
pinMode(potentiometer_LEDPin, OUTPUT);
pinMode(button_LEDPin, OUTPUT);
//begin serial transmissions (for sending information back)
Serial.begin(9600);
}
void loop() {
//Call User Defined Function to move the laser (leave this function to keep the servo moving!)
laserAlign();
//***STAGE #3a - read sensors here ***
LDRValue = analogRead(LDRPin);
potentiometerValue = analogRead(potentiometerPin);
switchState = digitalRead(switchPin);
//***STAGE #3b - read sensors here ***
delay(300); //delay which defines how fast you loop to read your sensors...
Serial.print(LDRValue);
Serial.print(",");
Serial.print(potentiometerValue); // Send the calibrated value
Serial.print(",");
Serial.print(switchState);
Serial.println();
}
//User Defined Function to move the laser
void laserAlign(){
// move laserServo to new angle
laserServo.write(laserAngle);
/*
* Logic for deciding next angle
*/
if ((laserAngle >= 0) && (laserAngle <= 120) && (laserPeak ==0))
{laserAngle++;}
if ((laserAngle == 120) && (laserPeak ==0))
{laserPeak = 120;}
if ((laserAngle >= 0) && (laserAngle <= 120) && (laserPeak ==120))
{laserAngle--;}
if ((laserAngle == 0) && (laserPeak ==120))
{laserPeak = 0;}
}