• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Balon meteo z GPS, czujnikiem temperatury i wilgotności oraz modułem karty SD
#21
Powiem krótko nie zrozumiałeś co napisałem. Ciągle popełniasz te same błędy. Nie przeczytałeś podstaw programowania. Dalej chcesz uruchomić jednocześnie dwa SoftwareSerial a tak się nie da. Ciągle operujesz na danych lokalnych. Zapisz długość, szerokość, temperaturę i wilgotność do zmiennych globalnych. Będziesz je miał dostępne z każdego miejsca programu, a nie jak trzeba wysłać, to pytasz ponownie GPSa i czujnik o dane i tu chcesz mieć uruchomione jednocześnie właśnie dwa SoftwareSerial.
Spróbuj najpierw wysłać dane SMSem zaraz po ich odczycie mając je zapisane tak jak pisałem do zmiennych globalnych.
 
Odpowiedź
#22
(19-10-2020, 20:59)Agregacik napisał(a): Powiem krótko nie zrozumiałeś co napisałem. Ciągle popełniasz te same błędy.  Nie przeczytałeś podstaw programowania. Dalej chcesz uruchomić jednocześnie dwa SoftwareSerial a tak się nie da. Ciągle operujesz na danych lokalnych. Zapisz długość, szerokość, temperaturę i wilgotność do zmiennych globalnych. Będziesz je miał dostępne z każdego miejsca programu, a nie jak trzeba wysłać, to pytasz ponownie GPSa i czujnik o dane i tu chcesz mieć uruchomione jednocześnie właśnie dwa SoftwareSerial.
Spróbuj najpierw wysłać dane SMSem zaraz po ich odczycie mając je zapisane tak jak pisałem do zmiennych globalnych.

Okej, teraz zrozumiałem. Smile
 
Odpowiedź
#23
Dodam jeszcze, że przerwania trzeba używać z rozwagą. W przerwaniu wykonuje się kilka operacji a nie całe bloki instrukcji . Przerwania zatrzymują czas systemowy więc millis nie działa. W funkcji przerwania możesz skierować program na inne tory czyli zmieniasz zwrotnice i program, po dokończeniu tego co mu przerwałeś, pojedzie inną drogą. Z tego wniosek, że program musi być napisany tak aby zawierał warianty działania czyli "podprogramy" które wywołuje się w zależności od sytuacji. Np przyjdzie ring od gsm więc można zmienić w przerwaniu wartość jakiejś zmiennej np z 0 na 1 można to nazwać flagą. Program co obieg pętli LOOP sprawdza wartość tej zmiennej i reaguje na jej zmianę.
Sklejanie programu z kilku przykładów nie jest takie proste, trzeba wiedzieć co jest co w programie i z głową to modyfikować i sklejać. Nie na zasadzie a dopiszę jedno po drugim albo wsadzę to tu bo mi tak się wydaje, że tak będzie działać.
Nawet doświadczony programista, stary wyjadacz, niejednokrotnie może się naciąć na tym, że coś przeoczył i program poszedł w krzaki.
 
Odpowiedź
#24
(20-10-2020, 09:03)Agregacik napisał(a): Dodam jeszcze, że przerwania trzeba używać z rozwagą. W przerwaniu wykonuje się kilka operacji a nie całe bloki instrukcji . Przerwania zatrzymują czas systemowy więc millis nie działa.  W funkcji przerwania możesz skierować program na inne tory czyli zmieniasz zwrotnice i program, po dokończeniu tego co mu przerwałeś, pojedzie inną drogą. Z tego wniosek, że program musi być napisany tak aby zawierał warianty działania czyli "podprogramy" które wywołuje się  w zależności od sytuacji. Np przyjdzie ring od gsm więc można zmienić w przerwaniu wartość jakiejś zmiennej np z 0 na 1  można to nazwać flagą. Program co obieg pętli LOOP sprawdza wartość tej zmiennej i reaguje na jej zmianę.
Sklejanie programu z kilku przykładów nie jest takie proste, trzeba wiedzieć co jest co w programie i z głową to modyfikować i sklejać. Nie na zasadzie a dopiszę jedno po drugim albo wsadzę to tu bo mi tak się wydaje, że tak będzie działać.
Nawet doświadczony programista, stary wyjadacz, niejednokrotnie może się naciąć na tym, że coś przeoczył i program poszedł w krzaki.

Przeszedłem na Arduino MEGA.

Czy w takim razie należy coś zmienić w kodzie czy programowanie przebiega tak samo?
Użyłem poprzedniego programu natomiast nic się nie dzieje. 
Czy są jakieś specjalne zalecenia do pisania programu w MEGA?
 
Odpowiedź
#25
po prostu użyj sprzętowych rs.... mega ma ich aż 4
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#26
W mega są, tak pisze Jarewa0606, cztery sprzętowe. Serial, Serial1, Serial2 i Serial3. Serial zostaw sobie do SerialPrint czyli do wyświetlania na konsolę, a pozostałe do pozostałych zastosowań. Popatrz gdzie są wyjścia poszczególnych Seriali i tam podłącz odpowiednio urządzenia. W kodzie trzeba je odpowiednio nazwać, czyli Serlial1 iSerial2 itd.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości