Зафиксировать время между импульсом на 2х датчиках.

jopoleon
Offline
Зарегистрирован: 21.03.2016
 Здравствуйте. Нужен совет по проблеме.
--- Описание проблемы ---
   Есть волная ударная волна в воздухе. Она проходит по трубе. На ее пути стоят 2 датчика (пьезо, или более совершенные, определимся позже) с точно известным между ними растоянием. Первый датчик фиксирует прохождение волны, создает импуль, запускается счетчик времени, как только  волна доходит до второго датчика, счетчик останавливается и выдает значение - время между срабатываниями датчиков.
   
 --- Важные моменты ---
   1) Нужна очень высокая точность измерения времени, так как волна движется с большой скоростью и нужно замерить эту самую скорость максимально точно. Для этого, соотвественно, нужно точно измерить время между срабатываниями дачтиков.
   2) Существование аппратных задержек в самой плате, хотелось бы знать их точные значения, чтобы можно было учесть при последующей обработке.
 
   
qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Блин. Господин Наполеон,  простите . Господин jopoleon . Прежде чем браться за Ардуину и исследования.Изучите Физику . Или проще в Гугл скорость звука.

ПС:скорость звука =340.29 м / с

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

qwone пишет:

Или проще в Гугл скорость звука.

скорость звука в воздухе при каком давлении, влажности, температуре, содержании СО и кислорода, прочих примесях?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Клапауций 232 пишет:

qwone пишет:

Или проще в Гугл скорость звука.

скорость звука в воздухе при каком давлении, влажности, температуре, содержании СО и кислорода, прочих примесях?

 Ну да, все может быть, может автор живет на венере и ему надо замерить скорость ударной волны.

jopoleon
Offline
Зарегистрирован: 21.03.2016

Господин qwone, Вы крайне забавно шутите, но лучше высказывайтесь по делу или молчите, если не понимаете сути вопроса. 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

jopoleon,  о каких примерно цифрах идёт речь? микросекунды, наносекунды? Возможно этот скетч подойдёт.

Datak
Offline
Зарегистрирован: 09.10.2014

jopoleon, почитайте на форуме про <измеритель скорости пули> от jeka_tm.

Вряд ли ваше устройство будет отличаться от этого измерителя чем-то, кроме типа и конструкции датчиков.

 

Upd: dimax, чуть опередил :)

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

qwone пишет:

 Ну да, все может быть, может автор живет на венере и ему надо замерить скорость ударной волны.

я тебе по секрету скажу, что тебя в школе обманули - скорость света, так же, не константа.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

а, какая длина трубы?

jopoleon
Offline
Зарегистрирован: 21.03.2016

Может и подойдет, но я, если честно, не очень понимаю, что написанно в Вашем скетче. Это ассемблер? 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Клапауций 232 пишет:

я тебе по секрету скажу, что тебя в школе обманули - скорость света, так же, не константа.

Это нормально. Я добавлю ударной волны в вакууме быть не может.

Почему появилась волшебная цифра 340 м/c. Наверно потому что если датчики стоят на расстоянии 1 метра задержка равно 1/340 = 0,0029 секунды. Что вполне точно Ардуина может измерять обычными микрофонами.

Но есть один минус в таких измерениях. Звук по стенкам трубы пройдет быстрее чем по воздуху внутри трубы.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

jopoleon, это СИ и прямое программирование регистров таймера. Особо сильно его не тестил, так что могут быть нюансы..

qwone, а какую связь вы уловили между скоростью звука и ударной волной? При взрывах тротила например ударная волна может быть в разы выше скорости звука. А при проезде электрички на полной скорости -гораздо меньше :)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну здесь все очень просто .Скорость звука зависит от плотности вещества. При взрыве тротила давление воздухе в эпицентере возрастает. А значит скорость звука больше. Ну а с  удалением давление выравнивается к атмосферному и понятно, что скорость звука приходит к привычному. Но как я сказал раннее . Скорость звука по стенкам значительно выше чем по воздуху. Поэтому если хотите раньше услышать электричку , то приложите ухо к рельсам.  Разумеется преварительно оглядевшись, а то на вас может наехать машина.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

qwone пишет:

Ну здесь все очень просто .

qwone, зачем ты это всё пишешь?

evgta
Offline
Зарегистрирован: 02.09.2016
unsigned long time1; 
unsigned long time2;

void setup() {
pinMode(2, INPUT);         
pinMode(1, INPUT); 
digitalWrite(2, HIGH);       
digitalWrite(1, HIGH);
attachInterrupt(0, start1, RISING);
attachInterrupt(1, start2, RISING);
Serial.begin(9600);

}

void loop() 
{
}

void start1()
{
time1 = micros();

}
void start2()
{
time2 = micros();
time1=time2-time1;
Serial.println(time1);   // в микросекундах 
}

 

jopoleon
Offline
Зарегистрирован: 21.03.2016

dimax пишет:

jopoleon, это СИ и прямое программирование регистров таймера. Особо сильно его не тестил, так что могут быть нюансы..

qwone, а какую связь вы уловили между скоростью звука и ударной волной? При взрывах тротила например ударная волна может быть в разы выше скорости звука. А при проезде электрички на полной скорости -гораздо меньше :)

Спасибо за совет, почитаю ту тему с хронографом, похоже, это может бать как раз то, что надо. 

jopoleon
Offline
Зарегистрирован: 21.03.2016

evgta пишет:

unsigned long time1; 
unsigned long time2;

void setup() {
pinMode(2, INPUT);         
pinMode(1, INPUT); 
digitalWrite(2, HIGH);       
digitalWrite(1, HIGH);
attachInterrupt(0, start1, RISING);
attachInterrupt(1, start2, RISING);
Serial.begin(9600);

}

void loop() 
{
}

void start1()
{
time1 = micros();

}
void start2()
{
time2 = micros();
time1=time2-time1;
Serial.println(time1);   // в микросекундах 
}

 

Спасибо за пример кода, завтра испробую это.