Arduino - addDS18B20Thermometer

Yepestis
Posts: 890
Joined: Mon Sep 24, 2018 6:08 pm
Location: Wrocław
Has thanked: 19 times
Been thanked: 3 times

Post

Jest to mój pierwszy post na forum zatem witam wszystkich serdecznie.

Przygodę z Suplą zacząłem stosunkowo niedawno. Obecnie próbuję zaimplementować odczyt temperatury z wykorzystaniem protokołu modbus.
Napotkałem jednak problem przy próbie dodania do Supli większej ilości termometrów DS18B20 (tylko takie są obsługiwane).

Zanim zabiorę się za komunikację przez Modbus postanowiłem przetestować samą funkcjonalność dodawania większej ilości termometrów.
Na potrzeby testu zamiast fizycznej temperatury próbuję wyświetlić wartości odczytane z portów analogowych Arduino Mega.

Stworzyłem 5 kanałów:

Code: Select all

  SuplaDevice.addDS18B20Thermometer(); //CHANNEL 0
  SuplaDevice.addDS18B20Thermometer(); //CHANNEL 1
  SuplaDevice.addDS18B20Thermometer(); //CHANNEL 2
  SuplaDevice.addDS18B20Thermometer(); //CHANNEL 3
  SuplaDevice.addDS18B20Thermometer(); //CHANNEL 4
Dodatkowo zarejestrowałem callback:

Code: Select all

  // Set temperature callback
  SuplaDevice.setTemperatureCallback(&get_temperature);
Oraz napisałem poniższy kawałek kodu:

Code: Select all

// DS18B20 Sensor read implementation
double get_temperature(int channelNumber, double last_val)
{

  double t = -99;

  if (channelNumber == 0 )
  {
    t = analogRead(0);
  }
  else if (channelNumber == 1 )
  {
    t =  analogRead(1);
  }
  else if (channelNumber == 2 )
  {
    t = analogRead(2);
  }
  else if (channelNumber == 3 )
  {
    t = analogRead(3);
  }
  else if (channelNumber == 4 )
  {
    t = analogRead(4);
  }
  else
  {
    t = -98;
  }

  return t;
}
Pierwszy odczyt jest prawidłowy, lecz pojawia się problem przy kolejnych. Odświeżane są tylko dwa pierwsze kanały a na pozostałych trzech wartości pozostają bez zmian.

Proszę o pomoc doświadczonych kolegów w znalezieniu problemu.
Próbowałem podpinać serial monitor o otrzymywałem komunikaty że wartości zostały zaktualizowane (Value changed) dla wszystkich pięciu kanałów. Nie miało to jednak odzwierciedlenia w Supla Claud oraz aplikacji mobilnej.
User avatar
Piotr61
Posts: 61
Joined: Fri Sep 15, 2017 12:59 pm

Post

Yepestis wrote: Mon Sep 24, 2018 6:27 pm ...
Proszę o pomoc doświadczonych kolegów w znalezieniu problemu.
...
Problem wielokrotnie poruszany na forum.
Rozwiązania na razie nikt nie podał, choć zapewne istnieje. :idea:
viewtopic.php?p=26135#p26135
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem
alankedzior
Posts: 114
Joined: Mon Jun 18, 2018 5:38 pm

Post

Sprawdź w porcie szeregowym programem do indeksowania termometrow czy wszystkie termometry są widoczne, być możliwe zbyt słabe połączenie ja tak miałem
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Dodaj wrzucanie wyników na konsolę i sprawdź czy w ogóle termometry zwracają poprawne dane.
SUPLA.... Nareszcie w domu.

Return to “Ogólna dyskusja”