Радар для измерения скорости на 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-ой строке ТС.