Realiza un programa utilizando arduino + la shield ethernet y se trata acerca de un servidor, lo que hace es que controla 3 leds desde un servidor, prendes cada uno de ellos y aumentas o bajas su intensidad.
Material Utilizado:
Arduino +Shield Ethernet
3 leds
3 resistencias
1 cable ethernet
Còdigo
#include#include #include #include #include #include #include #include //mac, IP byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192,168,1,6 }; EthernetServer server(80);//ethernet server port 80 //pines out LED int Red = 5; int Green = 4; int Blue = 3; //para activar los colores del LED boolean flatRed = false; boolean flatGreen = false; boolean flatBlue = false; //para controlar la intesidad de luz int steep=15;//paso de intensidad de color en los LEDs int depth=120;//intensidad inicial boolean reading = false; //HTML creacion de formulario const char html[] = ""; void setup(){ Serial.begin(9600); //iniciar conexion Ethernet.begin(mac, ip); server.begin(); //activar pines pinMode(Red,OUTPUT); pinMode(Green,OUTPUT); pinMode(Blue,OUTPUT); } void loop() { // Escuchar a los clientes que entran EthernetClient client = server.available(); if (client) { // una peticion http termina con una linea en blanco boolean currentLineIsBlank = true; boolean sentHeader = false; server.print(html);//puesta HTML en servidor while (client.connected()) { if (client.available()) { if(!sentHeader){ sentHeader = true; } char c = client.read(); if(reading && c == ' ') reading = false; if(c == '?') reading = true; //encuentra ? donde inicia la informacion if(reading){ Serial.print(c);//imprime lo que recibe del cliente //control del LED if(c == '3'){ flatRed = false; analogWrite(Red , LOW); //lo desactiva y lo apaga flatGreen = false; analogWrite(Green , LOW); flatBlue = true; //activa el color del LED break; } if(c == '4'){ flatRed = false; analogWrite(Red , LOW); flatGreen = true; flatBlue = false; analogWrite(Blue , LOW); break; } if(c == '5'){ flatRed = true; flatGreen = false; analogWrite(Green , LOW); flatBlue = false; analogWrite(Blue , LOW); break; } //para intensificar botones 1 sube, 2 baja if(c == '1'){ if(depth == 255) depth=255; else depth = depth+steep; break; } if(c == '2'){ if(depth == 0) depth=0; else depth = depth-steep; break; } } if (c == '\n' && currentLineIsBlank) break; if (c == '\n') { currentLineIsBlank = true; }else if (c != '\r') { currentLineIsBlank = false; } } } delay(1); // give the web browser time to receive the data client.stop(); // close the connection: } if (flatRed == true) analogWrite(Red , depth); if (flatGreen == true) analogWrite(Green,depth); if (flatBlue == true) analogWrite(Blue ,depth); }
#include#include #include #include #include #include #include #include byte mac[]={ 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[]={ 192,168,1,6 }; EthernetServer server(80); int disp [10][8]={{7,8,4,3,2,6},{8,4},{7,8,5,2,3},{7,8,5,4,3},{6,5,8,4},{7,6,5,4,3},{2,3,4,5,6,7},{8,4,7},{2,3,4,5,6,7,8},{4,5,6,7,8}}; int i; const char html[] = ""; void setup(){ Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); } void loop(){ EthernetClient client =server.available(); if (client){ Serial.print("hola/n"); server.print(html); while(client.connected()){ if(client.available()){ int j = client.read(); digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW); digitalWrite(8,LOW); for (i = 0; i < 8; i = i + 1) { digitalWrite(disp[j][i],HIGH); } delay(1000); } } } }
6 pts lab integrados; con un poco de explicación hubiera sido mejor
ResponderEliminar