Created
April 10, 2016 08:38
-
-
Save elktros/c1e6d41c011f69920ec7a80aafc22c3c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Servo.h> | |
//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); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I do this project but do not respond with science engines 12v