/* Control Arduino Ethernet FUENTE: http://www.elprofegarcia.com/ ************************************************************* REVISADO PROF: BOLAŅOS DJ - 25-9-19 IMPORTANTE: RETIRE LA TARJETA SD SI SE ENCUENTRA COLOCADA ************************************************************* Controla el encendido o apagado de los Pin 2,3,4 ,5 y 6 del Arduino. Controla el giro de un servomotor conectado al pin 7 PARAR EL SERVO se cambio el codigo original del ejemplo fuente por otro empleado anteriormente en el manejo de servo */ #include #include #include Servo servo1; int PINSERVO = 7; // pin 7 conectado a seņal del servo int PULSOMIN = 750; // pulso minimo en microsegundos int PULSOMAX = 2750; // pulso maximo en microsegundos int num; // variable para almacenar valor leido int ANGULO; // valor de angulo a cargar en el servo int trespservo =300;// tiempo de detencion en posicion del servor byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Direccion Fisica MAC byte ip[] = { 192, 168, 1, 140 }; // IP Local que usted debe configurar //Router profesor Bolaņos esta reservada esta direccion IP byte gateway[] = { 192, 168, 1, 1 }; // Puerta de enlace byte subnet[] = { 255, 255, 255, 0 }; //Mascara de Sub Red EthernetServer server(80); //Se usa el puerto 80 del servidor String readString; void setup() { Serial.begin(9600); // Inicializa el puerto serial servo1.attach(PINSERVO, PULSOMIN, PULSOMAX); // inicializacion de servo while (!Serial) { // Espera a que el puerto serial sea conectado, Solo necesario para el Leonardo ; } pinMode(2,OUTPUT); // Se configura como salidas los puertos del 2 al 6 pinMode(3,OUTPUT); pinMode(4, OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); Ethernet.begin(mac, ip, gateway, subnet); // Inicializa la conexion Ethernet y el servidor server.begin(); Serial.print("El Servidor es: "); Serial.println(Ethernet.localIP()); // Imprime la direccion IP Local } void loop() { // Crea una conexion Cliente EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); //Lee caracter por caracter HTTP if (readString.length() < 100) { //Almacena los caracteres a un String readString += c; } // si el requerimiento HTTP fue finalizado if (c == '\n') { Serial.println(readString); //Imprime en el monitor serial client.println("HTTP/1.1 200 OK"); //envia una nueva pagina en codigo HTML client.println("Content-Type: text/html"); client.println(); client.println(""); client.println(""); client.println("Ethernet Arduino"); client.println(""); client.println(""); client.println("
"); client.println("

Manejo via WEB - Arduino Ethernet Shield

"); client.println(""); //Color de fondo client.println("
"); client.println("

Control on / off Pines 2-6 - Servo pin de control 7

"); client.println("
"); client.println(" Encender Pin2 "); // construye en la pagina cada uno de los botones client.println(" | | | "); client.println(" Apagar Pin2
"); client.println("
"); client.println("
"); client.println(" Encender Pin3 "); client.println(" | | | "); client.println(" Apagar Pin3
"); client.println("
"); client.println("
"); client.println(" Encender Pin4 "); client.println(" | | | "); client.println(" Apagar Pin4
"); client.println("
"); client.println("
"); client.println(" Encender Pin5"); client.println(" | | | "); client.println(" Apagar Pin5
"); client.println("
"); client.println("
"); client.println(" Encender Pin6 "); client.println(" | | | "); client.println(" Apagar Pin6
"); client.println("
"); client.println("
"); client.println("Girar Izq Pin7"); client.println(" | | | "); client.println("Girar Der Pin7
"); client.println("
"); client.println("

Ensayado: Prof: DJB -25-9-19

"); client.println("

Fuente: pagina Profe Garcia

"); client.println("
"); client.println(""); client.println(""); delay(1); //detiene el cliente servidor client.stop(); //control del arduino si un boton es presionado if (readString.indexOf("?button2on") >0){ digitalWrite(2, HIGH); } if (readString.indexOf("?button2off") >0){ digitalWrite(2, LOW); } if (readString.indexOf("?button3on") >0){ digitalWrite(3, HIGH); } if (readString.indexOf("?button3off") >0){ digitalWrite(3, LOW); } if (readString.indexOf("?button4on") >0){ digitalWrite(4, HIGH); } if (readString.indexOf("?button4off") >0){ digitalWrite(4, LOW); } if (readString.indexOf("?button5on") >0){ digitalWrite(5, HIGH); } if (readString.indexOf("?button5off") >0){ digitalWrite(5, LOW); } if (readString.indexOf("?button6on") >0){ digitalWrite(6, HIGH); } if (readString.indexOf("?button6off") >0){ digitalWrite(6, LOW); } if (readString.indexOf("?left") >0) { ANGULO =180; girarservo(); delay(trespservo); } if (readString.indexOf("?right") >0) { ANGULO =0; girarservo(); delay(trespservo); } // Limpia el String(Cadena de Caracteres para una nueva lectura readString=""; } } } } } //--------------------------------------------------------------- void girarservo() { servo1.write(ANGULO); // envia al servo el valor del angulo delay(20); // demora para que el servo llegue a posicion }