Приобрел ультразвуковой сенсор MaxSonar EZ1 , подключил к Carduino nano (Arduino), все сразу заработало.
Что сразу не понравилось это большое колличество ложных ответов, но эту проблемы поборос программно, путем сравнения двух ответов, что то типа дребезг контактов
Другая проблема в том что данный сонар расчитан не для европы и у него шаг измерения в дюймах. После того как я перевожу растояние из дюймов в мм то погрешность показаний достигает до 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); //переводим в мм и отправляем в порт
}
}