Приобрел ультразвуковой сенсор MaxSonar EZ1 , подключил к Carduino nano (Arduino), все сразу заработало.
Что сразу не понравилось это большое колличество ложных ответов, но эту проблемы поборос программно, путем сравнения двух ответов, что то типа дребезг контактов ![Радость](images/smilies/smile.png)
Другая проблема в том что данный сонар расчитан не для европы и у него шаг измерения в дюймах. После того как я перевожу растояние из дюймов в мм то погрешность показаний достигает до 2,5 см
Применения в автомобиле пока не придумал, если только как датчик сигнализации.
Копируем код, всиавляем в окно компилятора и нажимаем кнопку залить в контроллер. После того как код залился в контроллер , жмем кнопку Serial Monitor и мониторим расстояние до обьектов в мм
Или скачиваем программу в левом вехнем углу будет отражатся растояние в см
Код для Carduino (Arduino, Freeduino):
PHP код:
int echo_on = 2; //Пин для включения эхо локатора
int echo_in = 12; //ШИМ выход, выдает импульс длительностью с шагом 147 мкс (1 дюйм)
unsigned long duration, duration_crt ;
void setup()
{
pinMode(echo_on, OUTPUT);
pinMode(echo_in, INPUT);
Serial.begin(115200);
}
//-----------------------------------------------
void loop()
{
digitalWrite(echo_on, LOW); // включить сонар
delayMicroseconds(5); // время на включение устройства
duration = pulseIn(echo_in, HIGH); // замер ответа эха
delay(1);
duration_crt = pulseIn(echo_in, HIGH); // контрольный замер ответа эха
if(duration == duration_crt) // если замеры равны, то значит нет ошибки
{
Serial.println(duration/58); //переводим в мм и отправляем в порт
}
}