#include <Servo.h> #include <SoftwareSerial.h> SoftwareSerial bluetooth(2, 3); // TX, RX Servo s1; Servo s2; Servo s3; String bt, bta, btb, btc; int d1, d2, d3; const int relePin = 8; // Pin de control del módulo de relé void setup() { s1.attach(5); Serial.begin(9600); bluetooth.begin(9600); pinMode(relePin, OUTPUT); // Configurar el pin del relé como salida digitalWrite(relePin, LOW); // Asegura que el relé esté apagado inicialmente } void loop() { if (bluetooth.available()) { // ¿Hay datos disponibles? bt = bluetooth.readString(); if (bt.indexOf("1#F") > -1) { // Movimiento del servo 1 bta = bt.substring(3, bt.length()); btb = bta.indexOf('>'); btc = bta.substring(0, btb.toInt()); Serial.println(btc); d1 = btc.toInt(); s1.write(d1); // Ejemplo: activar el relé cuando el ángulo esté entre 80 y 100 grados if (d1 >= 80 && d1 <= 100) { digitalWrite(relePin, HIGH); // Activa el relé, encendiendo el foco 110V } else { digitalWrite(relePin, LOW); // Desactiva el relé, apagando el foco 110V } } if (bt.indexOf("2#F") > -1) { // Movimiento del servo 2 bta = bt.substring(3, bt.length()); btb = bta.indexOf('>'); btc = bta.substring(0, btb.toInt()); Serial.println(btc); d2 = btc.toInt(); s2.write(d2); } if (bt.indexOf("3#F") > -1) { // Movimiento del servo 3 bta = bt.substring(3, bt.length()); btb = bta.indexOf('>'); btc = bta.substring(0, btb.toInt()); Serial.println(btc); d3 = btc.toInt(); s3.write(d3); } } }
Please keep input under 1000 characters