0701 distansmetr: различия между версиями
Перейти к навигации
Перейти к поиску
Evgen (обсуждение | вклад) Нет описания правки |
Woronin (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
////////////////////////////////////////////// | ////////////////////////////////////////////// | ||
// | // 2023.01.11 woronin, umkiedu@gmail.com | ||
// Датчик расстояния ульразвуковой - без библиотек pulseIn() | // Датчик расстояния ульразвуковой - без библиотек pulseIn() | ||
// Robot UMKI controller K6_3 | // Robot UMKI controller K6_3 | ||
// Замер расстояния от датчика до препятствия, вывод в Сериал порт | // Замер расстояния от датчика до препятствия, вывод в Сериал порт | ||
////////////////////////////////////////////// | ////////////////////////////////////////////// | ||
int Trig A3 | |||
int Echo A4 | |||
int ledPin 13 | |||
void setup() | void setup() | ||
{ | { | ||
Строка 15: | Строка 14: | ||
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; | |||
void loop() | void loop() | ||
{ | { | ||
digitalWrite(Trig, HIGH); | digitalWrite(Trig, HIGH); | ||
/ | delayMicroseconds(10); //Подаем импульс на вход trig дальномера равный 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 сантиметром | ||
{ | { | ||
Строка 40: | Строка 34: | ||
} | } | ||
delay(100); | delay(100); | ||
} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 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);
}