[PROJEKT] Licznik otwierania drzwi – KAmduino UNO, magnetyczny czujnik otwarcia drzwi oraz wyświetlacz OLED
Teraz można przejść do napisania programu, który będzie liczył liczbę otwarć drzwi oraz wyświetlał tą informację na wyświetlaczu OLED. (Pełen kod programu znajduje się w sekcji „do pobrania” pod koniec artykułu).
Na początku programu dołączone są biblioteki potrzebne do obsługi wyświetlacza OLED, następnie znajduje się deklaracja pinów, do których podłączono wyświetlacz. Dalej zdefiniowano zmienne przechowujące informacje o ostatnim stanie, o aktualnym stanie drzwi (otwarte/zamknięte) oraz o ilości otwarć drzwi (zmienna licznik).
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_MOSI 9
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
int licznik=0 ;
int czy_otwarte = 0;
int ostatni_stan = 0;
Następnie znajduje się funkcja void otwarcie_drzwi(), która sprawdza poprzedni stan drzwi (zmienna ostatni_stan) i stan aktualny oraz na podstawie tych danych zwiększa zmienną licznik za każdym razem, gdy drzwi zostaną otwarte.
void otwarcie_drzwi()
{
if (ostatni_stan==0 && (digitalRead(2)==1))
{
licznik++;
ostatni_stan =1;
czy_otwarte = 1;
}
else if (ostatni_stan==1 && (digitalRead(2)==0))
{
ostatni_stan = 0;
czy_otwarte = 0;
}
}
W funkcji konfiguracyjnej setup() znajduje się inicjalizacja działania wyświetlacza OLED.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC);
}
W pętli głównej programu znajduje się wywołanie funkcji otwarcie_drzwi(), a następnie zadeklarowane są zmienne typu string (tekst_OLED oraz tekst_OLED2), w których umieszczany jest tekst do wyświetlenia na ekranie. W zmiennej tekst_OLED przechowywana jest informacja o ilości otworzeń drzwi, natomiast w zmiennej tekst_OLED2 przechowywany jest komunikat o aktualnym stanie drzwi (otwarte lub zamknięte). Na ekranie OLED wyświetlany jest napis „Mikrokontroler.PL”, następnie duży napis „Licznik”, a w kolejnym wierszu jego wartość (ilość otwarć drzwi). Na samym dole wyświetlacza znajduje się informacja o tym, czy drzwi są aktualnie zamknięte czy otwarte.
void loop() {
otwarcie_drzwi();
String tekst_OLED ="";
String tekst_OLED2 ="";
tekst_OLED += String(licznik);
if (czy_otwarte==1)
{
tekst_OLED2+="OTWARTE";
}
else
{
tekst_OLED2+="ZAMKNIETE";
}
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println(" MIKROKONTROLER.PL " );
display.setCursor(0,18);
display.setTextSize(2);
display.setTextColor(WHITE);
display.println("Licznik: ");
display.println(tekst_OLED);
display.setTextSize(2);
display.setTextColor(WHITE);
display.println(tekst_OLED2);
display.display();
display.clearDisplay();
}
Działanie programu zostało przedstawione na poniższym filmie:



Hybrydowe architektury kosmiczne – projektowane z myślą o wydajności i pewności działania
Inżynierowie jutra nie projektują od zera. Jak narzędzia cyfrowe zmieniają pracę nad nowymi technologiami?
Automatyzacja magazynów w Polsce – Exotec i Skypod 


![https://www.youtube.com/watch?v=xeqdqGuy-Aw Michał Mitas, kierownik laboratorium Badań Urządzeń Radiowych w katowickim instytucie Łukasiewicz - AI, opowiada o badaniach urządzeń z interfejsem komunikacji bezprzewodowej, jak Wi-Fi, Bluetooth, LTE czy 5G, przeprowadzanych w komorze bezodbiciowej. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/10/00.png)

![https://www.youtube.com/watch?v=QSnLO-KmBMY O wybranych projektach realizowanych w Laboratorium Zakładu Układów Mikrofalowych – ISE PW opowiadają: mgr inż. Michał Kalisiak, dr hab. inż. Arkadiusz Lewandowski, mgr inż. Andžej Šerlat oraz dr hab. inż. Krzysztof Czuba. Zapraszamy na firm [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/09/WEiTI-PW-czolowka.png)

