내 그룹과 저는 프로젝트를 위해 스마트 한 Arduino 구동 병을 만들려고합니다.이 병은 사용자가 정기적으로 물을 마시도록 상기시켜줍니다.Arduino - powered water bottle code가 예상대로 작동하지 않습니다.
내가하려는 것은 초음파 센서와 수위 사이의 거리를 확인하는 것입니다. 거리가 한 시간 이상 동일하게 유지되면 직렬 모니터에 "bad"라는 단어가 표시됩니다. 그렇지 않으면 단어 "good"을 반환합니다. 그러나이 코드를 실행하면 5000 밀리 초 이상 거리가 동일해도 "양호"라는 단어가 출력됩니다.
참고 : 코드에서 빠른 결과를 얻으려면 간격 변수에 시간 대신 5000 밀리 초를 할당했습니다.
참고 2 : 이것은 테스트 코드 일 뿐이며 완전히 완료되지 않았습니다. 계속 나아 가기 위해서는이 일을해야합니다.
// defines pins numbers
const int trigPin = 8;
const int echoPin = 7;
// defines variables
int maxrange = 20;
int minrange = 0;
long duration, distance;
long previousmillis = 0;
long interval = 5000; //1 hour = 3600000ms;
unsigned long currentmillis = millis();
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
//Converting the distance to cm
distance = duration/29/2;
if (currentmillis > interval) {
if (distance == distance) {
Serial.println("Bad");
Serial.println(distance);
}
} else {
Serial.println("Good");
Serial.println(distance);
}
}
이 코드의 잘못된 점은 무엇입니까? 저에게 알려주세요.
'distance == distance'는 언제 거짓일까요? – jonrsharpe
실수를 저질렀을 거예요. 괜찮 으면 나에게 도움을 주시겠습니까? 고맙습니다. –
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – jonrsharpe