Arduino en juguete para los niños (4 / 6 paso)

Paso 4: Arudino código

Abajo está mi código de Arduino para este proyecto.

#include "pitches.h" / / contiene las notas se hace referencia en este código.

int tonepin = 3; para jugar tonos musicales
medición de int = 9;
clockpin int = 7;
int SOpin = 8;

idle_time largo sin firmar;

byte registerContent = 0;
byte registerContent2 = 0;
loWord largo; anteriormente fue un entero
int bitContent = 0;
idle_millseconds largo = 0;

PIN conectado a la clavija de enganche (ST_CP) del 74HC595
const int latchPin_595 = 10; previamente 10
PIN conectado al pin de reloj (SH_CP) del 74HC595
const int clockPin_595 = 12; anteriormente 12
PIN conectado a datos en (DS) del 74HC595
const int dataPin_595 = 11; previamente 11
int bitToSet; bit en cambio 595 registro para establecer

int button_Switch1 = 2;

melodía de int [] = {}
NOTE_C4, NOTE_G3, NOTE_E7, NOTE_A3, NOTE_G3, NOTE_A4, NOTE_D8, NOTE_B6};

#define white_button 8
#define yellow_button 32
#define blue_button 1
#define red_button 2
#define green_button 16

#define red_led 0 / / bits para escribir en el registro de 595
#define white_led 4
#define blue_led 1
#define green_led 2
#define yellow_led 3

joy1_up largo = 32768;
joy1_down largo = 2048;
joy1_left largo = 8192;
joy1_right largo = 512;

joy2_up largo = 4096;
joy2_down largo = 1024;
joy2_left largo = 16384;
joy2_right largo = 256;

void setup)
{
pinMode (medición, salida);
pinMode (clockpin, salida);
pinMode (SOpin, entrada);

Set de clavijas de salida porque se abordan en el bucle principal
pinMode (latchPin_595, salida);
pinMode (dataPin_595, salida);
pinMode (clockPin_595, salida);

pinMode (button_Switch1, entrada); 5 pulsadores con leds

digitalWrite (pernos, LOW);
digitalWrite (clockpin, HIGH);
digitalWrite (button_Switch1, bajo);

led_check(1); luz Leds y tocar una sola nota... al azar


Serial.Begin(9600);

idle_time=Millis();
}

void loop)
{
para (int idx = 0; idx < 16; idx ++)
{
Si (idx == 0)
{
pulseload();
}
bitContent = digitalRead (SOpin);

Si (bitContent == 1 & & idx < 8)
{
bitWrite(registerContent,idx,1);
}
else if (bitContent == 1 & & idx > = 8)
{
bitWrite (registerContent2, idx-8,1);
}
else if (bitContent == 0 & & idx < 8)
{
bitWrite (registerContent, idx, 0);
}
else if (bitContent == 0 & & idx > = 8)
{
bitWrite (registerContent2, idx-8,0);
}

pulseclock();
}
fin de ciclo de reloj de 2 registros de desplazamiento.

loWord = palabra (registerContent, registerContent2); convertir una palabra de dos bytes
Serial.Print ("valor:");
Serial.println(loWord,DEC); imprimir la palabra como un decimal

{Switch(loWord)}
caso 36864:
Serial.println ("dos para arriba");
bitToSet = red_led;
registerWrite (bitToSet, HIGH);
Playtone(2);
rotura;
caso 3072:
Serial.println ("ambos abajo");
bitToSet = green_led;
registerWrite (bitToSet, HIGH);
Playtone(2);
rotura;
caso 24576:
Serial.println ("ambos izquierda");
bitToSet = white_led;
registerWrite (bitToSet, HIGH);
Playtone(2);
rotura;
caso 768:
Serial.println ("tanto la derecha");
bitToSet = blue_led;
registerWrite (bitToSet, HIGH);
Playtone(2);
rotura;
caso 8:
Serial.println ("botón blanco");
bitToSet = white_led;
registerWrite (bitToSet, HIGH);
Playtone(1);
rotura;
caso 32:
Serial.println "(botón amarillo del);
bitToSet = yellow_led;
registerWrite (bitToSet, HIGH);
Playtone(1);
rotura;
caso 1:
Serial.println ("botón azul");
bitToSet = blue_led;
registerWrite (bitToSet, HIGH);
Playtone(1);
rotura;
caso 2:
Serial.println ("botón rojo");
bitToSet = red_led;
registerWrite (bitToSet, HIGH);
Playtone(1);
rotura;
caso 16:
Serial.println ("botón verde");
bitToSet = green_led;
registerWrite (bitToSet, HIGH);
Playtone(1);
rotura;

por defecto:
nada empuja o desconocida la secuencia
para (int thisPin = 0; thisPin < 16; thisPin ++) {}
registerWrite (thisPin, bajo);
}
registerContent = 0;
registerContent2 = 0;

} / / fin del caso interruptor

hora actual de captura

check_idle_time(); Compruebe el tiempo de inactividad

Serial.Print ("registro de 1:");
Serial.println (registerContent, BIN);
Serial.Print ("registro 2:");
Serial.println (registerContent2, BIN);
Serial.println (byte(10));
registerContent = 0;

Delay (250);
}

void pulseload)
{
digitalWrite (pernos, HIGH);
retardo (5);
digitalWrite (pernos, LOW);
}

void pulseclock)
{
digitalWrite (clockpin, LOW);
retardo (5);
digitalWrite (clockpin, HIGH);
}

{} void registerWrite (int whichPin, int whichState)
los bits que desea enviar
byte bitsToSend = 0;

Apague la salida para que las clavijas no enciende
mientras estás cambiando brocas:
digitalWrite (latchPin_595, bajo);

activar el bit más alto siguiente en bitsToSend:
bitWrite (bitsToSend, whichPin, whichState);

desplazar los bits de salida:
shiftOut (dataPin_595, clockPin_595, MSBFIRST, bitsToSend);

Encienda la salida para que los LEDs pueden iluminar:
digitalWrite (latchPin_595, HIGH);

}

void playtone (int num_of_tones) {}
tocar una nota al azar de melodía
para (int i = 0; i < num_of_tones; i ++) {}
int rand_note = random(0,7); elegir una nota de la matriz de la melodía
int rand_duration = (random(1,2)) * 4; 4 o 8
para calcular la duración de la nota, tomar un segundo
dividido por el tipo de nota.
por ejemplo, trimestre Nota = 1000 / 4, corchea = 1000/8, etc..
int noteDuration = 1000/rand_duration;
tono (tonepin, melody[rand_note],noteDuration);

para distinguir las notas, establecer un tiempo mínimo entre ellos.
duración + 30% de la nota parece que funciona bien:
int pauseBetweenNotes = noteDuration * 1.30;
Delay(pauseBetweenNotes);
detener la reproducción de tono:
noTone(tonepin);
idle_time=Millis();
}
}

void led_check(int tone_count)
{

para (int led_bit = 0; led_bit < 5; led_bit ++) {}
registerWrite (led_bit, HIGH);
Playtone (tone_count);
Delay (250);
registerWrite (led_bit, bajo);
idle_time=Millis(); restablecer el temporizador de inactividad
}
}

void check_idle_time() {}

Si (millis() > idle_time + 600000) {}
10 minutos de inactividad
led_check(2); leds luz tocar 2 notas
idle_time=Millis();
}
}

Artículos Relacionados

Mosquete (no disparo) del juguete para los niños

Mosquete (no disparo) del juguete para los niños

Niños + canal de historia = "Papá!  Puede usted hacerme un fusil?"Así se trata de juguetes para niños no disparar para ser usado con mucha imaginación y sólo 1 parte (es decir la baqueta de fusil) móvil.No es una réplica de una chispa - no hay n
Juguetes para los chicos grandes

Juguetes para los chicos grandes

este producto es de caja de zapato reutilizados y espuma de poliestireno. Es mi sueño tener un coche Pick-up pero de ahora que no puedo llego a comprar uno de verdad, hice mi sueño realidad de reutilizar viejas materias.Paso 1: Materiales utilizados
Bloque de casas para los juguetes

Bloque de casas para los juguetes

hacer unas casas de bloque simple para los niños o nietos y puede crear su propio barrio o ciudad pequeña.  Estas casas son sólidos, barato y bastante fácil de hacer.MaterialesPalet recuperado corredores o desecho de 2 "x 4" o 4 "x 4"L
Caza del tesoro para los adultos (compañero a Arduino la caja de búsqueda del tesoro)

Caza del tesoro para los adultos (compañero a Arduino la caja de búsqueda del tesoro)

Siempre me han gustado películas como tesoro nacional y similares. Que cuenta con un equipo de personas que se están ejecutando por todas partes tratando de resolver un acertijo o una serie de acertijos para conseguir el oro, conseguir que la chica,
Compañeros de entrenamiento: hacer ejercicio físico agradable para los niños

Compañeros de entrenamiento: hacer ejercicio físico agradable para los niños

Demo entrenamiento Video amigosEn esta guía detallaremos cómo hemos creado un ejercicio inteligente agente o robot, para la IoT de Intel Roadshow Amsterdam 2016. Nuestra idea era:Compañeros de entrenamiento involucra niños en ejercicio físico de form
Módulo de proximidad háptica (HPM) para los usuarios de baja visión

Módulo de proximidad háptica (HPM) para los usuarios de baja visión

el módulo de proximidad háptica (HPM) pretende que las personas con baja visión y otras debilitaciones de la visión, con sus alrededores a través de la vibración de un detector de gama, y hacer tan barato con componentes fácilmente disponibles.El obj
Preparación para los profesionales creativos de impuestos

Preparación para los profesionales creativos de impuestos

Temporada de impuestos es sobre nosotros, y gente creativa, visual a menudo puede ser intimidada por lo que parece un montón de miedo matemáticas. Temiendo el proceso, usado para hacer la más básica de solicitudes en línea gratis y devuelve bastante
LilyPad Arduino peluche juguete Fox

LilyPad Arduino peluche juguete Fox

Para una clase sobre tecnología en bibliotecas, tenía que crear un proyecto que utiliza LilyPad Arduino y decidí crear un animal de peluche que canta "Jesús ama a mí", mientras luces flash con las notas. Hice un zorro, pero el patrón que te enla
¿Pequeño perro juguete para tu juguete perros

¿Pequeño perro juguete para tu juguete perros

no tiene buenos juguetes para usar como un juguete de perro? Bien, para este instructables, usted sólo necesitará Coleteros (pequeños) para hacer un pequeño juguete para sus perros de juguete.Lo siento si esto no es bueno, es mi primer instructables.
Brillante de la bici, el sistema automatizado de alerta para los ciclistas y conductores

Brillante de la bici, el sistema automatizado de alerta para los ciclistas y conductores

prácticamente en todas partes que necesito, incluyendo la escuela, de la bici. Es una excelente manera de despertar en la mañana sin dejar de mencionar los otros beneficios sobre conducir. Desafortunadamente, sin embargo, siempre hay ese pequeño grup
Cómo hacer un dispensador de pasta de soldadura para los proyectos de SMD...

Cómo hacer un dispensador de pasta de soldadura para los proyectos de SMD...

Recientemente construí un horno de reflujo SMD usando un horno tostador y un kit de controlador. Esto ha hecho muy fácil para la soldadura de SMD PCB (placas de circuito impreso del dispositivo de montaje superficial). Simplemente ponga gotas de past
Autodesk adquiere Instructables: Qué significa para los fabricantes de

Autodesk adquiere Instructables: Qué significa para los fabricantes de

este mi artículo solo publicado en hacer "Autodesk adquiere Instructables: lo que significa para los fabricantes"La gran novedad esta semana fue "Autodesk adquiere Instructables." Me ha tomado unos días de pensar realmente acerca de es
Arduibag: una mochila conectada para los ciclistas

Arduibag: una mochila conectada para los ciclistas

Arduibag es una mochila conectada para los ciclistas. También es un proyecto open source creado por dos chicos franceses apasionados: Michaël d ' Auria y Stéphane DE GRAEVE.Si quieres saber más sobre Arduibag: http://www.arduibag.comEl concepto deEl
Dulces de alijo, juguete para mascotas pequeñas.

Dulces de alijo, juguete para mascotas pequeñas.

Bien, esto es fácil, rápido y barato juguete para mascotas pequeñas.Todo lo que necesitas es toiletpaper roll, alimento de animales domésticos o caramelo y 5seconds de su tiempo.Doble primer extremo del rollo y poner los alimentos de mascotas en. Lue