| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| здравей http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14633 |
Страница 1 от 2 |
| Автор: | mirandy [ Вто Юни 14, 2016 9:18 am ] |
| Заглавие: | здравей |
Здравейте. От скоро се занимавам с ардуино, опитвам се да си направя един седем сегментен часовник с температура и срещтнах проблем - за часовника използвам гпс и срещтнах проблем, че когато ми отпадне гпс-а програмата ми забива. Искам да го направя така че когато нямам гпс да ми изписва само температура, но и да мери а не да забива и да ми изписва последната измерена температура както прави сега, а когато се появи гпс-а пак да започне да изписва час и температура. Опитах се с if (uart_gps.available) но не се получава така както аз искам. Благодаря предварително за съдействието! |
|
| Автор: | radolin [ Вто Юни 14, 2016 11:33 am ] |
| Заглавие: | Re: здравей |
Пусни кода за да се види какво прави. |
|
| Автор: | ike [ Вто Юни 14, 2016 12:53 pm ] |
| Заглавие: | Re: здравей |
Преди да почнеш големите проекти, трябва да започнеш първо с малките. Например направи си първо само часовник: http://playground.arduino.cc/Code/Time след това въведи функция примерно на всеки 1 час да се пусна GPS-а докато не получи точно време и това време ъпдейтва с setTime(); Когато и това подкараш, тогава добави и да показва температурата. |
|
| Автор: | mirandy [ Вто Юни 14, 2016 1:48 pm ] | |||||||||
| Заглавие: | Re: здравей | |||||||||
ето това е кода, просто ми се искаше само с гпс да го направя без RTC и когато отпадне гпс-а да си изписва само температура |
||||||||||
| Автор: | Ники [ Вто Юни 14, 2016 2:23 pm ] |
| Заглавие: | Re: здравей |
не съм пускал ардуино и/или гпс. от справката с гугъл "if (uart_gps.available())" не дава отговор дали гпс е отпаднал, а дали има получени данни от гпс, т.е. той може и да не е в обхват, но да връща нещо. Може да си направиш елементарен дебъг, с мигане на светодиод от платката или друг сигнал по твое желание, на кой етап от условието забива програмата: int c = uart_gps.read(); blink_led(1); if (gps.encode(c)) { getgps(gps);blink_led(2); }, |
|
| Автор: | mirandy [ Вто Юни 14, 2016 2:48 pm ] |
| Заглавие: | Re: здравей |
ами самото забиване се получава когато махна от лоопа това else { temp(); } , когато пусна постановката и всичко тръгне с час и температура, и когато откача гпс-а дисплея остава на температура и дотам, изписва последната измерена температура, и когато върна гпс-а пак всичко тръгва по старому което е нещо нормално всъшност |
|
| Автор: | timt [ Вто Юни 14, 2016 3:21 pm ] |
| Заглавие: | Re: здравей |
това ли те мъчи? void loop() { if (uart_gps.available()) { int c = uart_gps.read(); if (gps.encode(c)) { getgps(gps); } } else { temp(); } } |
|
| Автор: | mirandy [ Вто Юни 14, 2016 3:41 pm ] |
| Заглавие: | Re: здравей |
да, че не работи така както аз си мисля че трябва да работи и така както на мен ми се иска да работи |
|
| Автор: | timt [ Вто Юни 14, 2016 3:50 pm ] |
| Заглавие: | Re: здравей |
Ми тука пише ако не ти бачка едното да пусне температурата. Сложи му лед както колегата каза. нещо от този род void loop() { if (uart_gps.available()) { int c = uart_gps.read(); if (gps.encode(c)) { getgps(gps); } } else { temp(); } } else { temp(); } } |
|
| Автор: | mirandy [ Сря Юни 15, 2016 11:18 am ] |
| Заглавие: | Re: здравей |
след като вчера малко като се появиха облаци и гпс-а ми изчезна явно наистина ще трябва да слагам и RTC |
|
| Автор: | Desert Leo [ Сря Юни 15, 2016 11:46 am ] |
| Заглавие: | Re: здравей |
Ми той ГПС си има RTC... |
|
| Автор: | mirandy [ Вто Юни 21, 2016 9:11 am ] |
| Заглавие: | Re: здравей |
Това значи ли, че мога да го използвам дори и да нямам сателити ? |
|
| Автор: | Desert Leo [ Вто Юни 21, 2016 12:03 pm ] |
| Заглавие: | Re: здравей |
Естествено... Тогава ГПС предава дата и час от часовника си. Какъв ГПС използваш? |
|
| Автор: | mirandy [ Вто Юни 21, 2016 12:51 pm ] |
| Заглавие: | Re: здравей |
U blox neo6m |
|
| Автор: | Desert Leo [ Вто Юни 21, 2016 5:37 pm ] | |||||||||
| Заглавие: | Re: здравей | |||||||||
Нямам опит с тези, но едва ли ще са по-различни от Sirf и Mediatek. Просто четеш $GPRMC,... и каквото декодираш като дата и час го изобразяваш на таблото. В началото, при студения старт индикацията няма да е вярна, но после (ако не го изключваш тотално), винаги ще имаш що-годе точно време. |
||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|