а если нужно 3 датчика ?
где поправить ?
Код:
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(3);// вход датчиков 18b20
DallasTemperature ds(&oneWire);
byte qty; // количество градусников на шине
void setup() {
Serial.begin(9600);
ds.begin();
qty = ds.getDeviceCount();
}
void loop() {
ds.requestTemperatures(); // считываем температуру с датчиков
for (int i = 0; i < qty; i++){ // крутим цикл
if( i==1) // ставим 1 или 0 в зависимости от того какой датчик для улицы
{{
Serial.print("<Ulica: ");
Serial.print(ds.getTempCByIndex(i));
}
Serial.println(">");
Serial.println();
}
if( i==0) // ставим 1 или 0 в зависимости от того какой датчик для сална
{{
Serial.print("<Salon: ");
Serial.print(ds.getTempCByIndex(i));
}
Serial.println(">");
Serial.println();
}
delay(700); // не менять задержку иначе будете получать на сериал менеджер только одно значение
}
}
просто у меня на данный момент выводится 5 показаний ,3 датчика подключены отдельно на каждый пин ,вот хотелбы сделать параллельно
,а то у меня на последнюю версию СМ мой скетч данные не выводит

старую 1.5 ставлю работает ....
у меня вот такой скетч
Код:
#include <Adafruit_INA219.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <SPI.h>
Adafruit_INA219 monitor;
char incomingByte;
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0;
float R2 = 10000.0;
int value = 0;
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
// monitor.begin(69); //i2c addres
// monitor.configure(0, 3, 11, 11, 7);
// (range, gain, bus_adc, shunt_adc, mode)
// range = 1 (0-32V bus voltage range)
// gain = 3 (1/8 gain - 320mV range)
// bus adc = 3 (12-bit, single sample, 532uS conversion time)
// shunt adc = 3 (12-bit, single sample, 532uS conversion time)
// mode = 7 (continuous conversion)
// test shunt = 115mm of 22AWG solid copper = 0.3 Ohms
// monitor.calibrate(0.099, 0.1584, 16, 2);
//R_шунта, напряж_шунта, макcнапряж, максток
pinMode(analogInput,INPUT);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
for(int i = 0; i < 100; i++)
{
// Serial.print("raw shunt voltage: ");
// Serial.println(monitor.shuntVoltageRaw());
// Serial.print("raw bus voltage: ");
// Serial.println(monitor.busVoltageRaw());
// Serial.println("--");
// Serial.print("shunt voltage: ");
// Serial.print(monitor.shuntVoltage(), 4);
// Serial.println(" mV");
// Serial.print("shunt current: ");
// Serial.print(monitor.shuntCurrent() * 1000, 4);
// Serial.println(" mA");
// Serial.print("bus voltage: ");
// Serial.print(monitor.busVoltage(), 4);
// Serial.println(" V");
// Serial.print("bus power: ");
// Serial.print(monitor.busPower() * 1000, 4);
// Serial.println(" mW");
// Serial.println(" ");
// Serial.println(" ");
// i=0;
}
value = analogRead(analogInput);
vout = (value*5.0)/1024.0;
vin = vout/(R2/(R1+R2));
if(vin<0.09){
vin = 0.0;
}
tempa.requestTemperatures();
delay(700);
Serial.print("<In:");
if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
tempb.requestTemperatures();
delay(700);
Serial.print("<Out:");
if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
tempc.requestTemperatures();
delay(700);
Serial.print("<Eng:");
if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(700);
Serial.print("<Volt:");
Serial.print(vin,2);
Serial.println(">");
}