Радар для измерения скорости на HC-SR04
- Войдите на сайт для отправки комментариев
Пнд, 16/04/2018 - 21:21
Недавно мне захотелось измерять скорость мимо проезжаещих меня объектов(авто, велосипеды, люди...). Я достал из барахолки свою Arduino Mega и дальномер HC-SR04.
Измерять я собирался следующим путём, у меня есть заданное расстояние(dist), с которого МК должен засекать время до расстояния финиша(distSTOP). Проблема была вот в чём, мне нужно было как-нибудь запомнить время millis сначала и с финиша. Я это сделал с помощью создания новой переменной, суммой которой была 0 + millis. Но работает ли это я не знаю((((, так как происходит не понятная мне ошибка...(на 17 строчке).
Вот мой код:
// Подключаем библиотеку: #include <iarduino_HC_SR04.h> // подключаем библиотеку для работы с датчиком iarduino_HC_SR04 hcsr(12,9); bool led_stat = true; // объявляем переменную для работы с датчиком, указывая номера arduino подключенные к выводам TRIG и ECHO датчика byte led = 13; int dist = 80; int distSTOP = 40; unsigned long nextTime; void setup(){ Serial.begin(9600);// инициализация передачи данных по COM-порту pinMode(led, OUTPUT); int S = dist - distSTOP; } void loop(){ void function_metringT(){ if (nextTime <= millis()) { Trec = millis() + 0; if (hcsr.distance <= distSTOP()){ T = millis() - Trec; return function_V(); } } } void function_V(){ V = S / T; Serial.print("SPEED = "); Serial.println(T); } if (nextTime <= millis()) { digitalWrite(led, led_stat); led_stat = !led_stat; nextTime = millis() + 5000; } if (hcsr.distance <= dist()){ function_metringT() } }
Функции не бывают вложенными. Исправьте это.
Функции не бывают вложенными.
Уже бывают, имя им - лямбда-функции ;) Но вы и так это знаете ;)
Ну, лямбда функции они не вложенные, у них немножко другая природа. Хотя, если хотите их так называть, ... по любому это не имеет отношения к 17-ой строке ТС.