bonjour,
je souhaite adapter onewire pour deux capteurs différents.
N'y connaissant pas tellement à par des copier coller en grandes partie, est-ce que quelqu'un pourrait me montrer comment faire pour activer onewire sur un capteur puis l'autre? J'ai eu beau essayer je n'y arrive pas
One wire fonctionne sur une sonde ds18b20 et dht22(sonde de température d'eau).
J'ai un 3ème capteur de ph qui fonctionne indépendamment sans problème.
voici mon code:
#include <OneWire.h>
/* DS18B20 Temperature chip i/o */
OneWire ds(10); // on pin 10
int t1 ;
#include <DallasTemperature.h>
#include <DHT.h>
#define DHTPIN A2
OneWire oneWire(DHTPIN);
#define DHTTYPE DHT22 // DHT11 sinon
DHT dht(DHTPIN, DHTTYPE);
#define WATER_TEMP_PIN 'A0'
OneWire oneWire(WATER_TEMP_PIN)'A0';
DallasTemperature sensors(&oneWire);
#define SensorPin A1 //pH meter Analog output to Arduino Analog Input 0
unsigned long int avgValue; //Store the average value of the sensor feedback
float b;
int buf[10],temp;
void setup()
{
pinMode(13,OUTPUT);
// On initialise la connexion série
Serial.begin(9600);
delay(2000);
// On imprime un texte de bienvenu
Serial.println("Bonjour Manu");
}
void loop()
{
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h))
{
Serial.println("Failed to read from DHT");
}
else
{
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
delay(5000);
}
}
{ // On récupère la température de la sonde
sensors.requestTemperatures();
double dTempWater = sensors.getTempCByIndex(0);
// On imprime la température
Serial.print("Température de l'eau: ");
Serial.print(dTempWater);
Serial.println("°C");
}
{
for(int i=0;i<10;i++) //Get 10 sample value from the sensor for smooth the value
{
buf[i]=analogRead(SensorPin);
delay(10);
}
for(int i=0;i<9;i++) //sort the analog from small to large
{
for(int j=i+1;j<10;j++)
{
if(buf[i]>buf[j])
{
temp=buf[i];
buf[i]=buf[j];
buf[j]=temp;
}
}
}
avgValue=0;
for(int i=2;i<8;i++) //take the average value of 6 center sample
avgValue+=buf[i];
float phValue=(float)avgValue*5.0/1024/6; //convert the analog into millivolt
phValue=3.5*phValue; //convert the millivolt into pH value
Serial.print(" pH:");
Serial.print(phValue,2);
Serial.println(" ");
digitalWrite(13, HIGH);
delay(2000);
digitalWrite(13, LOW);
}
}