#include <Wire.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 oled(128, 64);
const int dataPin = 2; // Pin donde se conecta el dato del control RF
const int ledAlarmPin = 8; // Pin para indicar alarma activada
void setup() {
pinMode(dataPin, INPUT);
pinMode(ledAlarmPin, OUTPUT);
Serial.begin(9600);
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.clearDisplay();
}
void loop() {
if (digitalRead(dataPin) == HIGH) {
int code = 0;
for (int i = 0; i < 20; i++) {
code = code << 1;
if (digitalRead(dataPin) == HIGH) {
code = code + 1;
}
delayMicroseconds(1000);
}
// Imprimir código recibido en monitor serie
Serial.println(code);
// Comprobar si código es el esperado para activar alarma
if (code == 0x123456) {
digitalWrite(ledAlarmPin, HIGH);
oled.setCursor(0, 0);
oled.setTextColor(WHITE);
oled.print("ALARMA ACTIVADA!");
} else {
digitalWrite(ledAlarmPin, LOW);
oled.clearDisplay();
oled.setCursor(0, 0);
oled.setTextColor(WHITE);
oled.print("Código incorrecto");
}
}
delay(1000);
}