[1] 가속도 센서(mm출력)
const int TriggerPin = 8;
const int EchoPin = 9;
long Duration = 0;
float Distance;
int i = 1;
unsigned long startTime;
void setup() {
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.println("CLEARDATA"); //처음에 데이터 리셋
Serial.println("LABEL,No.,Distance(mm)"); //엑셀 첫행 데이터 이름 설정
startTime = millis(); // 프로그램 시작 시간을 저장
}
void loop() {
if (millis() - startTime > 60000) { // 1분(60000ms) 경과 확인
Serial.println("1분이 경과하여 프로그램을 종료합니다.");
noInterrupts(); // 인터럽트를 비활성화하여 프로그램을 멈춤
while(true); // 무한 루프를 돌려 프로그램을 완전히 멈춤
}
digitalWrite(TriggerPin, HIGH);
delay(15);
digitalWrite(TriggerPin, LOW);
Duration = pulseIn(EchoPin, HIGH);
Distance = (Duration / 2.0) * 0.34; // 속도를 340m/s에서 0.34mm/µs로 변환
Serial.print("DATA,"); // 데이터 행에 데이터를 받겠다는 말
Serial.print(i++); // No. 데이터를 출력
Serial.print(","); // ,로 데이터를 구분하고 엑셀에는 셀을 구분
Serial.println(Distance); // Distance 데이터 출력
delay(500); // 0.5초마다 측정
}
[2] 가속도 cm출력
const int TriggerPin = 8;
const int EchoPin = 9;
long Duration = 0;
float Distance;
int i = 1;
unsigned long startTime;
void setup() {
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.println("CLEARDATA"); //처음에 데이터 리셋
Serial.println("LABEL,No.,Distance"); //엑셀 첫행 데이터 이름 설정
startTime = millis(); // 프로그램 시작 시간을 저장
}
void loop() {
if (millis() - startTime > 60000) { // 1분(60000ms) 경과 확인
Serial.println("1분이 경과하여 프로그램을 종료합니다.");
noInterrupts(); // 인터럽트를 비활성화하여 프로그램을 멈춤
while(true); // 무한 루프를 돌려 프로그램을 완전히 멈춤
}
digitalWrite(TriggerPin, HIGH);
delay(15);
digitalWrite(TriggerPin, LOW);
Duration = pulseIn(EchoPin, HIGH);
Distance = ((340 * Duration) / 10000) / 2;
Serial.print("DATA,"); // 데이터 행에 데이터를 받겠다는 말
Serial.print(i++); // No. 데이터를 출력
Serial.print(","); // ,로 데이터를 구분하고 엑셀에는 셀을 구분
Serial.println(Distance); // Distance 데이터 출력
delay(500); // 0.5초마다 측정
}
|