#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
const int SCREEN_WIDTH = 128;
const int SCREEN_HEIGHT = 64;
#define ECHO_PIN 2
#define TRIG_PIN 3
int led = 13;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 bilan aloqada xatolik"));
while(true);
}
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int vaqt = pulseIn(ECHO_PIN, HIGH);
return vaqt * 0.034 / 2;
}
void loop() {
float masofa = readDistanceCM();
bool holat = masofa < 100;
digitalWrite(led, holat);
Serial.print("Masofa: ");
Serial.println(readDistanceCM());
delay(100);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(45, 10);
display.println("Masofa");
display.setTextSize(2);
display.setCursor(40, 25);
display.println(readDistanceCM());
display.setCursor(60, 40);
display.println("cm");
display.display();
}