Расчёт времени между 2-мя ИК датчиками
- Войдите на сайт для отправки комментариев
Доброго времени суток, заранее прошу прощения, если мой вопросы окажутся весьма банальными, но всё же:
Имеется 2 ик, датчика, подключённые к arduino mega 2560, каждый из них должен работать в режиме "наличие объекта", "отсутствие объекта", располагаются они один за другим. Нужно засечь время прохождения объекта между ними.
Пробовал написать скетч, чтобы, для начала, проверить их работоспособность в необходимом режиме, но работает только 1, думаю проблема в скетче, т.к. другой, скетч сработал, но он мне не особо подходит.
Просьба помочь разобраться, я только начал заниматься с arduino, и составить код для расчёта времени. Буду весьма благодарен! Заранее спасибо!
Вот скетч, с которым работает 1 из 2 датчиков:
int limitSwitch = 13;
int limitSwitch2 = 12;
int state = LOW;
void setup() {
Serial.begin(9600);
pinMode(limitSwitch, INPUT);
pinMode(limitSwitch2, INPUT);
}
void loop() {
int val = digitalRead(limitSwitch);
if( val != state ){
state = val;
Serial.print("Sensor value = ");
if( state == 0 )
Serial.println( "(0) Target Hit!" );
else
Serial.println( "(1) None");
int val = digitalRead(limitSwitch2);
if( val != state){
state = val;
Serial.print("Sensor2 value =");
if( state == 0 )
Serial.println( "(0) Yes" );
else
Serial.print( "(1) No" );
}
}
}
Вот, с которым работают оба:
void setup() {
Serial.begin(9600);
pinMode(12, INPUT);
pinMode(13, INPUT);
}
void loop() {
if (digitalRead(12) == HIGH && digitalRead(13) == LOW){
Serial.println("Sensor 1 =1");
}else{
Serial.println("Sensor 1 = 0");
}
if (digitalRead(13) == HIGH && digitalRead(12) == LOW){
Serial.println("Sensor 2 =1");
}else{
Serial.println("Sensor 2 = 0");
}
}
Просьба помочь разобраться ... и составить код для расчёта времени.
Составлять код за Вас никто не будет - это Ваша работа. Разобраться - пожалуйста.
Для начала, Вы используете одну и ту же переменную state для двух датчиков. Это неверно. У каждого должны быть своя. Обзовите и там типа state1 и state2 и работайте с каждым датчиком раздельно.
Я понимаю, что составлять буду я. Подскажите, как мне измерить время прохода между датчиками? через переменную millis?
Часы́ — прибор для определения текущего времени суток и измерения продолжительности временных интервалов в единицах, меньших, чем одни сутки.
отсюда.https://ru.wikipedia.org/wiki/%D0%A7%D0%B0%D1%81%D1%8B
вот millis() и есть своебразные часы. Для начала расскажите, как вы измеряете временные промежутки с помощью обычных часов.
Какова скорость обекта?
Используйте прерывания, в обработчике прерывания по первому присваиваете время1=micros(), и время2=micros(), Время прохождения=время2-время1
Ну адальше, как я догадываюсь, хотите расчитать скорость прохождения обьекта?
http://arduino.ru/forum/proekty/khronograf-izmeritel-skorosti-puli-ot-pr...