0701 distansmetr: различия между версиями

Материал из УМКИwiki
Перейти к навигации Перейти к поиску
(Новая страница: «<code> ////////////////////////////////////////////// // 2019.07.18 woronin, umkiedu@gmail.com // Датчик расстояния ульразвук…»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
<code>
<syntaxhighlight lang="C++">
  //////////////////////////////////////////////
  //////////////////////////////////////////////
  //    2019.07.18 woronin,  umkiedu@gmail.com
  //    2023.01.11 woronin,  umkiedu@gmail.com
  //    Датчик расстояния ульразвуковой - без библиотек pulseIn()
  //    Датчик расстояния ульразвуковой - без библиотек pulseIn()
  //    Robot UMKI controller  K6_3
  //    Robot UMKI controller  K6_3
  //    Замер расстояния от датчика до препятствия, вывод в Сериал порт
  //    Замер расстояния от датчика до препятствия, вывод в Сериал порт
  //////////////////////////////////////////////
  //////////////////////////////////////////////
#define Trig A3
int Trig A3
#define Echo A4
int Echo A4
#define ledPin A0
int ledPin 13
void setup()  
void setup()  
{   
{   
   pinMode(Trig, OUTPUT); //инициируем как выход  
   pinMode(Trig, OUTPUT); //инициируем как выход  
   pinMode(Echo, INPUT); //инициируем как вход  
   pinMode(Echo, INPUT); //инициируем как вход  
   pinMode(ledPin, OUTPUT);  
   pinMode(ledPin, OUTPUT);  
   Serial.begin(9600);  
   Serial.begin(9600); // инициируем и задаем скорость общения c Монитором порта
  /* задаем скорость общения. В нашем случае с компьютером */
}  
}  
int impulseTime=0, distance_sm=0;  
unsigned int impulseTime=0;
void loop()  
  unsigned int distance_sm=0;  
{   
void loop()  
{   
   digitalWrite(Trig, HIGH);  
   digitalWrite(Trig, HIGH);  
   /* Подаем импульс на вход trig дальномера */
   delayMicroseconds(10); //Подаем импульс на вход trig дальномера равный 10 микросекундам  
  delayMicroseconds(10); // равный 10 микросекундам  
   digitalWrite(Trig, LOW); // Отключаем  
   digitalWrite(Trig, LOW); // Отключаем  
   impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса  
   impulseTime=pulseIn(Echo, HIGH); // Замеряем длину импульса  
   distance_sm=impulseTime/58; // Пересчитываем в сантиметры  
   distance_sm=impulseTime/58; // Пересчитываем в сантиметры  
   Serial.println(distance_sm); // Выводим на порт
   Serial.println(distance_sm); // Выводим сообщение в монитор порта
   if (distance_sm<30) // Если расстояние менее 30 сантиметром  
   if (distance_sm<30) // Если расстояние менее 30 сантиметром  
   {     
   {     
Строка 37: Строка 34:
   }   
   }   
   delay(100);  
   delay(100);  
  /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего.
  Это время называется периодом цикла (cycle period).
  Рекомендованный период между импульсами должен быть не менее 50 мс.  */
  }
  }
</code>
 
</syntaxhighlight>


[[Категория:Видео эпизоды УМКИ]]
[[Категория:Видео эпизоды УМКИ]]
[[Категория:Примеры программирования Arduino]]

Текущая версия от 13:58, 28 ноября 2023

 //////////////////////////////////////////////
 //     2023.01.11 woronin,  umkiedu@gmail.com
 //     Датчик расстояния ульразвуковой - без библиотек pulseIn()
 //     Robot UMKI controller  K6_3
 //     Замер расстояния от датчика до препятствия, вывод в Сериал порт
 //////////////////////////////////////////////
int Trig A3
int Echo A4
int ledPin 13
void setup() 
{  
  pinMode(Trig, OUTPUT); //инициируем как выход 
  pinMode(Echo, INPUT); //инициируем как вход 
  pinMode(ledPin, OUTPUT); 
  Serial.begin(9600); // инициируем и задаем скорость общения c Монитором порта
} 
int impulseTime=0,  distance_sm=0; 
void loop() 
{  
  digitalWrite(Trig, HIGH); 
  delayMicroseconds(10); //Подаем импульс на вход trig дальномера равный 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); 
 }