Arduino BT - wykrywanie sparowania...

Elektronika w modelu i na ziemi

Moderatorzy: moderatorzy2014, moderatorzy

Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Arduino BT - wykrywanie sparowania...

Post autor: Jakub Jewuła »

HEJ

Podlaczylem do Arduino BT zeby przesylac sobie dane radiem a nie gonic po karte SD.
Transmisja dziala. Brakuje mi tylko jednego - jak z poziomu Arduino rozpoznac ze:
a) cos sie sparowalo z BT,
b) terminal na tym czyms jest gotowy do odbioru danych.
...
PS. OK wiem. Pin STATE przyjmuje wartosc HIGH jesli adapter jest sparowany ORAZ jest aktywny terminal odbierajacy...
Fajnie :)

Nie do konca, zawiesilem sie na tym, ze warunek IF sprawdzajacy czy STATE=HIGH nie dziala poprawnie.

Podlaczylem STATE do wejscia analogowego 2, gdy STATE = high, wartosc odczytu wynosi u mnie 667.

Kod: Zaznacz cały

    if (analogRead(2) > 500); {
      if (SD.begin(10)) { // jesli jest karta
        File dataFile = SD.open("pomiary.csv");
        if (dataFile) {
          LCD_Line1("Przesylam dane  ");
          LCD_Line2("przez BT        ");
          while (dataFile.available()) {
            Serial3.write(dataFile.read());}
          dataFile.close();
          delay(100);
        }

      }

    }
Problem w tym, ze analogRead(2) = 0 a mimo to, zawarosc IF jest realizowana - program probuje wyslac dane na BT...

Zglupialem - dlaczego program wchodzi w IF pomimo niespelnienia warunku?

q
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: Arduino BT - wykrywanie sparowania...

Post autor: pawelsky »

Srednik
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Arduino BT - wykrywanie sparowania...

Post autor: Jakub Jewuła »

Obrazek

Dzieki!

Jak ja nie cierpie skladni C++. Po grzyba te sredniki i klamry? :(

q
df2
Posty: 672
Rejestracja: poniedziałek 05 maja 2014, 21:11
Lokalizacja: Biała Podlasla

Re: Arduino BT - wykrywanie sparowania...

Post autor: df2 »

Lepszy BASIC? Z numerowanymi liniami? ;-) ja kiedyś tak myślałem...
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Arduino BT - wykrywanie sparowania...

Post autor: Jakub Jewuła »

Nie - Brainfuck jest lepszy.

A powazniej - potrafisz podac jakis racjonalny powod dla uzywania {}? Ja nie.

Gdyby zamiast :

Kod: Zaznacz cały

if {
   cos tam
   }
   else
   {
   cos tam
   }
bylo:

Kod: Zaznacz cały

if 
   cos tam
else
   cos tam
endif
To co zlego by sie stalo? Program bylby czytelniejszy.

Ile ja czasu zmarnowalem szukajac bledu gdy jaka pier....a klamerka byla w zlym miejscu...

q
df2
Posty: 672
Rejestracja: poniedziałek 05 maja 2014, 21:11
Lokalizacja: Biała Podlasla

Re: Arduino BT - wykrywanie sparowania...

Post autor: df2 »

Tak. Brainfuck rządzi. Aż mi się przypomniało pisanie os dla risc na laborkach... ;-)

Klamerki to takie podprocedury.
Wystarczy zastosować wcięcia podczas pisania programu i wszystko staje się czytelne.

Jeśli masz tylko jedną instrukcję do wykonania warunkowego, to są niepotrzebne - można tak się umówić.

Ale ktoś o tym dużo myślał i są, bo są potrzebne. Da się wszystko zrobić pewnie też w innym języku. Ale przyzwyczaisz się, zobaczysz.


BTW do Twojego przykładu wcięcia aż się proszą, kod byłby czytelniejszy i uniknalbys błędu.
Jakub Jewuła
Posty: 1867
Rejestracja: poniedziałek 12 lip 2010, 11:51
Lokalizacja: Kraków

Re: Arduino BT - wykrywanie sparowania...

Post autor: Jakub Jewuła »

Ja mam przeciwne wrażenie - im więcej zagnieżdżonych warunków tym ciemniej mi się przed oczami robi od samych klamerek :)

Żeby potem jeszcze kompilator dawał jednoznaczny komunikat o błędzie, ale nie - to by było zbyt proste :)
Pluje się, że błąd, szukam pół godziny - okazuje się, ze któraś z dziesięciu klamerek jest w złym miejscu :)
Co gorsza złe postawienie klamerki może nie generować błędu tylko ominiecie warunku etc...

W desperacji zacząłem nawet myśleć o napisaniu translatora z języka ludzkiego na klamerekowy - żeby można
było pisać kod po ludzku, a przed kompilowaniem translator tłumaczył na mudźiński ;)

q
kuczy
Posty: 2199
Rejestracja: wtorek 17 lis 2015, 22:03

Re: Arduino BT - wykrywanie sparowania...

Post autor: kuczy »

Jakub Jewuła, jak będziesz pisał w jakimś innym edytorze - na inne procki (chociaz pewnie na ardu tez sie da), to klamerki pozwolą na "zwiniecie" kodu ktory ciebie aktualnie nie interesuje, albo zaznaczenie gdzie jest "zasieg" danej klamerki.

Ja ostatnio pisałem w Pythonie Bardzo prostą apke i juz się zacząłem wkurzac na wcięcia - póki piszesz kod bez zmian to jest ok, ale jak część kodu chcesz objąć po jego napisaniu osobnym warunkiem, albo dwoma zagniezdzonymi - to cholera bierze z tymi wcięciami - więcej czasu zajmuje taka kosmetyka aniżeli dodanie 2-4 klamr.
- Oczywiście przy klamrach też wcinam kod, ale najczęściej taką kosmetykę stosuję na koniec, i bez znaczenia jest czy dam jednego "taba" dwie czy trzy spacje czy ktokolwiek... byle było czytelne
Awatar użytkownika
pawelsky
Posty: 9750
Rejestracja: środa 19 mar 2014, 02:03
Lokalizacja: Polska
Kontakt:

Re: Arduino BT - wykrywanie sparowania...

Post autor: pawelsky »

Jakub Jewuła pisze:W desperacji zacząłem nawet myśleć o napisaniu translatora z języka ludzkiego na klamerekowy - żeby można
było pisać kod po ludzku, a przed kompilowaniem translator tłumaczył na mudźiński ;)
Przychodzi na mysl powiedzenie o pewnej baletnicy... ;-)
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Re: Arduino BT - wykrywanie sparowania...

Post autor: majek »

Jak ktoś próbuje wbijać gwoździe kuflem od piwa, to wiadomo, że nie obędzie się bez problemów ;)

Trzeba po prostu odpowiedniego narzędzia do danej pracy. W tym wypadku trzeba po prostu zacząć używać jakiegoś edytora dla programistów, który bedzie sam uzupełniał nawiasy, wciecia, podświetlał i podpowiadał składnię.
U mnie w pracy większość używa Atom-a (jest na każdy system).
Ja osobiście używam Notepadqq, bo jest mniejszy i nie przeszkadza mi brak pewnych 'ficzerów'. Ale składnię podświetla, a sekcje jest w stanie pozwijać.
ODPOWIEDZ