Я потом скетч залил обратно, а там разрешение не поменялось, ни у одного из датчиков.xeus, 31 Дек. 15, 01:52
Переделал на любое количество одновременных датчиков.
У меня все работало и со старым скетчем, на один датчик.
не забыть прописать подключенный пин, у меня 53 подключен #define ds18Pin 53
и при проверке что записалось , запись нужно отключить, только считывание оставить.
сделал это переменной, закоментить для чтения.
#include <OneWire.h>
#include <DallasTemperature.h>
#define ds18Pin 53
#define ds18MaxCount 8
#define sd18Resolution 12
#define ReadAndWrite // закомментить для чтения
OneWire oneWire(ds18Pin);
DallasTemperature sensors(&oneWire);
DeviceAddress tempSensor[ds18MaxCount];
float tempC;
int s;
void setup(void) {
Serial.begin(9600);
sensors.begin();
s = sensors.getDeviceCount();
Serial.print("Count: ");
Serial.println(s);
for (int i1=0; i1<s; i1++) {
(!sensors.getAddress(tempSensor[i1], i1));
#ifdef ReadAndWrite
sensors.setResolution(tempSensor[i1], sd18Resolution);
#endif
}
for (int i1=0; i1<s; i1++) {
Serial.print("Sensor [");
Serial.print(i1);
Serial.print("] Resolution: ");
Serial.println(sensors.getResolution(tempSensor[i1]), DEC);
}
Serial.println();
}
void loop(void) {
for (int i1=0; i1<s; i1++) {
sensors.requestTemperaturesByAddress(tempSensor[i1]);
tempC = sensors.getTempC(tempSensor[i1]);
Serial.print("Temp [");
Serial.print(i1);
Serial.print("] C: ");
Serial.println(tempC,4);
delay(1000);
}
Serial.println();
}
12 бит
Count: 2
Sensor {0} Resolution: 12
Sensor {1} Resolution: 12
Temp {0} C: 28.1250
Temp {1} C: 28.6250
Temp {0} C: 28.0625
Temp {1} C: 28.6250
Temp {0} C: 28.0625
Temp {1} C: 28.6250
9 бит
Count: 2
Sensor {0} Resolution: 9
Sensor {1} Resolution: 9
Temp {0} C: 28.5000
Temp {1} C: 28.5000
Temp {0} C: 28.5000
Temp {1} C: 28.5000
Temp {0} C: 28.5000
Temp {1} C: 28.5000