Arduino basé de jouets pour les enfants (4 / 6 étapes)

Étape 4: Arudino Code

Voici mon code Arduino pour ce projet.

#include « pitches.h » / / contient les notes référencés dans le présent code.

int tonepin = 3 ; pour jouer des sonneries musicales
int loadpin = 9 ;
int clockpin = 7 ;
int SOpin = 8 ;

unsigned long idle_time ;

registerContent octets = 0 ;
registerContent2 octets = 0 ;
loWord long ; était auparavant un entier
int bitContent = 0 ;
long idle_millseconds = 0 ;

Broche reliée à la broche de verrouillage (ST_CP) de 74HC595
const int latchPin_595 = 10 ; déjà 10
Broche reliée à la broche d’horloge (SH_CP) de 74HC595
const int clockPin_595 = 12 ; déjà 12
Broche reliée aux données de 74HC595 (DS)
const int dataPin_595 = 11 ; déjà 11
int bitToSet ; bit sur 595 Maj Registre pour définir

int button_Switch1 = 2 ;

la mélodie d’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 pour écrire sur le registre 595
#define white_led 4
#define blue_led 1
#define green_led 2
#define yellow_led 3

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

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

installation Sub ()
{
pinMode (loadpin, sortie) ;
pinMode (clockpin, sortie) ;
pinMode (entrée, SOpin) ;

Réglez de façon strictement à la sortie parce qu’elles sont adressées dans la boucle principale
pinMode (latchPin_595, sortie) ;
pinMode (dataPin_595, sortie) ;
pinMode (clockPin_595, sortie) ;

pinMode (button_Switch1, entrée) ; 5 commutateurs de bouton avec LED

digitalWrite (loadpin, basse) ;
digitalWrite (clockpin, HIGH) ;
digitalWrite (button_Switch1, basse) ;

led_check(1) ; Leds s’allument et jouer une seule note... au hasard


Serial.Begin(9600) ;

Idle_time=Millis() ;
}

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

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

pulseclock() ;
}
fin de cycle d’horloge pour 2 registres à décalage.

loWord = mot (registerContent, registerContent2) ; convertir les deux octets dans un mot
Serial.Print ("valeur de sortie:") ;
Serial.println(loWord,DEC) ; imprimer le mot sous forme décimale

{Switch(loWord)}
cas 36864 :
Serial.println ("les deux Up") ;
bitToSet = red_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(2) ;
rupture ;
cas 3072 :
Serial.println ("les deux Down") ;
bitToSet = green_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(2) ;
rupture ;
cas 24576 :
Serial.println ("les deux gauche") ;
bitToSet = white_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(2) ;
rupture ;
cas 768 :
Serial.println (« les deux « droit ») ;
bitToSet = blue_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(2) ;
rupture ;
cas 8 :
Serial.println "(bouton blanc") ;
bitToSet = white_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(1) ;
rupture ;
No 32 :
Serial.println "(bouton jaune") ;
bitToSet = yellow_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(1) ;
rupture ;
cas 1 :
Serial.println "(bouton bleu") ;
bitToSet = blue_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(1) ;
rupture ;
cas 2 :
Serial.println ("bouton rouge") ;
bitToSet = red_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(1) ;
rupture ;
case 16 :
Serial.println ("bouton vert") ;
bitToSet = green_led ;
registerWrite (bitToSet, HIGH) ;
Playtone(1) ;
rupture ;

par défaut :
rien n’a poussé ou séquence non reconnu
pour (int thisPin = 0; thisPin < 16 ; thisPin ++) {}
registerWrite (thisPin, basse) ;
}
registerContent = 0 ;
registerContent2 = 0 ;

} / / fin de cas / switch

saisir l’heure actuelle

check_idle_time() ; Vérifiez le délai d’inactivité

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

retard (250) ;
}

Sub pulseload ()
{
digitalWrite (loadpin, HIGH) ;
retard (5) ;
digitalWrite (loadpin, basse) ;
}

Sub pulseclock ()
{
digitalWrite (clockpin, basse) ;
retard (5) ;
digitalWrite (clockpin, HIGH) ;
}

void registerWrite (int whichPin, int whichState) {}
les morceaux que vous souhaitez envoyer
bitsToSend octets = 0 ;

désactiver la sortie afin que les tiges ne s’allument pas
alors que vous êtes décalage de bits :
digitalWrite (latchPin_595, basse) ;

activer le bit plus élevé suivant dans bitsToSend :
bitWrite (bitsToSend, whichPin, whichState) ;

déplacer les bits sur :
shiftOut (dataPin_595, clockPin_595, MSBFIRST, bitsToSend) ;

activer la sortie si les LED peuvent s’allumer :
digitalWrite (latchPin_595, HIGH) ;

}

void playtone (int num_of_tones) {}
Jouez une note au hasard de mélodie
pour (int i = 0; i < num_of_tones; i ++) {}
int rand_note = random(0,7) ; choisir une note de tableau de mélodie
int rand_duration = (random(1,2)) * 4 ; 4 ou 8
pour calculer la durée de la note, prendre une seconde
divisé par le type de note.
par exemple la note noire = 1000 / 4, note croche = 1000/8, etc..
int noteDuration = 1000/rand_duration ;
ton (tonepin, melody[rand_note],noteDuration) ;

pour distinguer les notes, fixer une durée minimale entre eux.
Durée + 30 % de la note semble bien fonctionner :
int pauseBetweenNotes = noteDuration * 1.30 ;
Delay(pauseBetweenNotes) ;
arrêter la lecture de ton :
noTone(tonepin) ;
Idle_time=Millis() ;
}
}

Sub led_check(int tone_count)
{

pour (int led_bit = 0; led_bit < 5; led_bit ++) {}
registerWrite (led_bit, HIGH) ;
Playtone (tone_count) ;
retard (250) ;
registerWrite (led_bit, basse) ;
Idle_time=Millis() ; réinitialiser la minuterie d’inactivité
}
}

void check_idle_time() {}

Si (millis() > idle_time + 600000) {}
10 minutes d’inactivité
led_check(2) ; LED lumière joue 2 notes
Idle_time=Millis() ;
}
}

Articles Liés

Yogy - l’Arduino alimenté Robot fait pour les enfants

Yogy - l’Arduino alimenté Robot fait pour les enfants

dans ce Instructable je vais vous montrer comment faire un mignon et kid friendly Robot Obstacle évitant, j'aime appeler Yogy.Yogy obtient son nom du corps de baignoire d'yaourt qu'il est issu. Je suis une ventouse pour voir le meilleur dans la corbe
Mixage de couleurs RGB LED touch jouet pour les enfants

Mixage de couleurs RGB LED touch jouet pour les enfants

je veux créer un jouet interactif pour mes enfants à jouer avec moi. Nous tenir mains ensemble, puis le RGB LED montre différentes couleurs. Maintenez serré ou plus léger, ou toucher différentes parties du corps de l'autre montrera des couleurs diffé
Mousquet (non-tir) de jouets pour les enfants

Mousquet (non-tir) de jouets pour les enfants

Kids + canal histoire = "papa !  Pouvez vous me faire un fusil?"C'est donc un tir non jouet pour enfants pour être utilisé avec beaucoup d'imagination et 1 seul déplacement (c'est à dire la baguette).Il n'est pas une réplique d'un silex - il n'y
Bases de couture pour les enfants.

Bases de couture pour les enfants.

je vais vous montrer les techniques de base que j'utilise quand je suis à coudre. Vous pouvez aller à travers les informations ici et pratiquez-le sur un morceau de tissu, ou aller de l'avant et commencer à n'importe quel projet de couture et reviens
Ondulées paille jouet pour les enfants de moins de 5 minutes

Ondulées paille jouet pour les enfants de moins de 5 minutes

Il s'agit d'un jouet que j'ai appris quelque part comme un gamin. Maintenant que mon fils grandit. Je faire pour lui.Étape 1: matériauxMatériaux simples :Paille épaisse (goûts de la MC Donalds)Paire de ciseauxÉtape 2: Comment faire Commencez par fair
Comment faire le CD toupies | Jouets pour les enfants

Comment faire le CD toupies | Jouets pour les enfants

Il s'agit d'une toupie cool qui vous permet d'utiliser certains de ces vieux CD ou DVD, vous avez la collecte de la poussière...
Vaisseau spatial pour les enfants de pli-able en carton

Vaisseau spatial pour les enfants de pli-able en carton

un jour au travail, nous avons reçu une livraison de certains articles dans deux grandes boîtes, alors j'ai décidé de faire un vaisseau spatial pour petit garçon de mon ami et a pris les maison de boîtes vides. J'étais vraiment excité au sujet de ce
Gyroscope éducatif pour les enfants aveugles

Gyroscope éducatif pour les enfants aveugles

un certain nombre d'années pour l'un de mes design cours à l'Université d'Otago, nous avons été chargé de concevoir et de construire un jouet pour les enfants ayant une déficience visuelle. Nous avons eu un haut-parleur venir et dites-nous tout sur l
Mariage animation pour les enfants pour sous un tenner

Mariage animation pour les enfants pour sous un tenner

Salut tout le monde ! C'est entré dans le défi mariage bricolage, alors si vous le souhaitez, vous pouvez voter pour elle !Les mariages sont une belle occasion, mais parfois pour les plus petites invités ils peuvent faire glisser un petit peu. Les lo
Cube de Puzzles pour les enfants (et adultes, trop)

Cube de Puzzles pour les enfants (et adultes, trop)

Cube® The Rubik (sept villes Ltd.) est très amusant pour les enfants à jouer avec. Cependant, 99,9 % de ces enfants ne résoudra jamais il. La plupart des adultes ne peut pas faire non plus. Si l'expérience peut être frustrant et humiliant. Puzzle cub
Ustensiles pour les enfants

Ustensiles pour les enfants

vous êtes un parent qui a un moment difficile obtenir leurs enfants à manger leurs légumes ? Ou peut-être que vous êtes comme moi et wince à l'idée d'une assiette de brocoli cuit à la vapeur. Brocoli pourrait ne pas être beaucoup d'amusement pour les
Bateau à vapeur pop-pop ou put-put rendu facile pour les enfants

Bateau à vapeur pop-pop ou put-put rendu facile pour les enfants

enfants, depuis environ 6 ans, peuvent réaliser ce bateau de la véritable vapeur propulsé sous la surveillance d'un adulte. Ce bateau à vapeur pop-pop ou put-put n'exige ni soudure ni collage. Aucun perçage ou la ponction n'est nécessaire. Cela impli
Comment faire une expérience pour les enfants

Comment faire une expérience pour les enfants

https://youtu.be/GAFAv73w_pAÉtape 1: Faire une expérience pour les enfants vous devez !Pour cette expérience, vous aurez besoin :1. un sac transparent2. une bouteilles d'eau en plastique.3. Coloriage4. ciseauxÉtape 2: Dans cette instructables tutorie
Mur d’activité pour les enfants

Mur d’activité pour les enfants

Cet Instructable va vous montrer comment j'ai fait un mur d'activité ou « Bureau occupé » pour classe de maternelle de ma femme.Tournez les enfants raffolent de jouer avec les choses et avoir un endroit qu'ils peuvent les boutons poussoirs, boutons e