Нужно 2 скетча (Плачу деньгами :) )

svi
Offline
Зарегистрирован: 19.10.2017

Добрый день товарищи. Только только начал осваивать Ардуино, но уже требуются устройства неподсильные мне (точнее нехватает времени на изучение).

И так задача номер ОДИН:

Нужно записывать в переменную скорость с GPS модуля. Какой модуль выбрать тоже не знаю. Нужна стабильность работы. Один из примеров приминения это GPS спидометр. У меня есть в наличии GY-NEO6MV2, пойдет ли он или есть что то лучше в приделах 1000руб

Задача номер ДВА:

Нужно записывать в переменую частоту прямоугольных импульсов от 0Гц до 1500Гц с точностью в 1-3%

 

Green
Offline
Зарегистрирован: 01.10.2015

Пишите htpicc@gmail.com, обсудим.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Пойдет, как и любой другой GPS модуль.

Как раз больший интерес представляет задача 2. Уточните для себя ну и исполнителей каков должен быть нижний порог чувствительности, это ОЧЕНЬ важно. Иными словами ответьте на два вопроса, с какой точностью вы хотите измерять нижнюю частоту вашего диапазона (до единиц десятых... сотых... тысячных герца). С какой частотой хотите получать актуальные данные измерения (раз в секунду, 10 раз в секунду, 100 раз в секунду, 1000 раз в секунду и т.д.)

И если не сложно, каков бюджет ?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Вот так получите скорость в узлах:

#include <SoftwareSerial.h>
#include <TinyGPS.h>

SoftwareSerial mySerial(3, 4); // RX, TX
TinyGPS gps;
unsigned long curSpeed=0; // буфер скорости в формате (узлы * 100)

void setup()  {
  mySerial.begin(9600);
}

void loop() {
  if (mySerial.available()) {
    char c = mySerial.read();
    if (gps.encode(c)) {
       curSpeed=gps.speed();  
    }
  }
}

Как перевести в км/час разберетесь ?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну а вот тоже, но с измерением частоты:

#include <SoftwareSerial.h>
#include <TinyGPS.h>

SoftwareSerial mySerial(3, 4); // RX, TX
TinyGPS gps;
unsigned long curSpeed=0; // буфер скорости в формате (узлы * 100)
unsigned long freq=0; // буфер частоты импульсов

void setup()  {
  mySerial.begin(9600);
  pinMode(5, INPUT); // читаем импульсы на пятой ножке
}

void loop() {

  // GPS
  while (mySerial.available()) {
    char c = mySerial.read();
    if (gps.encode(c)) {
       curSpeed=gps.speed();  
    }
  }
 
  // чтение частоты импульсов
  unsigned long duration = pulseIn(5, HIGH);
  duration += pulseIn(5, LOW);
  if (duration) {
     freq=1000000/duration;
  } else {
     freq=0;
  }

}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Брукли, не путай новичков. Они сюда идут за возмездной помощью.

А то так будут халявщики по всем веткам метать свои хотелки.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Да блин, человек просит то хрень, за это деньги брать стремно :( Попросишь 300 рублей они и будут считать , что все столько, в пределах 300 рублей, и стоит.

Да и это у меня редкое явление, седня "день альтруиста", а завтра начну всех щемать :)

sadman41
Offline
Зарегистрирован: 19.10.2016

А так будут считать, что ничего не стоит ;) И стимула учить что-то - не будет.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну как это. И кнут и пряник. Сеня пряник, завтра кнут. Хотя все это при желании можно было найти в инете. С другой стороны тут все слишком упрощено, есть тонкие моменты, за деньги это будет сложнее, но правильнее и надежнее.

sadman41
Offline
Зарегистрирован: 19.10.2016

В халявном скетче и миллис обнулить не зазорно ;)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

sadman41 пишет:

В халявном скетче и миллис обнулить не зазорно ;)

Блин, хороший ход...

extern volatile unsigned long timer0_millis;
timer0_millis=0;

Вот так ?

Green
Offline
Зарегистрирован: 01.10.2015

Только что это даст? Я зачастую вообще миллисом не пользуюсь.)

Green
Offline
Зарегистрирован: 01.10.2015

Лучше уж укоротить. Что бы скорее переполнился.)))

svi
Offline
Зарегистрирован: 19.10.2017

По поводу точности измерения частоты то от 0 до 20Гц можно даже +-1Гц (главное что бы при 0 был 0) а выше то +-0.1Гц

По поводу частоты обновления данных, то 10 раз в секунду было бы идеально

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

svi пишет:

По поводу точности измерения частоты то от 0 до 20Гц можно даже +-1Гц (главное что бы при 0 был 0) а выше то +-0.1Гц

По поводу частоты обновления данных, то 10 раз в секунду было бы идеально

Зачем такими громкими буквами писать !?

Я же вам готовый скетч нарисовал, что то не так ?

svi
Offline
Зарегистрирован: 19.10.2017

Извеняюсь за такие буквы, пишу в попыхах с работы. Уточнил так вообще на всякий пожарный)))

За скетчи огромное спасибо, буду пробовать. Но не мог ли ты оставить мне свои контакты если что подсказывать в непонятных моментах. (естественно  не бесплатно, так же хотябы на телефон готов положить денег и за эти скетчи)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Мои координаты есть в самой верхней прикрепленной теме, в этом разделе. brokly(at)mail.ru