#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 //Largeur de l'ecran
#define SCREEN_HEIGHT 64 //Hauteur de l'ecran
#define OLED_RESET 4
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#include <DallasTemperature.h>
#include <OneWire.h>
#define ONE_WIRE_BUS 3
OneWire oneWire (ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress SondeSech = { 0x28, 0x0D, 0x57, 0x95, 0xF0, 0x01, 0x3C, 0xA4 }; //AMBIANT
float SSech;
DeviceAddress Temp = {};
const int NanoMap = 4;
const int Valve = 3;
boolean Mode;
int Pulse;
void setup () {
Serial.begin(9600);
sensors.begin();
pinMode(NanoMap, INPUT);
pinMode(Valve, OUTPUT);
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 a manquer sa shot"));
for (;;);
}
display.display();
display.clearDisplay();
}
void loop () {
sensors.requestTemperatures();
Mode = digitalRead(NanoMap);
if (Mode == 1) {
Pulse = map(sensors.getTempC(Temp), 0, 150, 0, 255);
} else if (Mode == 0) {
Pulse = map(sensors.getTempC(Temp), 0, 100, 0, 255);
}
analogWrite(Valve, Pulse);
SSech = SSech + 0.01;
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.setTextSize(2);
display.print("Temp:");
display.print(SSech);
display.display();
display.clearDisplay();
}