#include <Wire.h>
#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
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
pinMode(23, INPUT);
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
}
void loop() {
unsigned long duration = pulseIn(23, HIGH);
Serial.println(duration);
if (duration > 10000 && duration < 17000)
{
display.setCursor(0, 0);
display.println("Dato: 1");
display.display();
}
else if (duration > 20000 && duration < 27000)
{
display.setCursor(0, 0);
display.println("Dato: 2");
display.display();
}
else if (duration > 30000 && duration < 37000)
{
display.setCursor(0, 0);
display.println("Dato: 3");
display.display();
}
else if (duration > 40000 && duration < 47000)
{
display.setCursor(0, 0);
display.println("Dato: 4");
display.display();
}
else if (duration > 50000 && duration < 57000)
{
display.setCursor(0, 0);
display.println("Dato: 5");
display.display();
}
else if (duration > 60000 && duration < 67000)
{
display.setCursor(0, 0);
display.println("Dato: 6");
display.display();
}
else if (duration > 70000 && duration < 77000)
{
display.setCursor(0, 0);
display.println("Dato: 7");
display.display();
}
else if (duration > 80000 && duration < 87000)
{
display.setCursor(0, 0);
display.println("Dato: 8");
display.display();
}
else if (duration > 90000 && duration < 97000)
{
display.setCursor(0, 0);
display.println("Dato: 9");
display.display();
}
else if (duration > 100000 && duration < 107000)
{
display.setCursor(0, 0);
display.println("Dato: *");
display.display();
}
else if (duration > 110000 && duration < 117000)
{
display.setCursor(0, 0);
display.println("Dato: 0");
display.display();
}
else if (duration > 120000 && duration < 127000)
{
display.setCursor(0, 0);
display.println("Dato: #");
display.display();
}
else if (duration > 130000 && duration < 137000)
{
display.setCursor(0, 0);
display.println("Dato: A");
display.display();
}
else if (duration > 140000 && duration < 147000) {
display.setCursor(0, 0);
display.println("Dato: B");
display.display();
}
else if (duration > 150000 && duration < 157000) {
display.setCursor(0, 0);
display.println("Dato: C");
display.display();
}
else if (duration > 160000 && duration < 167000) {
display.setCursor(0, 0);
display.println("Dato: D");
display.display();
}
display.clearDisplay();
}