Подскажите пожалуйста по HC-SR04
- Войдите на сайт для отправки комментариев
Пт, 15/07/2016 - 07:30
Хочу модернизировать две настольные лампы на ВКЛ и ВЫКЛ проводя под ними рукой на расстоянии около 20-25 см, не знаю как правильно написать, нужно чтобы "когда расстояние к предмету будет меньше 30 см то включается релюшка, в следующий раз наоборот". Пока код такой:
//Тестировалось на Arduino IDE 1.0.1 #define Trig 9 #define Echo 8 #define ledPin 13 void setup() { pinMode(Trig, OUTPUT); //инициируем как выход pinMode(Echo, INPUT); //инициируем как вход pinMode(ledPin, OUTPUT); Serial.begin(9600); /* задаем скорость общения. В нашем случае с компьютером */ } unsigned int impulseTime=0; unsigned int distance_sm=0; void loop() { digitalWrite(Trig, HIGH); /* Подаем импульс на вход trig дальномера */ delayMicroseconds(10); // равный 10 микросекундам digitalWrite(Trig, LOW); // Отключаем impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса distance_sm=impulseTime/58; // Пересчитываем в сантиметры Serial.println(distance_sm); // Выводим на порт if (distance_sm<30) // Если расстояние менее 30 сантиметром { digitalWrite(ledPin, HIGH); // Светодиод горит } else { digitalWrite(ledPin, LOW); // иначе не горит } delay(100);
Весь код переписывать не буду, приведу только кусок, где видно основную идею:
А еще лучше создать классы. 1 - светодиода , который по фунции invert() меняет состояние. 2- класс , который при опросе датчика переходе дальше 30- ближе 30 становится 1.
ПС: Вы же видете кругом микросхемы. Так почему не проектировать свои "программые микросхемы"- классы.