모터 테스트
#include <SoftwareSerial.h> #include <AFMotor.h> AF_DCMotor motor_1(1); void setup() { motor_1.setSpeed(200); motor_1.run(RELEASE); } void loop() { motor_1.run(FORWARD); delay(2000); motor_1.run(RELEASE); delay(1000); motor_1.run(BACKWARD); delay(2000); motor_1.run(RELEASE); delay(1000); }
초음파센서 테스트
int trigPin = A0; int echoPin = A1; void setup() { Serial.begin(9600); // 시리얼 속도 설정 pinMode(echoPin, INPUT); // echoPin 입력 pinMode(trigPin, OUTPUT); // trigPin 출력 } void loop() { long duration, distance; digitalWrite(trigPin, HIGH); // trigPin에서 초음파 발생(echoPin도 HIGH) delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // echoPin 이 HIGH를 유지한 시간을 저장 한다. distance = ((float)(340 * duration) / 10000) / 2; Serial.print("distance:"); // 물체와 초음파 센서간 거리를 표시 Serial.print(distance); Serial.println("cm"); delay(500); }
모터 정회전 역회전 테스트

#include <SoftwareSerial.h> #include <AFMotor.h> AF_DCMotor motor_L(1); AF_DCMotor motor_R(4); void setup() { motor_L.setSpeed(175); motor_L.run(RELEASE); motor_R.setSpeed(200); motor_R.run(RELEASE); } void loop() { motor_L.run(FORWARD); motor_R.run(FORWARD); delay(2000); motor_L.run(RELEASE); motor_R.run(RELEASE); delay(1000); motor_L.run(BACKWARD); motor_R.run(BACKWARD); delay(2000); motor_L.run(RELEASE); motor_R.run(RELEASE); delay(1000); }
초음파센서 결합한 최종 코드
#include <SoftwareSerial.h> #include <AFMotor.h> AF_DCMotor motor_L(1); AF_DCMotor motor_R(4); int trigPin = A1; int echoPin = A0; void setup() { Serial.begin(9600); // 시리얼 속도 설정 pinMode(echoPin, INPUT); // echoPin 입력 pinMode(trigPin, OUTPUT); // trigPin 출력 motor_L.setSpeed(150); motor_L.run(RELEASE); motor_R.setSpeed(175); motor_R.run(RELEASE); } void loop() { long duration, distance; digitalWrite(trigPin, HIGH); // trigPin에서 초음파 발생(echoPin도 HIGH) delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // echoPin 이 HIGH를 유지한 시간을 저장 한다. distance = ((float)(340 * duration) / 10000) / 2; Serial.print("distance:"); // 물체와 초음파 센서간 거리를 표시 Serial.print(distance); Serial.println("cm"); if (distance < 15 ) { motor_L.run(BACKWARD); motor_R.run(BACKWARD); delay(1000); // motor_L.run(RELEASE); // motor_R.run(RELEASE); } motor_L.run(RELEASE); motor_R.run(RELEASE); }