Нужна помощь по сравнению
- Войдите на сайт для отправки комментариев
Ср, 12/11/2014 - 02:08
Добрый день!Подскажите как на ардуине сравнить показание скорости с Gps модуля.
Скетч залил через монитор вижу каждую секунду измение чисел а как написать сранение этих величин?
Грубо говоря чтобы если скорость больше 60 км загорался светодиод на канале 12 горел секунды 4 и тух а если скорость падает ниже 60 то загорается светодиод на канале 11
Вот скет
#include <SoftwareSerial.h> #include <TinyGPS.h> TinyGPS gps; SoftwareSerial ssGPS(2, 3); static void print_float(float val, float invalid, int len, int prec); static void print_int(unsigned long val, unsigned long invalid, int len); static void print_date(TinyGPS &gps); static void print_str(const char *str, int len); void setup() {pinMode(11, OUTPUT); Serial.begin(9600); Serial.println(" Speed сука"); Serial.println("-----"); ssGPS.begin(9600); } void loop() { float flat, flon; unsigned long date, time; print_float(gps.f_speed_kmph(), TinyGPS::GPS_INVALID_F_SPEED, 6, 2); //Скорость Serial.println(); if (gps.f_speed_kmph() > 60) { digitalWrite(11, HIGH); // turn the LED on (HIGH is the voltage level) delay(2000); // wait for a second digitalWrite(11, LOW); // turn the LED off by making the voltage LOW delay(10); } smartdelay(500); } static void smartdelay(unsigned long ms) { unsigned long start = millis(); do { while (ssGPS.available()) gps.encode(ssGPS.read()); } while (millis() - start < ms); } static void print_float(float val, float invalid, int len, int prec) { if (val == invalid) { while (len-- > 1) Serial.print('9'); Serial.print(' '); Serial.print(prec); } else { Serial.print(val, prec); int vi = abs((int)val); int flen = prec + (val < 0.0 ? 2 : 1); // . and - flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1; for (int i=flen; i<len; ++i) Serial.print(' '); } }я так понимаю это исходя из координат,но можно же как то проще....
с GPS приходят значения скорости,как их сравнить между собой.
Я просто новичок и не могу сам разобраться....(((
В строке 30 сравнение скорости - если больше загорается 11 светодиод, горит 2 секунды и тухнет. Меняете там 11 на 12, добавляете отключение 11 светодиода, добавляете к условию else где включаете 11 светодиод, потому что если скорость не больше 60 он должен гореть.
Простите я не совсем понял алгоритм.
я пытаюсь добиться того что при достижении 60 он загорался на 2 секунды и тух и в последствии не загорался больше пока будут приходить значения больше 60км и как только скорость опускается ниже 60 то загорается другой тоже на 2 секунды и тоже тухет только 1 раз
Тогда добавь глобальные переменные для флагов, например.
а можно пример,а то я не понимаю(
а можно пример,а то я не понимаю(
примеры сравнений в ардуинку да пожалуйсто
вам такой простой код дали
может вам лучше в тему Ищу исполнителя?
а по проще то)
1000 строк кода это перебор)
может кто нить за денежку поможет?мне срочно надоо
Для art100. Приведёный пример не компилируется: error: 'EXTRUDERS' was not declared in this scope