Jak odczytać adres czujnika DS18B20

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 25 maja 2018, 20:45

Cześć majsterkowicze !!!
Chciałem odczytać adres czujnika ds18b20,znalazłem skrypt w netku do odczytu ale coś mi wywala że coś nie tak.
Macie może jakiś sprawdzony,aby można było to wykonać.
Mam ardu uno r3

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Jak odczytać adres czujnika DS18B20

Post autor: ethanak » 25 maja 2018, 23:00

Ja też znalazłem skrypt w netku, i coś mi nie wywala... i też mam ardu uno r3... ciekawe czy to ten sam.
Może jakbyś ten skrypt pokazał to byśmy coś więcej powiedzieli?
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 26 maja 2018, 00:19

Poprawione w #7
Ostatnio zmieniony 26 maja 2018, 11:44 przez semaforek, łącznie zmieniany 1 raz.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Jak odczytać adres czujnika DS18B20

Post autor: ethanak » 26 maja 2018, 05:41

Kur... co za maniera, zamiast najpierw przeczytać jak się kody zamieszcza to będzie pchał na siłę a potem się dziwił, że mu nie pomagają. Wysyp przedszkolaków jakichś czy co? Komunikatów błędów też nie zamieści tylko mamy się domyślać?
Mi się ta linijka podoba, a Ty za to:
a) popraw ten post zamieszczając kod programu w znacznikach [code], bo bez tego nie przekleję do swojego edytora;
b) zaznacz w preferencjach wyświetlanie wszystkich błędów, zobacz co Ci kompilator na temat tej linijki wyświetla i zamieść tutaj komunikat.
Niestety - wróżki to na Onecie...
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
Awatar użytkownika
macin
Majsterkowicz
Posty: 190
Rejestracja: 1 lip 2012, 11:24
Lokalizacja: Bydgoszcz

Re: Jak odczytać adres czujnika DS18B20

Post autor: macin » 26 maja 2018, 08:49

Podpowiedz, jak wyświetla się tablice w serial monitorze?
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Jak odczytać adres czujnika DS18B20

Post autor: ethanak » 26 maja 2018, 08:52

Dokładnie tak, jak w kodzie zaprezentowanym wyżej.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 26 maja 2018, 11:42

No i się mi dostało ;-( zimny prysznic jak nic ,dobrze że na dworze ciepło.
ethanak pisze:Wysyp przedszkolaków jakichś czy co?
To prawda ......ardu(klon) mam od dwóch dni ,miało być prosto łatwo i przyjemnie ,a już schody zaczęły się od drivera pod CH340G ,ale dzięki forum udało się.
Monitor portu nic nie wyświetla.
Błędy to :
sketch_may26a:8: error: 'OneWire' does not name a type
sketch_may26a.ino: In function 'void loop()':
sketch_may26a:20: error: 'onewire' was not declared in this scope
sketch_may26a:26: error: 'OneWire' has not been declared

Kod: Zaznacz cały

// Czytnik numerów seryjnych czujników DS18B20

#include <OneWire.h>

// Numer pinu cyfrowego do którego podłaczyłęś czujniki
const byte ONEWIRE_PIN = 2;

OneWire onewire(ONEWIRE_PIN);

void setup()
{
  while(!Serial);
  Serial.begin(9600);
}

void loop()
{
  byte address[8];

  onewire.reset_search();
  while(onewire.search(address))
  {
    if (address[0] != 0x28)
      continue;

    if (OneWire::crc8(address, 7) != address[7])
    {
      Serial.println(F("Błędny adres, sprawdz polaczenia"));
      break;
    }

    for (byte i=0; i<8; i++)
    {
      Serial.print(F("0x"));
      Serial.print(address[i], HEX);

      if (i < 7)
        Serial.print(F(", "));
    }
    Serial.println();
  }

  while(1);
}
Jeszcze raz sorki...:)))) thx.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Jak odczytać adres czujnika DS18B20

Post autor: ethanak » 26 maja 2018, 12:51

Nie mam teraz dostępu do kompa, sprawdzę pod wieczór ale wydaje mi się, że kod jest prawidłowy (sam z podobnego korzystam).
Na pewno masz bibliotekę OneWire?
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 26 maja 2018, 13:15

Dziękuje za odpowiedź.
Biblioteka OneWire.zip wersja 2.2 ze stronki.akademia.nettigo
Awatar użytkownika
Marhef
Złota rączka
Posty: 1140
Rejestracja: 18 lis 2011, 02:18

Re: Jak odczytać adres czujnika DS18B20

Post autor: Marhef » 26 maja 2018, 14:18

A w jaki sposób dodałeś bibliotekę? I z której wersji arduino ide korzystasz?

Dodane po kilku minutach:
sprawdziłem z arduino ide w wersji 1.8.5. Dodałem bibliotekę przez szkic -> dołącz bibliotekę -> dodaj bibliotekę .zip (biblioteka z podanej przez Ciebie strony).
Wynik: program skompilowany.

Podejrzenie:
1) źle dodana biblioteka
2) zdublowana biblioteka
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 26 maja 2018, 15:47

Hej :)
Ardu wer.1.0.6.....wcześniej miałem wyższe wersje ale win XP ich nie widział. zainstalowałem jakiś drivera pod CH340G polecony tu na forum i jakoś ruszyło,ale chyba coś się gryzie.
Biblioteki importowałem przez IDE >szkic > add ......
Walczę.... są postępy zmieniłem biblioteke DS
Obecnie mam instalkę :
OneWire wersja 2.2
DS18B20 wersja 1.0
Wszystko się kompiluje ale jest kilka wpisów na czerwono :

Przykład "C:\Program Files\Arduino\hardware\arduino\cores\arduino\Stream.cpp: In member function 'bool Stream::find(char*)':
C:\Program Files\Arduino\hardware\arduino\cores\arduino\Stream.cpp:78: warning: deprecated conversion from string constant to 'char*'

Ładowanie mimo wszystko do ardu zakończone powodzeniem !
Jest podgląd w monitorze , temp.pokazuje w porządku,ale odświeżanie linii jest bardzo szybkie leci jak wariat,w tutku na filmie wskazania są co sek.
Czyli u mnie coś nie tak.
Generalnie widzę że całość nie pracuje stabilnie.
Czy to wina Ardu-klonu on jest na kontrolerze CH340G , czy win XP 32,czy bibliotek,albo drivera. ?
A miało być tak pięknie eh.....;-((
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Jak odczytać adres czujnika DS18B20

Post autor: ethanak » 26 maja 2018, 18:10

Nie - wina jest tego, że upierasz się aby korzystać z IDE sprzed kilku lat, w międzyczasie wiele się zmieniło i obowiązującą wersją jest 1.8.x
Rozumiem, że masz pirackiego XP i nie możesz zainstalować nowszej wersji?
Tak przy okazji - ten czerwony wpis to jest ostrzeżenie, da się z tym żyć jeśli się nie potrafi poprawić.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 26 maja 2018, 19:53

ethanak pisze:Rozumiem, że masz pirackiego XP i nie możesz zainstalować nowszej wersji?
Proszę cię nie wrzucaj wszystkich do jednego worka,bo to nie ładnie.
Najnowsza 1.8.5. w ogóle nie chce mi się zainstalować .
A z inną niższą wersją nie mogłem zainstalować drivera pod usb.
ten czerwony wpis to jest ostrzeżenie, da się z tym żyć jeśli się nie potrafi poprawić.
Nie potrafię więc będę musiał jakoś z tym żyć.
Widzę że wiesz jak pomóc ale nie bardzo chcesz o-key.
Ale pamiętaj: " Kto chce być Wielki w wielkiej sprawie ,powinien być i Wielki w małej sprawie" i tego Ci życzę.

A ja walczę dalej :-)
Awatar użytkownika
macin
Majsterkowicz
Posty: 190
Rejestracja: 1 lip 2012, 11:24
Lokalizacja: Bydgoszcz

Re: Jak odczytać adres czujnika DS18B20

Post autor: macin » 26 maja 2018, 20:15

ethanak pisze:
26 maja 2018, 08:52
Dokładnie tak, jak w kodzie zaprezentowanym wyżej.
ok masz rację, przy wklejonym kodzie w "...Serial.print(address, HEX);..." nie było nawiasu kwadratowego i "i". Dlatego wyświetlał się błąd u mnie. :). A teraz gdy piszę odpowiedz, w podglądzie widzę że ucina znaki.

Edit:
semaforek może spróbujesz pobrać wersję bez instalacji w paczce zip i zobaczyć czy najnowsza wersja arduino ide uruchomi się bez problemów. Z tym szybkim wyświetlaniem w serial monitorze spowodowane jest tym, że kodzie nie masz żadnego opóźnienia i program "jedzie całą parą".
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 26 maja 2018, 22:34

Dobrze macin już się biorę za sprawdzenie :)
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 27 maja 2018, 00:23

Jes jes jes !!! superowo wszystko chodzi ,miodzio :-)
Zrobiłem jak pisałeś + zamieniłem na inne wejście USB teraz chyba mam na 2.0
Nic nie wywala żadnych błędów i co najważniejsze mam wer.1.8.3
Ślicznie Wam dziękuję bez Was musiałbym skorzystać z młotka 2.5kg i było by po sprawie.
A tak przygoda z ardu się zaczyna ,choć schody przede mną i to nie jedne pewnie.

ethanak ; Marhef ; macin -thx pozdrawiam.
Awatar użytkownika
macin
Majsterkowicz
Posty: 190
Rejestracja: 1 lip 2012, 11:24
Lokalizacja: Bydgoszcz

Re: Jak odczytać adres czujnika DS18B20

Post autor: macin » 27 maja 2018, 08:36

to powodzenia w nauce :)
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Jak odczytać adres czujnika DS18B20

Post autor: ethanak » 27 maja 2018, 09:01

I jeszcze jedno: ostrzeżenia są po to aby je czytać. Czasami można je olać (kiedy np. kompilator ma podejrzenie że nie o to Ci chodziło, ale konstrukcja jest ogólnie prawidłowa) - ale w większości przypadków coś jest nie tak. I to, że program się skompiluje i nawet uruchomi nie oznacza jeszcze, że będzie działał prawidłowo.
Dam ci przykład:

Kod: Zaznacz cały

while (x == 1) 
to całkiem prawidłowy zapis, wykonujący pętlę dopóki x jest równe 1.

Kod: Zaznacz cały

while (x = 1)
to też całkiem prawidłowy zapis, w którym następuje podstawienie 1 do x, a pętla będzie się wykonywać bez końca.
W drugim przypadku kompilator wyświetli ostrzeżenie, bo konstrukcja jest rzadko spotykana i zakłada, że pewnie nie o nią Ci chodziło.

W Twoim przypadku była to po prostu przestarzała wersja IDE :)
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
semaforek
Młodszy majsterkowicz
Posty: 9
Rejestracja: 25 maja 2018, 20:15

Re: Jak odczytać adres czujnika DS18B20

Post autor: semaforek » 27 maja 2018, 11:56

O operatorach: równości i przypisania już obczytałem,szkoda że nie jest na odwrót,byłoby logiczniej.
Uczę się ale idzie opornie.;-(
Opanowanie całego C;C++ to mnie przerasta z różnych powodów.
Ale wiadomo podstawy ,zasady i reguły muszę chociaż pobieżnie poznać.
Następnie to analiza konkretnych bardziej złożonych projektów,tutków pod moje majsterkowanie,dociekanie dlaczego tak a nie inaczej.
No lekko nie będzie teraz widzę ogrom tego wszystkiego .szacun wielki dla tych wszystkich co mają to opanowane.

Pozdrawiam.
ODPOWIEDZ

Strony partnerskie: