Показать сообщение отдельно
Старый 19.10.2015, 12:48   #1
NSMax
Сибиряк
 
Аватар для NSMax
 
Регистрация: 11.04.2007
Возраст: 50
Город: Свободно перемещающийся
Регион: другой - для добавления сообщить ab
Машина: Jaguar X-Type
Сообщений: 785
NSMax has a spectacular aura aboutNSMax has a spectacular aura aboutNSMax has a spectacular aura about
По умолчанию Ардуино парктроник на базе Sho-Me 2616

Здравствуйте, уважаемые
Давненько я тут не был.
Предлагаю Вашему вниманию крайне простую конструкцию парктроника на базе SHO-ME 2616, но думаю, что в качестве донора может стать любой с похожей схемотехникой, а она как правило одинакова.

Итак имеем парктроник в котором есть MUX - HCF4032, Усилитель - NE5532, обвязка по питанию и процессор - EM78P156.

Сначала я пытался разобраться с протоколом обмена м-ду индикатором и процессором, но забросил это дело т.к. не интересно совсем, хотя инфы в гугле валом на тему, да и точность измерения расстояния оставляет желать лучшего.
В общем решил что удалю проц и сделаю свой обработчик датчиков да и не нужно мне все 4 датчика (делаю измеритель уровня воды в баке).

Первым делом разобрался с пинами мукса



и снял эпюры:



Видим что на "Common X" - посылается сигнал 40кГц длительностью 0.48ms и потом он отлавливается с "Common Y" после операционника. Также подрыгиванием ног 10 и 9 можем выбирать датчик с которым работаем в текущий момент



Ну а дальше все крайне элементарно - дрыгаем ногой ардуины и ждем ответ на 2й ноге (int1). Вот кусок кода дрыганья ногами.
2-я чтение
9-я запись пакета в порт
3,4 - MUX select

PHP код:
long time_delay;

void setup()
{
  
Serial.begin(115200);
  
DDRD B11111001;
}

void loop()
{
  
DDRD B11111101;
  
PORTD B00011000;
  
tone(OUT392003);
  
_delay(0);
  
pinMode(ININPUT_PULLUP);
  
_delay(30000);
  
PORTD B00000000;
}

void _delay(int x) {
  
time_delay 0;
  
time_delay micros();
  while (
micros() - time_delay x) {  }
  
0;

На выходе имеем следующее:



Из картинки видно, что эхо прилетело через 17.408ms а это с учетом скорости звука 340.29m/s и пути в оба конца, составляет 2961,88416 mm. Правда есть один нюанс - скорость переключения MUXа из режима записи в режим чтения (или еще какие переключения) - 0.442ms что составляет 75,20409 мм что накладывает ограничение на минимальное измеряемое расстояние.
В ходе экспериментов удалось замерить с достаточной точностью (~10см) расстояние в 5 метров.

А теперь фото парктроника с точками подключения:


Справа на разъемах это соответствие пинам MUX

Ниже:
1 - MUX select B
2 - MUX select A
3 - Common X - запись
4 - Common Y - чтение
Миниатюры
Нажмите на изображение для увеличения
Название: ishodnik.png
Просмотров: 3793
Размер:	16.9 Кб
ID:	41327   Нажмите на изображение для увеличения
Название: MUX.png
Просмотров: 3929
Размер:	7.8 Кб
ID:	41328   Нажмите на изображение для увеличения
Название: MUXSEL.png
Просмотров: 3749
Размер:	3.9 Кб
ID:	41329   Нажмите на изображение для увеличения
Название: ARDOO.jpg
Просмотров: 3782
Размер:	18.5 Кб
ID:	41330   Нажмите на изображение для увеличения
Название: 20151019_113109.jpg
Просмотров: 4223
Размер:	132.9 Кб
ID:	41331  

NSMax вне форума   Ответить с цитированием