Está en la página 1de 3

¡Por supuesto!

Para controlar un Arduino Uno y encender/apagar tres LEDs a través de una página
web, puedes utilizar HTML y JavaScript para la interfaz de usuario, y un servidor web en el
Arduino para manejar las solicitudes. Aquí tienes un ejemplo básico:

1. **Código HTML y JavaScript:**


```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Control de LEDs</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 50px;
}
button {
font-size: 20px;
padding: 10px 20px;
margin: 10px;
cursor: pointer;
}
</style>
</head>
<body>
<h1>Control de LEDs</h1>
<button onclick="toggleLED(1)">LED 1</button>
<button onclick="toggleLED(2)">LED 2</button>
<button onclick="toggleLED(3)">LED 3</button>

<script>
function toggleLED(ledNumber) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
alert("LED " + ledNumber + " " + this.responseText);
}
};
xhttp.open("GET", "led" + ledNumber, true);
xhttp.send();
}
</script>
</body>
</html>
```
2. **Código Arduino:**
```cpp
#include <Ethernet.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};


EthernetServer server(80);

int ledPins[] = {2, 3, 4}; // Pins conectados a los LEDs

void setup() {
Serial.begin(9600);
Ethernet.begin(mac);
server.begin();

// Inicializar pines de los LEDs como salidas


for (int i = 0; i < 3; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Apagar LEDs al inicio
}
}

void loop() {
EthernetClient client = server.available();
if (client) {
processRequest(client);
delay(1);
client.stop();
}
}

void processRequest(EthernetClient client) {


String request = client.readStringUntil('\r');
client.flush();

if (request.indexOf("GET /led1") != -1) {


toggleLED(1);
sendResponse(client, "Encendiendo/apagando LED 1");
} else if (request.indexOf("GET /led2") != -1) {
toggleLED(2);
sendResponse(client, "Encendiendo/apagando LED 2");
} else if (request.indexOf("GET /led3") != -1) {
toggleLED(3);
sendResponse(client, "Encendiendo/apagando LED 3");
} else {
sendResponse(client, "Comando no válido");
}
}

void toggleLED(int ledNumber) {


int index = ledNumber - 1; // Los LEDs comienzan desde 1
digitalWrite(ledPins[index], !digitalRead(ledPins[index])); // Invertir el estado del LED
}

void sendResponse(EthernetClient client, String message) {


client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html><body>" + message + "</body></html>");
}
```

Este código crea una página web simple con tres botones que, al hacer clic, envían solicitudes al
servidor en el Arduino para controlar los LEDs. Asegúrate de tener la biblioteca Ethernet instalada
en tu entorno de Arduino si aún no la tienes. Este es solo un ejemplo básico, y podrías extenderlo
según tus necesidades.

También podría gustarte