Вопрос

gc333
Offline
Зарегистрирован: 15.12.2015
#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,голову ломая,не мог понять

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

а там же подписано, делаем из миль - метры :)

gc333
Offline
Зарегистрирован: 15.12.2015

А откуда взялось 58?

 

Alexander
Offline
Зарегистрирован: 25.04.2010

Предупреждение!
Называйте темы, так чтобы понятно было о чем речь. Представляете, если каждый на форуме назовет тему "Вопрос".

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

А что по-Вашему, Вы измеряете?

Вы измеряете время, за которое звук проходит от излучателя до препятствия и обратно.

Что нужно сделать, чтобы получить расстояние до препятствия, если известно время отклика?