Rapunzel's Magic Brush (2 / 5 steg)
Steg 2: Arduino krets
• 1 högtalare eller 1 piezo
• 1 LilyPad Arduino w / ATmega 328 med rätt kablar att ansluta till datorn
• 2" för kvinnliga headers
• 10 lysdioder
• 1 ft av tråd
• Lödning
Förfarande
Steg 1:
Ladda ner och installera programmet Arduino. Öppna Arduino och använda http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-WEB.pdf att öva att skapa CIRC-06 "Piezo element."
Steg 2:
Öppna Arduino och gå till file > exempel > digitala > knappen. Ställ in Arduino, LED och knappen som instrueras i kommentarerna. Försöker att kompilera koden, Anslut din arduino till datorn och ladda upp koden till din Arduino ombord med hjälp av ctrl U. tips: gå till Verktyg > styrelse och verktyg > seriell port så att rätt alternativ har valts. I detta fall använder du LilyPad Arduino / ATmega 328 och COM för vilken port du har anslutit din Arduino att.
Steg 3:
Nu är du redo att skapa din egen krets. Vi kommer att göra en kombination av båda exemplen till en svalare. Poängen är att göra alla lampor lyser upp när Arduino spelar musik, och göra det spela musik endast när utlöste det gör. Här för stift 2, istället för att använda en knapp, kommer vi att endast oss en tråd som fungerar som en antenn, avkänning antingen mänskliga kapacitans eller motion. Stift 3-8 och 10-13 kommer vi att ansluta lysdioder som ansluts till jord. Talaren kommer att upprätthålla dess koppling från stift 9 till marken. Power (3V-batteri) bör slutligen anslutas från + till-. Tips: för att göra alla anslutningar robust är det effektivt att använda ett kvinnliga huvud som har varit lödda i botten (för att ansluta alla dess stift). Om du ansluter detta huvud till marken, och Anslut sedan i marken för varje LED, kommer att högtalare, och makt, felsökning vara en mycket enklare uppgift.
Steg 4:
Kopiera klistra in denna kod till Arduino, kompilera den och ladda upp den till din styrelse.
/ * Melodi
* (läpp) 2005 D. Cuartielles för K3
*
* Detta exempel används en piezo speaker för att spela melodier. Den skickar
* en fyrkantsvåg av lämplig frekvens till piezo, generera
* motsvarande tonen.
*
* Beräkning av tonerna är gjord efter den matematiska
* operation:
*
* timeHigh = period / 2 = 1 / (2 * toneFrequency)
*
* där beskrivs de olika tonerna som i tabellen:
*
* Observera frekvensen antika timeHigh
* c 261 Hz 3830 1915
* d 294 Hz 3400 1700
* e 329 Hz 3038 1519
* f 349 Hz 2864 1432
* g 392 Hz 2550 1275
* en 440 Hz 2272 1136
* b 493 Hz 2028 1014
* C 523 Hz 1912 956
*
* http://www.arduino.cc/en/Tutorial/Melody
*/
int speakerPin = 9;
int ledPin1 = 3;
int ledPin2 = 4;
int ledPin3 = 5;
int ledPin4 = 6;
int ledPin5 = 7.
int ledPin6 = 8;
int ledPin7 = 10;
int ledPin8 = 11;
int ledPin9 = 12;
int ledPin0 = 13.
CONST int buttonPin = 2;
int buttonState = 0; måste deklarera variabler
int längd = 15. antalet anmärkningar
char noterar [] = "ccggaagffeeddc"; ett utrymme representerar en vila
int slår [] = {1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4};
int tempo = 300;
{Ogiltig playTone (int tonen, int längd)
för (länge jag = 0; jag < varaktighet * 1000L; i += tonen * 2) {
digitalWrite (speakerPin, hög);
digitalWrite (ledPin1, hög);
digitalWrite (ledPin2, hög);
digitalWrite (ledPin3, hög);
digitalWrite (ledPin4, hög);
digitalWrite (ledPin5, hög);
digitalWrite (ledPin6, hög);
digitalWrite (ledPin7, hög);
digitalWrite (ledPin8, hög);
digitalWrite (ledPin9, hög);
digitalWrite (ledPin0, hög);
delayMicroseconds(tone);
digitalWrite (speakerPin, låg);
digitalWrite (ledPin1, låg);
digitalWrite (ledPin2, låg);
digitalWrite (ledPin3, låg);
digitalWrite (ledPin4, låg);
digitalWrite (ledPin5, låg);
digitalWrite (ledPin6, låg);
digitalWrite (ledPin7, låg);
digitalWrite (ledPin8, låg);
digitalWrite (ledPin9, låg);
digitalWrite (ledPin0, låg);
delayMicroseconds(tone);
}
}
void playNote (char note, int varaktighet) {
char namn [] = {'c', 'd ","e","f","g","a","b","C"};
int toner [] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
spela tonen motsvarar tonens namn
för (int jag = 0; jag < 8; i ++) {
om (namn [i] == OBS) {
playTone (toner [i], varaktighet);
}
}
}
void setup() {
pinMode (buttonPin, ingång);
pinMode (speakerPin, produktionen);
pinMode (ledPin1, produktionen);
pinMode (ledPin2, produktionen);
pinMode (ledPin3, produktionen);
pinMode (ledPin4, produktionen);
pinMode (ledPin5, produktionen);
pinMode (ledPin6, produktionen);
pinMode (ledPin7, produktionen);
pinMode (ledPin8, produktionen);
pinMode (ledPin9, produktionen);
pinMode (ledPin0, produktionen);
}
void loop() {
buttonState = digitalRead(buttonPin);
While(buttonState==High) {
för (int jag = 0; jag < längd; i ++) {
om (anteckningar [i] == "") {
fördröjning (beats [i] * tempo); resten
buttonState = digitalRead(buttonPin);
}
annat {
playNote (anteckningar [i], beats [i] * tempo);
buttonState = digitalRead(buttonPin);
}}
digitalWrite (speakerPin, hög);
digitalWrite (ledPin1, hög);
digitalWrite (ledPin2, hög);
digitalWrite (ledPin3, hög);
digitalWrite (ledPin4, hög);
digitalWrite (ledPin5, hög);
digitalWrite (ledPin6, hög);
digitalWrite (ledPin7, hög);
digitalWrite (ledPin8, hög);
digitalWrite (ledPin9, hög);
digitalWrite (ledPin0, hög);
}
While(buttonState==low) {
digitalWrite (speakerPin, låg);
digitalWrite (ledPin1, låg);
digitalWrite (ledPin2, låg);
digitalWrite (ledPin3, låg);
digitalWrite (ledPin4, låg);
digitalWrite (ledPin5, låg);
digitalWrite (ledPin6, låg);
digitalWrite (ledPin7, låg);
digitalWrite (ledPin8, låg);
digitalWrite (ledPin9, låg);
digitalWrite (ledPin0, låg);
buttonState = digitalRead(buttonPin);
}
}
Steg 5:
Testa din krets! Försök röra antennen och se om det lyser upp och börjar spela Twinkle Twinkle Little Star.