Strona 1 z 1

Arduino BT - wykrywanie sparowania...

: czwartek 07 lut 2019, 16:05
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

Re: Arduino BT - wykrywanie sparowania...

: czwartek 07 lut 2019, 18:14
autor: pawelsky
Srednik

Re: Arduino BT - wykrywanie sparowania...

: czwartek 07 lut 2019, 18:25
autor: Jakub Jewuła
Obrazek

Dzieki!

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

q

Re: Arduino BT - wykrywanie sparowania...

: środa 13 lut 2019, 20:38
autor: df2
Lepszy BASIC? Z numerowanymi liniami? ;-) ja kiedyś tak myślałem...

Re: Arduino BT - wykrywanie sparowania...

: środa 13 lut 2019, 22:02
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

Re: Arduino BT - wykrywanie sparowania...

: sobota 16 lut 2019, 23:25
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.

Re: Arduino BT - wykrywanie sparowania...

: niedziela 17 lut 2019, 08:01
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

Re: Arduino BT - wykrywanie sparowania...

: niedziela 17 lut 2019, 09:42
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

Re: Arduino BT - wykrywanie sparowania...

: niedziela 17 lut 2019, 13:40
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... ;-)

Re: Arduino BT - wykrywanie sparowania...

: niedziela 17 lut 2019, 18:11
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ć.