//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;
//Initialising Pins
int pin3 = 0;
int pin5 = 0;
int pin6 = 0;
int pin7 = 0;
int pinA0 = 0;
int pinA5 = 0;
int pin9 = 0;
//Initialising Inputs
int LDRval = 0;
int POTENval = 0;
bool SWval = 0;
//Initialising Outputs
int LDR_LED = 0;
int POTEN_LED = 0;
int SWITCH_LED = 0;
void setup() {
//initialise servo (this is done for you)
laserServo.attach(9); //attach servo to pin 9
//OUTPUT PINS
pinMode(pinA0,OUTPUT);
pinMode(pinA5,OUTPUT);
pinMode(pin9,OUTPUT);
pinMode(pin7, OUTPUT);
//INPUT PINS
pinMode(pin3,INPUT);
pinMode(pin5,INPUT);
pinMode(pin6, INPUT);
//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();
//READING SENSORS
LDRval = analogRead(pin3);
POTENval = analogRead(pin5);
SWval = digitalRead(pin7);
//PRINTING VALUES OF SENSORS
Serial.print(LDRval);
Serial.print(",");
Serial.print(POTENval);
Serial.print(",");
Serial.print(SWval);
Serial.print(",");
Serial.print("\n");
delay(3000); //delay which defines how fast you loop to read your sensors...
}
//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;}
}