/*------------------------------------------------*/
// подключение библиотек для работы с OLED
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
/*------------------------------------------------*/
#define OLED_RESET 7
Adafruit_SSD1306 display(OLED_RESET); // создаём объект "дисплей"
/*------------------------------------------------*/
#define ECHO_PIN 2
#define TRIG_PIN 3
#define Led_PIN 9
void setup() {
pinMode(Led_PIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // инициализация дисплея по интерфейсу I2C, адрес 0x3C
display.clearDisplay(); // очистка дисплея
}
/*------------------------------------------------*/
void loop() {
float pppp=readPot();
analogWrite(Led_PIN, pppp);
delay(100);
}
/*------------------------------------------------*/
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH)* 0.034 / 2;
WriteLedDist(duration);
return duration ;
}
int readPot() {
float _dist = map(readDistanceCM(), 0, 400, 0, 255);
return _dist;
}
void WriteLedDist(int _Dist) {
display.setTextSize(1); // установка размера шрифта
display.setTextColor(WHITE); // установка цвета текста
display.clearDisplay(); // очистка дисплея
display.setCursor(0, 0); // установка курсора в позицию X = 0; Y = 0
char result[15] = "Dist: ";
char r1[10];
dtostrf(_Dist, 6, 2, r1);
strcat (result, r1);
display.print (result);
display.display(); // и её выводим на экран
}