#include //defining Servos Servo servohori; int servoh = 0; int servohLimitHigh = 160; int servohLimitLow = 20; Servo servoverti; int servov = 0; int servovLimitHigh = 160; int servovLimitLow = 20; //Assigning LDRs int ldrtopl = 2; //top left LDR green int ldrtopr = 1; //top right LDR yellow int ldrbotl = 3; // bottom left LDR blue int ldrbotr = 0; // bottom right LDR orange void setup () { servohori.attach(10); servohori.write(0); servoverti.attach(9); servoverti.write(0); delay(500); } void loop() { servoh = servohori.read(); servov = servoverti.read(); //capturing analog values of each LDR int topl = analogRead(ldrtopl); int topr = analogRead(ldrtopr); int botl = analogRead(ldrbotl); int botr = analogRead(ldrbotr); // calculating average int avgtop = (topl + topr) / 2; //average of top LDRs int avgbot = (botl + botr) / 2; //average of bottom LDRs int avgleft = (topl + botl) / 2; //average of left LDRs int avgright = (topr + botr) / 2; //average of right LDRs if (avgtop < avgbot) { servoverti.write(servov +1); if (servov > servovLimitHigh) { servov = servovLimitHigh; } delay(10); } else if (avgbot < avgtop) { servoverti.write(servov -1); if (servov < servovLimitLow) { servov = servovLimitLow; } delay(10); } else { servoverti.write(servov); } if (avgleft > avgright) { servohori.write(servoh +1); if (servoh > servohLimitHigh) { servoh = servohLimitHigh; } delay(10); } else if (avgright > avgleft) { servohori.write(servoh -1); if (servoh < servohLimitLow) { servoh = servohLimitLow; } delay(10); } else { servohori.write(servoh); } delay(50); }