Расчёт времени между 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...