Показать сообщение отдельно
Старый 14.02.2017, 12:39   #339
Serg-Zmuh
Старший Пользователь
 
Аватар для Serg-Zmuh
 
Регистрация: 19.02.2014
Возраст: 53
Город: Ванино
Регион: 27
Машина: MMC-Pajero-II,V46,4М40
Сообщений: 327
Serg-Zmuh will become famous soon enough
По умолчанию

а если нужно 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(">"); 
}
__________________
MMC-Pajero ,Teyes CC3 ,все пока в процессе
Serg-Zmuh вне форума   Ответить с цитированием