2 분 소요

목표 : 조도 센서를 세개를 사용해서 어두운 부분을 찾아내고 서보모터를 이용해서 어두운 부분을 가르키는 동작 구현

회로 구성

image

소스 코드

#include \ \ Servo myServo;\ \ int potVal;\ int angle = 0;\ \ void setup(){\   myServo.attach(9);\   Serial.begin(9600);\ }\ \ \ void loop()\ {\   int position\_a = analogRead(A0);\   int position\_b = analogRead(A1);\   int position\_c = analogRead(A2);\  \    Serial.print("\n angle\_a: ");\    Serial.println(position\_a);\    Serial.print("\n angle\_b: ");\    Serial.println(position\_b);\    Serial.print("\n angle\_c: ");\    Serial.println(position\_c);\    \    if((position\_a != position\_b) || (position\_a != position\_c) || (position\_b != position\_c))\    {\      if(position\_a < position\_b)\      {\        if(position\_a < position\_c)\        {\             myServo.write(45);\             Serial.println(45);\        }else\        {\             myServo.write(125);\             Serial.println(125);            \        }\      }else if(position\_a < position\_c)\      {\        if(position\_a < position\_b)\        {\            myServo.write(45);\             Serial.println(45);            \        }else\        {\            myServo.write(90);\             Serial.println(90);                       \        }\      }\    }\    \    if(Serial.available())\    {\      char ch = Serial.read();\      if(ch == 'a')\      {\        for(angle = 0; angle < 180; angle++)\        {\           if(angle < 180 )\          {\             myServo.write(angle);\             delay(15);\          }else\          {\             angle = 0;\          }\          Serial.print("angle: ");\          Serial.println(angle);\        }\      }else if( ch == 'b')\      {\           myServo.write(45);\           Serial.println(45);\           delay(5000);\      }else if( ch == 'c')\      {\           myServo.write(90);\           Serial.println(90);\           delay(5000);\      }else if( ch == 'd')\      {\           myServo.write(125);\           Serial.println(125);          \           delay(5000);          \      }else if( ch == 'e')\      {\           myServo.write(180);\           Serial.println(180);          \           delay(5000);          \      }else\      {\      }\    }\ }

\