Arduino powered gato afortunado como Webcounter física (3 / 3 paso)

Paso 3: El Firmware de los gatos

he utilizado una imagen como contador en mi sitio web que se carga desde el arduino que funciona como un servidor Web. Conectado a internet utilizando dyndns. Cada vez que se cargan el gif en la web por el cliente arduino Nota esto y comienza el conteo y procesamiento y trabajo y parpadear y cosas como eso.
Estas cuentas se muestran en la pantalla. Para los movimientos del brazo hay otro contador que pueden procesar múltiples movimientos de brazo independiente de los éxitos de sitio Web reales. Eso es porque el brazo balancea un rato después de ser golpeado por el servo.
Arduino controla la luz para que por la noche, el servo no funciona pero el LED RGB cambiará su color cada vez que sucede un golpe en el sitio web (esta parte sucede sin un retraso)

Aquí está el código:

/*
Servidor Web

Servidor Web escucha en la web y mueve un servo
LightSensor controla la luz para que el servo no mover cuando está oscuro
Una pantalla de siete segmentos funciona con la ayuda de shiftregisters para mostrar un contador de

*/

#include < SPI.h >
#include < Ethernet.h >
#include < Servo.h >

Introduzca una dirección de MAC y dirección IP para el controlador a continuación.
La dirección IP dependerá de tu red local:
mac de bytes [] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip [] = {192, 168, 178, 188};

de dígitos:
int latchPin = 2; //muss noch angeschlossen werden
clockPin int = 4;
int dataPin = 3;
int yellowPin = 16;
redPin int = 18;
bluePin int = 17;
int greenPin = 19;
int btnPin = 7;

colores
int rojo;
int verde;
int azul;
int amarillo;
int ydir; Dirección de fade amarillo

dígito es la matriz de números 192 0, 249 1,... 255 para nada y 191-
dígitos de bytes [] = {192, 249, 164, 176, 153, 146, 130, 248, 128, 144, 255, 191, 225, 163, 171, 198, 167, 123};

int dig1;
int dig2;
int número;
int luz;

sensor de luz:
Apagado de int = 1; //light sensor

Inicializar la biblioteca de servidor Ethernet
con la dirección IP y el puerto que desea utilizar
(el puerto 80 es por defecto para HTTP):
Server(80) de EthernetServer;
Servo myservo; crear objeto servo para controlar el servo
int cuenta = 0;

tiempo
unsigned previousMillis largo = 0;
currentMil largo sin signo = 0;
previousMil largo sin signo = 0;
mil largo sin signo = 0;

Boolean timepassed = true;

void setup()
{
myservo.Attach(6); se fija el servo en el pin 6
Inicie la conexión Ethernet y servidor:
Ethernet.Begin (mac, ip);
Server.Begin();

pinMode (latchPin, salida);
pinMode (clockPin, salida);
pinMode (dataPin, salida);
pinMode (yellowPin, salida);
pinMode (redPin, salida);
pinMode (greenPin, salida);
pinMode (bluePin, salida);
pinMode (btnPin, entrada); //switch
Serial.Begin(9600);
digitalWrite (latchPin, bajo);
shiftOut (dataPin, dígitos clockPin, MSBFIRST, [11]); //ones
shiftOut (dataPin, dígitos clockPin, MSBFIRST, [11]); //tens
digitalWrite (latchPin, HIGH);
número = 0;
rojo = 0;
verde = 0;
azul = 0;
amarillo = 250;
Ydir = 1;
analogWrite (yellowPin, amarillo);
analogWrite (redPin, rojo);
analogWrite (greenPin, verde);
analogWrite (bluePin, azul);
myservo.Write(0);

Serial.Print ("server es a");
Serial.println(Ethernet.localIP());

}

void loop()
{
randomSeed(analogRead(A0)); Amarillo al azar
amarillo = random (111, 256);
amarillo = amarillo + (1 * ydir); tipo de fade
Si (amarillo == 255) ydir = -1;
Si (amarillo == 110) ydir = 1;
Serial.println(Yellow);
analogWrite (yellowPin, amarillo), //Eyes en

Escuchar para clientes entrantes
Cliente EthernetClient = server.available();
Si {} (cliente)
una solicitud http termina con una línea en blanco
Boolean currentLineIsBlank = true;
mientras (client.connected()) {}
Si (client.available()) {}
char c = client.read();
Si has llegado hasta el final de la línea (recibió una nueva línea
carácter) y la línea está en blanco, ha terminado la solicitud http,
para que puedan enviar una respuesta
Si (c == '\n' & & currentLineIsBlank) {}
Enviar un encabezado de respuesta http estándar
Client.println ("HTTP/1.1 200 OK");
Client.println ("tipo de contenido: texto/html");
Client.println();

cuenta = cuenta + 1; //there era una petición

número = número + 1; //Counter
SevenSegDis (); //Display
Si (número == 99) {//so 100 falta :(pero que le importa
digitalWrite (yellowPin, HIGH); no necesita más porque yellowPin es analogWrite todo el tiempo
número = 0;
}

rotura;
}
Si (c == '\n') {}
vas a empezar una nueva línea
currentLineIsBlank = true;
}
else if (c! = '\r') {}
Has conseguido un carácter en la línea actual
currentLineIsBlank = false;
}
}
}
darle tiempo al navegador de web para recibir los datos
Delay(1);
cerrar la conexión:
Client.STOP();

randomSeed(analogRead(A0));
rojo = random(256);
randomSeed(analogRead(A0));
verde = random(256);
randomSeed(analogRead(A0));
azul = random(256);

Serial.Print ("Servo:");
Serial.println(myservo.Read());
Serial.Print ("Timepassed:");
Serial.println(timepassed);
Serial.Print ("cuenta:");
Serial.println(Count);
Serial.Print ("número:");
Serial.println(Number);
Serial.Print ("Mil:");
Serial.println(mil);
Serial.Print ("Licht:");
Serial.println(Light);
Serial.Print ("rojo:");
Serial.println(red);
Serial.Print ("verde:");
Serial.println(Green);
Serial.Print ("azul:");
Serial.println(Blue);

}

lightsens(); comprueba la luz
marca_de_tiempo; / / comprueba el tiempo



Si (luz < 99 & & timepassed == true & & count > 0) {//so cuando su oscuro el servo no funciona y
myservo.Attach (6), //attaches Servo al Pin6 otra vez
Si (myservo.read() == 0) {}
myservo.Write(180); brazo para arriba
timepassed = false;
Count = count -1;
}
else if (myservo.read() == 180) {}
myservo.Write (0); //arm abajo
timepassed = false;
Count = count -1;
}
Delay(1000);
myservo.Detach (); //detaches Servo
encender las luces de si se está ejecutando servo
analogWrite (redPin, 0);
analogWrite (greenPin, 0);
analogWrite (bluePin, 0);
}
else if (luz > = 99 & & count > 0) {//so cuando su oscuro la luz cambia con cada golpe en el sitio web
analogWrite (redPin, rojo);
analogWrite (greenPin, verde);
analogWrite (bluePin, azul);
Count = count-1;
timepassed = false;
}

Si (digitalRead(btnPin) == HIGH) {//check si se presiona el botón
randomSeed(analogRead(A0));
rojo = random(256);
randomSeed(analogRead(A0));
verde = random(256);
randomSeed(analogRead(A0));
azul = random(256);

analogWrite (redPin, rojo);
analogWrite (greenPin, verde);
analogWrite (bluePin, azul);
}


}

---Segunda parte: siete segmentos pantalla

void SevenSegDis() {pantalla //controls con dos registros de desplazamiento
número = restringir (número, 0, 99); //number > = 0 y < 99 debido de gama de la exhibición
Si (número < 10) {}
dig1 = 10; no muestra nada
dig2 = número; unos
digitalWrite (latchPin, bajo);
shiftOut (dataPin, dígitos clockPin, MSBFIRST, [dig2]); //ones
shiftOut (dataPin, dígitos clockPin, MSBFIRST, [dig1]); //tens nada aquí
digitalWrite (latchPin, HIGH);
}
Else {}
dig1 = número/10; / / primer dígito decenas
dig2 = número - dig1 * 10; segundo dígito que
digitalWrite (latchPin, bajo);
shiftOut (dataPin, clockPin, MSBFIRST, digit[dig2]);
shiftOut (dataPin, clockPin, MSBFIRST, digit[dig1]);
digitalWrite (latchPin, HIGH);
}
}

---Tercera parte: la parte de sensor de luz

void lightsens() {}
luz = analogRead(lightPin);
luz / = 10;

}

---Cuarta parte: el tiempo cosita

tiempo vacío () {}
currentMil = millis();
Si (currentMil < previousMil) {/ / si millis se desborda
mil += 34359738 - previousMil + currentMil;
}
Else {/ / si no ha sobrevolado millis
mil += currentMil - previousMil;
Si (mil > 25000) {//if 20 segundos pasa
timepassed = true; //resets el timepassed en true para el servo
mil = mil-25000;
}
previousMil = currentMil;
}
}

Artículos Relacionados

Un conectados a Facebook, música de fiesta de Arduino-Powered

Un conectados a Facebook, música de fiesta de Arduino-Powered

música de fiesta es una nueva forma de escuchar música con los demás. Golpeando un dispositivo RFID/NFC que está sincronizado con una cuenta de Facebook en un lector de RFID de Arduino shield y envío que ID único servidor de música de fiesta utilizan
Cómo construir un Arduino Powered ajedrez jugar Robot

Cómo construir un Arduino Powered ajedrez jugar Robot

a juzgar por el número de ajedrez Instructables relacionados, creo que es seguro decir que la comunidad disfruta el juego.  Sin embargo, puede ser difícil, encontrar alguien que juega en el mismo nivel te.  Para resolver este dilema y para aumentar m
Arduino Powered trazadores de líneas del guante Heated

Arduino Powered trazadores de líneas del guante Heated

Arduino Powered Guantes calientesEste proyecto es sobre cómo hacer las más inteligente del mundo calienta guante los trazadores de líneas para condiciones de frío extremo como los de Minnesota o personas que tienen syndrome(like me) de Raynaud. Estos
Arduino Powered RGB humor lámpara además Simon

Arduino Powered RGB humor lámpara además Simon

esto es básicamente una lámpara de estado de ánimo de arduino powered RGB y el simon dice juego, dos en uno.Modo de empleo: El dispositivo se inicia con el programa de humor de RGB lámpara por defecto, al pulsar cualquiera de las cuatro teclas en la
Arduino Powered Gainclone (amplificador)

Arduino Powered Gainclone (amplificador)

para aquellos de ustedes que no saben y no lo hice hasta hace poco, un Gainclone es un amplificador que es un 'clon' del original diseño de un amplificador de 47 laboratorios llamados un Gaincard y está basado en amplificadores de único chip de Natio
Monitor de flujo de agua - Arduino Powered del Laser del CO2 / Windows con control

Monitor de flujo de agua - Arduino Powered del Laser del CO2 / Windows con control

Alarma y Monitor de flujo de agua de láser de CO2Accionado por un Arduino y controlados por software a la medida de un PC con WindowsPara alargar la vida de un CO2 tubo del laser es necesario bomba de enfriamiento de agua a través de él mientras está
Arduino Powered Infared cosa

Arduino Powered Infared cosa

Hola, este es mi primer instructible. Voy a mostrar cómo hacer un lector de arduino powered sensor análogo (va a utilizar un fotodiodo infrarrojo).Paso 1: partes Necesita varias cosas para hacerlo:1. algún tipo de caja o caja de2. un escudo de Adafru
Orientada a solar, reloj de Arduino-Powered

Orientada a solar, reloj de Arduino-Powered

esto es un reloj diseñado para mantener la hora exacta (independiente de atómico o GPS), Mostrar la salida local del sol, el mediodía solar y puesta de sol y también sí mismo ajustar horario de verano.Quería el reloj para ser fácil de usar y flexible
Un controlado inalámbricamente, tablero de mensajes Arduino-Powered

Un controlado inalámbricamente, tablero de mensajes Arduino-Powered

usted mismo construir un tablero de mensajes controlados de forma inalámbrica, Arduino powered!Aquí es un proyecto fácil que crea una tabla de forma inalámbrica programable del mensaje. Utiliza los módulos XBee para un enlace serial inalámbrico entre
3 canal arduino Powered controlador de luces de Navidad!

3 canal arduino Powered controlador de luces de Navidad!

Para Navidad este año, quise hacer un proyecto genial pero bastante no sabía qué hacer. Como me estaba poniendo la salida de luces de Navidad para decorar, había un viejo temporizador de luz de Navidad roto. Tomé distancia y miró a su alrededor en el
Arduino Powered Home

Arduino Powered Home

He hecho algunas actualizaciones a este instructable desde agosto de 2014 ***Decidí compartir esta información que podría ayudar a otras personas que han estado luchando para hacer cosas similares con su Arduino. Recientemente he conseguido con el Ar
Arduino powered A-10 stick grip remoto w/emergencia botón partido!

Arduino powered A-10 stick grip remoto w/emergencia botón partido!

Volví a través de la construcción de "botón de emergencia partido" de Plama2002 un tiempo y quería algo similar para mi bar. También tuve un agarre de palillo USAF B-8 viejo de un A-10A que recogí en mi vida anterior. Pensé que en vez de ser sól
Arduino powered tanque RC

Arduino powered tanque RC

este es mi primer instructable así que por favor oso conmigo. Mi nombre es Stanley Deakins y he estado jugando con la electrónica desde hace algún tiempo, aunque fue hace años. Debido a mi trabajo reciente he reavivar esa pasión. He conseguido mis ma
Reloj de LED Arduino powered

Reloj de LED Arduino powered

Un divertido y sencillo reloj LED, que te dará la hora a la media hora más cercana utilizando LEDs solo-color. Piezas necesarias son las siguientes:Arduino NanoTablero de 400 puntos de amarreCable de cintaDS1307 RTC IC32,768 kHz cristal(12) 10mm LEDs