"Grove"r (6 / 10 steg)

Steg 6: kod




Spara dessa 3 koder för lyssna, se och sjunga som arduino (.ino) filer separat:

Jag har tagit de IDE-filerna men de har olika namn.

Lyssna:

int soundSensorPin = A0;
int soundReading = 0; int soundThreshold = 500. int intensitet [3] = {0,0,0}. int LEDPins [3] = {2,4,5}. int numberOfPins = 3; int currentPin = 0; int fadeCounter = 0; int fadeDelay = 50; booleska switcher = sant;

void setup() {pinMode(soundSensorPin, INPUT); för (int jag = 0; jag

void loop() {soundReading=analogRead(soundSensorPin); if(soundReading>soundThreshold) {if(switcher) {aboveThreshold(currentPin); switcher = sant;}} annat {if(switcher) {belowThreshold(); switcher = sant;}}}

void aboveThreshold (int cPin) {switcher = false; om (intensitet [cPin] < 10) {intensitet [cPin] = 255; delay(50); currentPin = currentPin + 1;}

IF(currentPin==numberOfPins) {currentPin = 0;}}

void belowThreshold() {switcher = false; fadeCounter ++; if(fadeCounter==fadeDelay) {fadeCounter = 0; för (int jag = 0; jag

Källa: https://gist.github.com/michelleboisson/3830481

Följt av se:

/*
* Kontrollera Servo via ljussensor (e.g. fotomotstånd). ** Copyright (C) 2010 Efstathios Chatzikyriakidis (kontakta ** det här programmet är fri programvara: du kan vidaredistribuera det och/eller ändra * det enligt villkoren i GNU General Public License som offentliggörs av * Free Software Foundation, antingen version 3 av licensen, eller * (på ditt alternativ) någon senare version. ** detta program är distribuerat i hopp om att det kommer att vara bra, * men utan garantier, utan ens underförstådd garanti om * SÄLJBARHET eller lämplighet för ett visst ändamål. Se den * GNU General Public License för mer detaljer. ** Du bör ha fått en kopia av GNU General Public License * tillsammans med detta program. Om inte, se. * / / / include bibliotek för servo. #include servo myServo; servo-objekt för att styra en servo skapas. CONST int servoPin = 7. pin-kod (PWM) för servo. CONST int sensorPin = 3; pin-kod för inmatningssensorn. aktuella och tidigare värden för servo enheten. int valServo = 0; int oldValue = 0; följande värden kan ändras i enlighet ljussensorn. utför en kalibrering med ren mörk och rena ljus först. CONST int lightMin = 170; Ange lämpligt värde för ljussensorn. CONST int lightMax = 512; Ange lämpligt värde för ljussensorn. CONST int LIGHT_SENSE = 5; skillnaden nivå känslighet värde. CONST lång fördröjningstid = 15. servo rörelse fördröjningstiden i millis. Start punkt post (körs en gång). Annullera setup () {/ / ställa in sensorn som indata. pinMode (sensorPin, ingång); / / bifoga servo på en pin. myServo.attach(servoPin);} / / slinga huvudsakliga skissen. Ogiltig loop () {/ / få värdet från ljus sensor. int valServo = analogRead(sensorPin); / / karta värdet till min, max av servo. valServo = karta (valServo, lightMin, lightMax, 0, 179); / / se till att värdet är mellan min, maximal av valServo servo. = begränsa (valServo, 0, 179); / / flytta servo endast om ljuset ändras nog. om (abs (valServo - oldValue) > LIGHT_SENSE) {/ / flytta servo. myServo.write(valServo); / / hålla den senaste värde. oldValue = valServo;} / / vänta lite tid servo till move. delay(delayTime);}

Källa:

Följt av sjunga:

/*
Arduino Mario Bros låtar med Piezo summern och PWM Anslut den positiva sidan av summern till stift 3, sedan den negativa sidan till en 1 k ohms motstånd. Anslut den andra sidan av en 1 k ohm motstånd till ground(GND) stift på Arduino. av: Dipto Pratyaksa Senast uppdaterad: 31/3/13 * / / *** * offentliga konstanter *** / #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_ E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_ C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_ GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_ E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978 #define melodyPin 3 //Mario huvudtema melodi int melodi [] = {NOTE_E7, NOTE_E7, 0, NOTE_E7 , 0, NOTE_C7, NOTE_E7, 0, NOTE_G7, 0, 0, 0, NOTE_G6, 0, 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6 0, 0, NOTE_C7, 0, 0, NOTE_G6, 0, 0, NOTE_E6, 0, 0, NOTE_A6, 0, NOTE_B6, 0, NOTE_AS6, NOTE_A6, 0, NOTE_G6, NOTE_E7, NOTE_G7, NOTE_A7, 0, NOTE_F7, NOTE_G7, 0, NOTE_E7, 0, NOTE_C7, NOTE_D7, NOTE_B6, 0, 0}; Mario main dem tempo int tempo [] = {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 9, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,}; Underjorden melodi int underworld_melody [] = {NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0 NOTE_DS4, NOTE_CS4, NOTE_D4, NOTE_CS4, NOTE_DS4, NOTE_DS4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4, NOTE_GS4, NOTE_DS4, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_GS3, 0, 0, 0}; Underwolrd tempo int underworld_tempo [] = {12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 3, 12, 12, 12, 12, 12, 12, 6, 6, 18, 18, 18, 6, 6, 6, 6, 6, 6, 18, 18, 18, 18, 18, 18, 10, 10, 10, 10, 10, 10, 3, 3, 3}; void setup(void) {pinMode (3, OUTPUT); //buzzer pinMode (13, OUTPUT); //led indikator när sjunger en anteckning} void loop() {//sing låtar sing(1); sing(1); sing(2);} int låten = 0; void sing (int s) {/ / iterera över tonerna i melodin: låten = s; om (låten == 2) {Serial.println ("" Underworld tema""); int storlek = sizeof(underworld_melody) / sizeof(int); för (int thisNote = 0; thisNote < storlek; thisNote ++) {/ / för att beräkna noterar varaktighet, ta en sekund / / dividerat med den anmärkning typ. / / e.g. fjärdedelsnot = 1000 / 4, åttondelen noterar = 1000/8, etc. int noteDuration = 1000 / underworld_tempo [thisNote]; buzz (melodyPin underworld_melody [thisNote], noteDuration); för att skilja anteckningar, ange en minsta tid mellan dem. tonens längd + 30% verkar fungera bra: int pauseBetweenNotes = noteDuration * 1,30; Delay(pauseBetweenNotes); stoppa uppspelningen tonen: buzz (melodyPin, 0, noteDuration); {}} annat {Serial.println ("' Mario Theme'"); int storlek = sizeof(melody) / sizeof(int); för (int thisNote = 0; thisNote < storlek; thisNote ++) {/ / för att beräkna noterar varaktighet, ta en sekund / / dividerat med den anmärkning typ. / / e.g. fjärdedelsnot = 1000 / 4, åttondelen noterar = 1000/8, etc. int noteDuration = 1000 / tempo [thisNote], buzz (melodyPin, melody [thisNote], noteDuration); / / för att skilja anteckningarna, som en minsta tid mellan dem. / / tonens längd + 30% verkar fungera bra : int pauseBetweenNotes = noteDuration * 1,30; Delay(pauseBetweenNotes); stoppa uppspelningen tonen: buzz (melodyPin, 0, noteDuration); }}} void buzz (int targetPin, lång frekvens, lång längd) {digitalWrite (13, hög), lång delayValue = 1000000 / frekvens / 2; / / beräkna dröjsmål värdet mellan övergångar / / / 1 sekund är värt mikrosekunder, dividerat med frekvensen, då kluvna sedan / / / det är två faser till varje cykla långa numCycles = frekvens * längd / 1000; / / beräkna antalet cykler för rätt tid / / / multiplicera frekvens, vilket är riktigt cykler per sekund , av antalet sekunder till / / / få det totala antalet cykler att producera för (länge jag = 0; jag < numCycles; i ++) {/ / för den beräknade längden av tid... digitalWrite (targetPin, hög); / / Skriv summern pin hög att driva ut diaphram delayMicroseconds(delayValue); / / vänta tills beräknad försening värde digitalWrite (targetPin, låg); / / Skriv PIN-koden Summer låg för att dra tillbaka diaphram delayMicroseconds(delayValue); / / vänta igen eller beräknad försening värde} digitalWrite (13 LÅG); }

Källa: http://www.princetronics.com/supermariothemesong/

Se Steg
Relaterade Ämnen

Hur man gör grova hagel SHOOTERS

Hej alla Darryl "The hem Bar killen" Logan här och dagens recept är för en välsmakande skottav varma oskärpa. Den grova hagel innehåller0,5 Oz Whiskey (jag använder Jack Daniels)0,5 Oz Tequila0,5 Oz Baileys Irish Creamoch nymalen svartpeppar för...

Alla ändamål grov sågade projektregistret

Min fru ville ha en projektregistret att hon kunde göra mat prep, sömnad och andra projekt på. Hon ville också att det är oavslutat - som ett arbetsbord. Så jag tänkte att det bästa alternativet skulle för att bygga något så skrymmande att hon aldrig...

Bygga en bärbar grov-sågade byggnad

IntroNågonsin att du har för mycket grejer? Din minimalistiska vänner ge dig hånfull ser ut när du kommer hem med mer loppmarknad godsaker? (Eller, jag menar, viktigt och användbart verktyg...?) Om du befinner dig spendera alltför mycket tid vada gen...

Grove Lucky Dumpling

LCD-skärmen är den första skärmen jag mixtrar med. Det är roligt, Billigt och framför allt bra stöd av gemenskapen (Sök LCD, och du får en hel del bibliotek och exempel redo att använda).Vi har också en LCD-display i Grove - startpaket. Och bättre än...

Grove Minimal termometer

För nybörjare i Arduino världen, kan temperatur sensor/thermo motstånd vara en av de mest kända sensorerna. Det finns otaliga sätt att visa informationen som temperatur, som färg LED, seriell verktyg på din PC, ledde bar, LCD-display och så vidare.Sk...

Anpassade formad planter låda ur gamla tunga-i-grove styrelser

I detta instructable jag kommer att visa dig hur man gör en planter låda ur gamla tunga-i-grove styrelser (eller nya om du gillar) att du kan utforma för att passa sidan av ditt hus.Jag för närvarande fordonsreparationslackering min veranda golv (kan...

Gest-kontrollerade Pac Man med Arduino & Grove gest modul

PAC-man Pac-man Pac-man! Hahaa! Om någon av er vet vad jag talar om, måste du vara gammal nog att veta sådant ett gammaldags arkadspel, precis som mig XD (nr BROTTET). I själva verket började jag att spela de klassiska japanska spelet eftersom jag va...

Giftigt banan avfall (en mycket grov Halloween efterrätt)

detta är en grov uppfinning jag gjorts baserat på en av mina systrar recepies, det ser är brutto, det känns brutto, det luktar gross, men dess delicios.Och glöm inte att rösta!Steg 1: leveranser Behöver du: BananerStekpannaBlenderMajssirapSmörGrön ka...

Du installerar Grove biblioteket för Intel Edison

Detta instructable kommer att lära dig att installera Grove bibliotek och köra grundläggande demos för dungen startpaket plus gen 2 på Intel Edison-plattformen.Följande material krävs för detta instructable:(1) Intel Edison + Arduino breakout ombord(...

Intellekten Edison enkelt avstånd Sensor med Grove LED Bar indikator och Summer

Detta är min första och "egentligen" enkla projekt som jag gjorde med hjälp av Intel Edison. Detta "enkla" projekt kommer att mäta avstånd med hjälp av ultraljud sensor och LED bar kommer att visa hur långt avståndet är summern kommer...

Intellekten Edison med Grove LCD, temperaturgivare och infraröd sensor

Grove LCD.Temperature sensor 與 infraröd sensor分別是以I2C.ADC.GPIO作為傳輸介面使用上也相當的簡單mraa bibliotek中有完整的使用方式Grove的官方資料與範例也相當齊全所以實作上並不會太困難Steg 1: Grove LCD 此部分需要 import pupm_i2clcd建議以下寫法(使用Python)importera pyupm_i2clcd som lcdmyLcd = lcd. Jhd1313m1 (0, 0x3E,...

Interaktiva Ambient Sensor med Intel Edison & Grove Starter Kit Plus

Hej jag har sett en hel del Instructables här men jag vill göra ett projekt där du kan se användningen av olika sensorer, knappar, buzzers, lysdioder och lcd tillsammans! Vad vi kommer att inse är en interaktiv SENSOR för omgivande där du kan välja v...

Rumstemperatur upptäckten med Galileo Gen 2 och Grove Kit

Jag kommer att visa dig hur du ställer in en interaktiv rumstemperatur projekt med LCD RBG och temperatur sensor använder Intel Galileo och grove kit.Steg 1: Hämta Arduino IDE för Intel Galileo och temperatur sensor koden.Steg 2: Öppna koden i IDE, v...

Autolog - autonom GPS-tracker (Intel Edison + Grove GPS)

används Hardwre:-Intel Edison + Arduino breakout-Grove GPS-Grove Accelerometer-Grove TemperaturesensorSteg 1: Komma igång med Intel Edison1. Packa upp din Intel Edison + ansluta till den för första gången:Koppla in både USB-kablar och ansluta via ser...

Sista minuten Grover och Elmo kostymer

så min flickvän och jag hade planerat i månader på vad man ska vara för Halloween. Så när typ av Smet på oss vi visste var vi fastskruvade. Vi rusade runt letar efter en kostym för vår son, Vi hittade honom en cookie monster kostym, han ser bra ut i...

Fixa & reparera din bullriga & grov borr maskiner

IntroduktionHej alla i detta instructable jag hur u ska fixa & reparera din bullriga & grov borr maskinerVarje maskin behöver översyn om ignoreras då det kommer att påverka dess rörlig del att slitas ut på grund av olika orsaker till exempel:-Bris...

LinkIt en Tutorials - #5 Grove Headers

En av de mindre uppenbara extrafunktioner LinkIt en styrelse är två vita huvuden med 4 stift i. Dessa kallas Grove headers och är utformade så att du kan fästa en tråd och att kunna använda alla typer av hårdvara snabbt och enkelt.För denna tutorial...

Grove startpaket med LinkIt en

När jag började med IoT jag var alla förvirrade om elektronik tyger, motstånd och kretsar, då jag fick Seeed Studio's Grove Starter Kit plus. Med detta har vi att bara koppla in modulerna som sensor istället för att hantera det genom lödning eller ba...

Arduino Grove WiFi aktiverat växthusgaser

Essentials:GroveGrove - hög noggrannhet temperatur/hygrometergivareGrove - Analog ljussensorGrove - EncoderGrove-UV SensorGrove - markfuktighetGrove - RGB 16 x 2 VisaGrove-20 CM kabel x3Grove-50 CM kabel x2Grove-Sensor Shield (Köp en avsedd för UNO i...

Grove startpaket med Intel Galileo Gen 2: Komma igång

När jag började med IoT var jag alla förvirrade om elektronik materialen,motstånd och kretsar, då jag fick Seeed Studio's Grove Starter Kit plus. Med detta har vi att bara koppla in modulerna som sensor istället för att hantera det genom lödning elle...