#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET 7
Adafruit_SSD1306 display(OLED_RESET); // создаём объект "дисплей"
int analogPin = A3;
float val = 0;
void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // инициализация дисплея по интерфейсу I2C, адрес 0x3C
display.clearDisplay(); // очистка дисплея
display.setTextSize(4); // установка размера шрифта
display.setTextColor(WHITE); // установка цвета текста
display.setCursor(0, 0); // установка курсора в позицию X = 0; Y = 0
}
void loop() {
val = analogRead(analogPin);
val = val*30.0/1023.0;
Serial.print("Oxygen");
Serial.print(val);
Serial.println("%");
delay(100);
display.print (val); // записываем в буфер памяти дисплея нашу цифру
display.print ("%"); // пробел между цифрами
display.display(); // и её выводим на экран
display.clearDisplay(); // очистка дисплея
display.setCursor(0, 0); // установка курсора в позицию X = 0; Y = 0
if(val<=0)
{
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
tone(6, 200, 250);
}
else if(val<=15)
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
tone(6, 200, 50);
}
else if(val<=17.5)
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
tone(6, 200, 25);
}
else if(val<=20)
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
tone(6, 200, 10);
}
else if(val<=22.5)
{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
}
else if(val<=25)
{
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
tone(6, 200, 25);
}
else if(val<=30)
{
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
tone(6, 200, 50);
}
}