• 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
Kilka niezależnych termometrów + lcd
#11
Tak, z wieloma magistralami jest jeszcze prościej, ale nie wiem z czym masz problem na forum, bo przykład jest w bibliotece DallasTemperature Multibus_simple. A do odczytu konkretnego czujnika po numerze SN w Multiple, tu są różne warianty tego programu, zakomentowane/odkomentowane, do szukania/do odczytywania, trzeba rozkminić co do czego i zrobić swój.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#12
(30-03-2022, 15:09)kaczakat napisał(a): Tak, z wieloma magistralami jest jeszcze prościej, ale nie wiem z czym masz problem  na forum, bo przykład jest w bibliotece DallasTemperature Multibus_simple. A do odczytu konkretnego czujnika po numerze  SN w Multiple, tu są różne warianty tego programu, zakomentowane/odkomentowane, do szukania/do odczytywania, trzeba rozkminić co do czego i zrobić swój.
Kod:
//
//

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS_1 2
#define ONE_WIRE_BUS_2 4

OneWire oneWire_in(ONE_WIRE_BUS_1);
OneWire oneWire_out(ONE_WIRE_BUS_2);

DallasTemperature sensor_inhouse(&oneWire_in);
DallasTemperature sensor_outhouse(&oneWire_out);

void setup(void)
{
    Serial.begin(9600);
    Serial.println("Dallas Temperature Control Library Demo - TwoPin_DS18B20");

    sensor_inhouse.begin();
    sensor_outhouse.begin();
}

void loop(void)
{
    Serial.print("Requesting temperatures...");
    sensor_inhouse.requestTemperatures();
    sensor_outhouse.requestTemperatures();
    Serial.println(" done");

    Serial.print("Inhouse: ");
    Serial.println(sensor_inhouse.getTempCByIndex(0));

    Serial.print("Outhouse: ");
    Serial.println(sensor_outhouse.getTempCByIndex(0));
}

wynik:
Requesting temperatures... done
Inhouse: 21.63
Outhouse: -127.00
Requesting temperatures... done
Inhouse: 21.63
Outhouse: -127.00

nie odczytuje drugiej sondy.
odpinam D4 - i w ogóle nie czyta nic
 
Odpowiedź
#13
Idzie na
#define ONE_WIRE_BUS_1 2
#define ONE_WIRE_BUS_2 0

Requesting temperatures... done
Inhouse: 23.06
Outhouse: 21.38


ps. A da się podpiąć 3,4 sondy niezależnie skoro nie czyta na innych pinach?
 
Odpowiedź
#14
DS działa na wszystkich pinach cyfrowych i analogowych (poza A6 i A7 w płaszczaku TQFP, tu jest tylko analog). Nie podpinaj do 0 i 1 bo to jest UART/USB w Arduino. Ale jak masz wgrany kod do Atmegi, która nie używa USB, czyli już na swojej płytce, nie jakieś UNO/NANO, to działa również.
Niektóre piny są "cenniejsze" w Atmega328, jak się da lepiej użyć "zwykłych", 0 i 1 to UART, 2 i 3 to przerwania zewnętrzne, 11,12,13 SPI, A4 i A5 I2C, nie ma to znaczenia, jeśli akurat nie używasz danej funkcjonalności, ale 0 i 1 jest podłączone na płytce do konwertera UART i może się zachowywać dziwnie, szczególnie jeśli drukujesz na serial.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości