Радар для измерения скорости на HC-SR04

goldenGeek2018
Offline
Зарегистрирован: 16.04.2018

Недавно мне захотелось измерять скорость мимо проезжаещих меня объектов(авто, велосипеды, люди...). Я достал из барахолки свою 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()
  }
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

goldenGeek2018 пишет:
Но работает ли это я не знаю((((, так как происходит не понятная мне ошибка...(на 17 строчке).
Она ж у Вас некомпилируется, как же она может работать, чего тут знатть-то?

Функции не бывают вложенными. Исправьте это.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

Функции не бывают вложенными. 

Уже бывают, имя им - лямбда-функции ;) Но вы и так это знаете ;)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, лямбда функции они не вложенные, у них немножко другая природа. Хотя, если хотите их так называть, ... по любому это не имеет отношения к 17-ой строке ТС.