0% encontró este documento útil (0 votos)
2 vistas2 páginas

Control de Relé Bluetooth con Arduino

El código controla un relé a través de comandos enviados por Bluetooth utilizando la librería SoftwareSerial. Permite encender, apagar y alternar el estado del relé, así como enviar el estado actual al dispositivo Bluetooth. Se inicializa el relé en estado apagado y se establece una comunicación a 9600 baudios.

Cargado por

cyberbelen1
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas2 páginas

Control de Relé Bluetooth con Arduino

El código controla un relé a través de comandos enviados por Bluetooth utilizando la librería SoftwareSerial. Permite encender, apagar y alternar el estado del relé, así como enviar el estado actual al dispositivo Bluetooth. Se inicializa el relé en estado apagado y se establece una comunicación a 9600 baudios.

Cargado por

cyberbelen1
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

#include <SoftwareSerial.

h>

// ==== Pines ====

const int PIN_RELE = 7; // IN del relé

const bool RELE_ACTIVO_LOW = true; // true si tu relé se activa con LOW (muy común)

// ==== Bluetooth (HC-05/HC-06) en SoftwareSerial ====

const int BT_RX = 10; // Arduino RX (desde TX del BT)

const int BT_TX = 11; // Arduino TX (hacia RX del BT, usar divisor)

SoftwareSerial BT(BT_RX, BT_TX);

bool focoOn = false;

void aplicarEstadoFoco() {

if (RELE_ACTIVO_LOW) {

digitalWrite(PIN_RELE, focoOn ? LOW : HIGH);

} else {

digitalWrite(PIN_RELE, focoOn ? HIGH : LOW);

void setFoco(bool on) {

focoOn = on;

aplicarEstadoFoco();

void enviarEstado() {

[Link]("STATUS:");

[Link](focoOn ? "ON" : "OFF");

void procesarComando(String cmd) {

[Link]();

[Link]();

if (cmd == "ON") {
setFoco(true); [Link]("OK"); enviarEstado();

} else if (cmd == "OFF") {

setFoco(false); [Link]("OK"); enviarEstado();

} else if (cmd == "TOGGLE") {

setFoco(!focoOn); [Link]("OK"); enviarEstado();

} else if (cmd == "STATUS") {

enviarEstado();

} else if ([Link]() > 0) {

[Link]("ERR:CMD");

void setup() {

pinMode(PIN_RELE, OUTPUT);

setFoco(false); // estado inicial apagado

[Link](9600); // default HC-05/HC-06

[Link]("READY");

enviarEstado();

void loop() {

static String buf = "";

while ([Link]()) {

char c = [Link]();

if (c == '\n' || c == '\r') {

if ([Link]()) { procesarComando(buf); buf = ""; }

} else {

buf += c;

if ([Link]() > 32) buf = ""; // evita desbordes

También podría gustarte