ультразвук

aleninart
Offline
Зарегистрирован: 30.03.2017
const int Echo = 8;
const int Trig = 9;
void setup()
{
  pinMode(Echo, OUTPUT);
  pinMode(Trig, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  Serial.begin(9600); 
}
unsigned int time=0;
unsigned int distance=0;
void loop()
{
  
  digitalWrite(Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);
  time=pulseIn(Echo, HIGH);
  distance=time/58;
  Serial.println(distance);
  if (distance>50)
  
  {
    digitalWrite(4, HIGH);
    analogWrite(5, 100);
    digitalWrite(7,HIGH);
    analogWrite(6, 100);
}
 else
 {
   
    digitalWrite(4, HIGH);
    analogWrite(5, 0);
    digitalWrite(7,HIGH);
    analogWrite(6, 0);
 }
 delay(100);
}

по этой проге не работает,

а вот по этой проге все работает. Пожалуйста обозначте ошибку.

 


const int Trig = 8; 
const int Echo = 9; 

void setup()
{
  pinMode(Trig, OUTPUT); 
pinMode(Echo, INPUT); 
 

pinMode( 4 , OUTPUT);
pinMode( 7 , OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
unsigned int time_us=0; 

unsigned int distance_sm=0; 

void loop()
{
  digitalWrite(Trig, HIGH); // Подаем сигнал на выход микроконтроллера 
delayMicroseconds(10); // Удерживаем 10 микросекунд 
digitalWrite(Trig, LOW); // Затем убираем 
time_us=pulseIn(Echo, HIGH); // Замеряем длину импульса 
distance_sm=time_us/58; // Пересчитываем в сантиметры 
// Выводим на порт 

if (distance_sm<50) // Если расстояние меньше 50 сантиметром 


{ 
digitalWrite( 4 , HIGH ); //остановка если впереди препятствие
analogWrite(5, 0);
analogWrite(6, 0);
digitalWrite( 7 , HIGH );

} 
else 
{ 
digitalWrite( 4 , HIGH );//ехать если нет препятствия
analogWrite(5, 100);
analogWrite(6, 100);
digitalWrite( 7 , HIGH );

} 

delay(100); 

}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

aleninart пишет:

по этой проге не работает,

а вот по этой проге все работает. Пожалуйста обозначте ошибку.

Что работает? Что не работает? Что делается? Что должно делаться? ХЗ!

Ошибку обозначу без пролбем: ошибка в том, как описана проблема и как задаётся вопрос.

T.Rook
Offline
Зарегистрирован: 05.03.2016
pinMode(Echo, OUTPUT);

как минимум.

+1 к возгласу ЕвгенийП

 

 

SLKH
Offline
Зарегистрирован: 17.08.2015

1. Кто/что не позволил прочитать то, что выдает Serial.println(distance) ?

2. Читаем описание pulseIn()

 

aleninart
Offline
Зарегистрирован: 30.03.2017

спасибо