Вопрос
- Войдите на сайт для отправки комментариев
Втр, 15/12/2015 - 13:05
#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);
/* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего.
Это время называется периодом цикла (cycle period).
Рекомендованный период между импульсами должен быть не менее 50 мс. */
}
Неподскажете зачем надо лделить на 58,голову ломая,не мог понять
а там же подписано, делаем из миль - метры :)
А откуда взялось 58?
Предупреждение!
Называйте темы, так чтобы понятно было о чем речь. Представляете, если каждый на форуме назовет тему "Вопрос".
А что по-Вашему, Вы измеряете?
Вы измеряете время, за которое звук проходит от излучателя до препятствия и обратно.
Что нужно сделать, чтобы получить расстояние до препятствия, если известно время отклика?