Arduino gebaseerd speelgoed voor kinderen (4 / 6 stap)

Stap 4: Arudino Code


Hieronder is mijn code van de Arduino voor dit project.

#include "pitches.h" / / bevat de toelichting waarnaar wordt verwezen in deze code.

int tonepin = 3; om te spelen de muzikale tonen
int loadpin = 9;
int clockpin = 7;
int SOpin = 8;

unsigned long idle_time;

byte registerContent = 0;
byte registerContent2 = 0;
lange loWord; voorheen was een integer
int bitContent = 0;
lange idle_millseconds = 0;

Pin verbonden met klink pin (ST_CP) van 74HC595
Const int latchPin_595 = 10; eerder 10
Pin verbonden met klok pin (SH_CP) van 74HC595
Const int clockPin_595 = 12; eerder 12
Pin verbonden met gegevens in (DS) van 74HC595
Const int dataPin_595 = 11; eerder 11
int bitToSet; beetje op 595 verschuiving registreren om in te stellen

int button_Switch1 = 2;

int melodie [] {} =
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 / / bit om op 595 register te schrijven
#define white_led 4
#define blue_led 1
#define green_led 2
#define yellow_led 3

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

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

void setup)
{
pinMode (loadpin, OUTPUT);
pinMode (clockpin, OUTPUT);
pinMode (SOpin, INPUT);

pinnen aan output omdat zij zijn gericht in de hoofdlus instellen
pinMode (latchPin_595, OUTPUT);
pinMode (dataPin_595, OUTPUT);
pinMode (clockPin_595, OUTPUT);

pinMode (button_Switch1, INPUT); 5 knop switches met leds

digitalWrite (loadpin, laag);
digitalWrite (clockpin, hoge);
digitalWrite (button_Switch1, laag);

led_check(1); Leds oplichten en spelen een enkele noot... willekeurige


Serial.begin(9600);

idle_time=Millis();
}

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

Als (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();
}
einde van klokcyclus voor 2 shift registers.

loWord = woord (registerContent, registerContent2); omzetten van twee bytes in een woord
Serial.Print ("Output waarde:");
Serial.println(loWord,DEC); het woord als een decimaal getal afdrukken

switch(loWord) {}
Case 36864:
Serial.println ("beide Up");
bitToSet = red_led;
registerWrite (bitToSet, hoge);
playtone(2);
breken;
Case 3072:
Serial.println ("beide Down");
bitToSet = green_led;
registerWrite (bitToSet, hoge);
playtone(2);
breken;
Case 24576:
Serial.println ("beide links");
bitToSet = white_led;
registerWrite (bitToSet, hoge);
playtone(2);
breken;
Case 768:
Serial.println ("beide rechts");
bitToSet = blue_led;
registerWrite (bitToSet, hoge);
playtone(2);
breken;
zaak 8:
Serial.println ("witte Button");
bitToSet = white_led;
registerWrite (bitToSet, hoge);
playtone(1);
breken;
Case 32:
Serial.println ("gele Button");
bitToSet = yellow_led;
registerWrite (bitToSet, hoge);
playtone(1);
breken;
Case 1:
Serial.println ("blauwe knoop");
bitToSet = blue_led;
registerWrite (bitToSet, hoge);
playtone(1);
breken;
Case 2:
Serial.println ("rode knop");
bitToSet = red_led;
registerWrite (bitToSet, hoge);
playtone(1);
breken;
case 16:
Serial.println ("groene knop");
bitToSet = green_led;
registerWrite (bitToSet, hoge);
playtone(1);
breken;

standaard:
niets geduwd of niet-herkende volgorde
voor (int thisPin = 0; thisPin < 16; thisPin ++) {}
registerWrite (thisPin, laag);
}
registerContent = 0;
registerContent2 = 0;

} / / einde van zaak / schakelaar

/ / Capture huidige tijd

check_idle_time(); inactiviteit tijd controleren

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

vertraging (250);
}

VOID pulseload)
{
digitalWrite (loadpin, hoge);
vertraging (5);
digitalWrite (loadpin, laag);
}

VOID pulseclock)
{
digitalWrite (clockpin, laag);
vertraging (5);
digitalWrite (clockpin, hoge);
}

VOID registerWrite (int whichPin, int whichState) {}
de bits die u wilt verzenden
byte bitsToSend = 0;

uitschakelen van de output zodat de pinnen niet oplichten
terwijl u bits verschuiven:
digitalWrite (latchPin_595, laag);

Schakel op de volgende hoogste bit in bitsToSend:
bitWrite (bitsToSend, whichPin, whichState);

verschuiving van de bits uit:
shiftOut (dataPin_595, clockPin_595, MSBFIRST, bitsToSend);

op de uitvoer inschakelen, zodat de LEDs kunnen oplichten:
digitalWrite (latchPin_595, hoge);

}

VOID playtone (int num_of_tones) {}
een willekeurige noot van de melodie speelt
for (int i = 0; ik < num_of_tones; i ++) {}
int rand_note = random(0,7); Kies één opmerking uit melodie array
int. rand_duration = (random(1,2)) * 4; 4 of 8
voor het berekenen van de duur van de opmerking, neem één seconde
gedeeld door het type opmerking.
bijvoorbeeld kwartnoot = 1000 / 4, achtste noot = 1000/8, enz.
int noteDuration = 1000/rand_duration;
Toon (tonepin, melody[rand_note],noteDuration);

om te onderscheiden van de notities, stel een minimuminterval tussen hen.
de nota's duur + 30% schijnt goed te werken:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
Stop het afspelen van de Toon:
noTone(tonepin);
idle_time=Millis();
}
}

VOID led_check(int tone_count)
{

voor (int led_bit = 0; led_bit < 5; led_bit ++) {}
registerWrite (led_bit, hoge);
playtone (tone_count);
vertraging (250);
registerWrite (led_bit, laag);
idle_time=Millis(); opnieuw instellen van de timer voor het uitschakelen
}
}

ongeldig check_idle_time() {}

Als (millis() > idle_time + 600000) {}
10 minuten van inactiviteit
led_check(2); lichte leds spelen 2 noten
idle_time=Millis();
}
}

Gerelateerde Artikelen

Houten duizendpoot Pull speelgoed voor kinderen

Houten duizendpoot Pull speelgoed voor kinderen

dit is een snelle houten Trek speelgoed dat u in een paar uur met basishulpmiddelen bouwen kunt. Ik bouwde het voor mijn kleine meisje eerste verjaardag een paar weken geleden. Alle het snijden, boren en montage redelijk snel kunnen gebeuren. Tevens
LED RGB kleurenmixing touch speelgoed voor kinderen

LED RGB kleurenmixing touch speelgoed voor kinderen

ik wil een interactief speelgoed voor mijn kinderen om te spelen met mij te maken. We houden elkaar handen dan de RGB LED verschillende kleuren toont. Houd strakker of lichter, of de verschillende delen van de aanraking van elkaars lichaam toont vers
Arduino gebaseerde Chronometer voor elektrische auto race Tracks

Arduino gebaseerde Chronometer voor elektrische auto race Tracks

In dit project die ik ben met behulp van een custom-built infrarode nabijheidssensor gekoppeld aan een Arduino board aan de tijd van de ronden over een elektrische auto race circuit. De sensor detecteert de auto wanneer het passeert achter zit en de
Betaalbare open hardware Arduino gebaseerde technologie voor blinden

Betaalbare open hardware Arduino gebaseerde technologie voor blinden

In dit artikel wil ik je vertellen over een ultrasone sleutelhanger het apparaat voor de blinden die opsporen van hindernissen op een hoger niveau helpen, waarop een eenvoudige witte stok kan niet voor de gebruikers waarschuwen. Deze obstakels kunnen
Arduino gebaseerd testprogramma voor RGB-Matrix LED

Arduino gebaseerd testprogramma voor RGB-Matrix LED

Dit is een zeer eenvoudige Arduino project dat Configuratiescherm de 16 x 32 RGB LED Matrix via een 16pin IDC kabel. De Arduino zal continu 5 set kleuren (rood, groen, blauw, wit, zwart) te sturen naar hettoezichtpanel Matrix LED, waarmee de technicu
Musket (niet-vuren) speelgoed voor kinderen

Musket (niet-vuren) speelgoed voor kinderen

Kinderen + geschiedenis channel = "Papa!  Kun je me een musket?"Dus is dit een niet-vuren kind speelgoed moet worden gebruikt met veel verbeelding en slechts 1 deel (dwz de laadstok) verplaatsen.Het is niet een replica van een flintlock - er is
Wiggly stro speelgoed voor kinderen in minder dan 5 minuten

Wiggly stro speelgoed voor kinderen in minder dan 5 minuten

Dit is een speelgoed leerde ik ergens als een kind. Nu als mijn zoon is opgroeien. Ik maak het voor hem.Stap 1: materialenEenvoudige materialen:Dik stro (houdt van de MC Donalds)SchaarStap 2: Hoe te maken Allereerst maken kleine diagonaal snijden aan
Arduinos: Arduino gebaseerd toetsenbord voor controle van Sonos streaming

Arduinos: Arduino gebaseerd toetsenbord voor controle van Sonos streaming

Ik vind de Sonos setup we in ons huis hebben, maar ik haat moetend brand-up van mijn smartphone of tablet wanneer ik moet verschuiven tussen internetradiostations.We luisteren normaal gesproken gewoon naar een paar lokale radiostations (en natuurlijk
Interactief speelgoed voor kinderen. (licht en geluid)

Interactief speelgoed voor kinderen. (licht en geluid)

Dit is een circit die ik gebruik op kleine kinderen (1-3), het maakt gebruik van LED's, en een zoemer. Wanneer de jongen op een knop drukt gebeurt er iets. Bekijk de vid om meer te zien. (zet het geluid te horen van de zoemer, het is helemaal in de v
Hoe maak je een Remote Controlled speelgoed voor kinderen

Hoe maak je een Remote Controlled speelgoed voor kinderen

Leren om te maken van een externe gecontroleerde Robot speelgoed thuis. Dit speelgoed werkt met twee kleine gelijkstroommotoren en wordt bestuurd door een bedrade afstandsbediening. Het heeft een 360 graden rotatie en individuele manoeuvreren mogelij
How to Make CD spinnen Tops | Speelgoed voor kinderen

How to Make CD spinnen Tops | Speelgoed voor kinderen

Dit is een cool spinnen boven dat u toelaten zal om het gebruik van sommige van deze oude cd's of dvd's hebt u het verzamelen van stof...
Ruimteschip voor kinderen vouwen-baar gemaakt van karton

Ruimteschip voor kinderen vouwen-baar gemaakt van karton

een dag op het werk dat we hebben ontvangen van een levering van bepaalde items in twee grote dozen, dus ik besloten heb om een ruimteschip te maken voor mijn vriend kleine jongen en nam de lege vakjes thuis. Ik was echt enthousiast over dit kleine p
Arduino gebaseerd bier gister thermostaat

Arduino gebaseerd bier gister thermostaat

Het idee was om een arduino gebaseerd thermostaat voor een fridgecombined met een warmtebron zonder het hacken van de koelkast zelf.Voor dit project moet je (links naar verwijzen Belgische webshop zodat u een voorbeeld zien kunt):-Arduino (of Funduin
Arduino knipperende LED Project voor kinderen

Arduino knipperende LED Project voor kinderen

Knipperende LED Project met Arduino UNO. Basisproject voor kinderen leukWat u ook nodig hebt!Arduino UNOBreadboard3 LED'sJumper draden1 k Ohm weerstandenStap 1: Aansluiten van dradenSluit alle kabels per fotogrond verbinden met het breadboard (-) spo