"Grove"r (6 / 10 stap)

Stap 6: Code


Sla deze 3 codes voor luisteren, zien en zingen als arduino (Ino) bestanden afzonderlijk:

Ik heb ook de IDE-bestanden, maar ze hebben verschillende namen.

Luisteren:

int soundSensorPin = A0;
int soundReading = 0; int soundThreshold = 500; int intensiteit [3] = {0,0,0}; int LEDPins [3] = {2,4,5}; int numberOfPins = 3; int currentPin = 0; int fadeCounter = 0; int fadeDelay = 50; Booleaanse switcher = true;

void setup {pinMode(soundSensorPin, INPUT); voor (int i = 0; i

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

VOID aboveThreshold (int cPin) {switcher = false; als (intensiteit [cPin] < 10) {intensiteit [cPin] = 255; delay(50); currentPin = currentPin + 1;}

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

VOID belowThreshold() {switcher = false; fadeCounter ++; if(fadeCounter==fadeDelay) {fadeCounter = 0; voor (int i = 0; ik

Bron: https://gist.github.com/michelleboisson/3830481

Gevolgd door Zie:

/*
* Control Servo via lichtsensor (bijvoorbeeld fotoweerstand). ** Copyright (C) 2010 Efstathios Chatzikyriakidis (Neem contact op met ** dit programma is vrije software: je kunt het herdistribueren en/of wijzigen * het onder de voorwaarden van de GNU General Public License zoals gepubliceerd door * de Free Software Foundation, hetzij versie 3 van de licentie, of * (naar uw keuze) een latere versie. ** dit programma is gedistribueerd in de hoop dat het bruikbaar, * maar WITHOUT ANY WARRANTY; zonder zelfs een impliciete garantie van * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Zie de * GNU General Public License voor meer details. ** U moet hebt ontvangen een kopie van de GNU General Public License * along with this program. Als dat niet het geval is, zie. * / / / bibliotheek voor servo. #include servo myServo; servo-object om te bepalen van een servo maken. Const int servoPin = 7; het pin-nummer (PWM) voor de servo. Const int sensorPin = 3; het pin-nummer voor de input sensor. huidige en eerdere waarden voor servo apparaat. int valServo = 0; int oldValue = 0; de volgende waarden kunnen wijzigen volgens de lichtsensor. het uitvoeren van een kalibratie met puur donker en zuivere licht op het eerste. Const int lightMin = 170; Stel de juiste waarde van de lichtsensor. Const int lightMax = 512; Stel de juiste waarde van de lichtsensor. Const int LIGHT_SENSE = 5; verschil niveau Sensivity value. Const lange delayTime = 15; Servo verkeer vertraging van tijd in millis. opstarten punt vermelding (eenmaal loopt). void setup () {/ / set sensor als input. pinMode (sensorPin, INPUT); / / toevoegen van de servo op een pin. myServo.attach(servoPin);} / / loop de belangrijkste schets. ongeldig lus () {/ / krijgen de waarde van de int valServo licht sensor. = analogRead(sensorPin); / / kaart de waarde aan de min, max van de servo. valServo = kaart (valServo, lightMin, lightMax, 0, 179); / / zorgen ervoor dat de waarde min, max van de servo. valServo wordt = beperken (valServo, 0, 179); / / servo verplaatsen alleen als licht genoeg verandert. als (abs (valServo - oldValue) > LIGHT_SENSE) {/ / verplaatsen van de servo. myServo.write(valServo); / / houden van de laatste waarde. oldValue = valServo;} / / wachten enige tijd de servo naar beweging. delay(delayTime);}

Bron:

Gevolgd door zingen:

/*
Arduino Mario Bros Tunes met Piezo zoemer en PWM verbinden met de positieve kant van de zoemer pin 3, dan de negatieve kant aan een 1 k ohm weerstand. Verbind de andere kant van de 1 k ohm weerstand met ground(GND) pin op de Arduino. door: Dipto Pratyaksa voor het laatst bijgewerkt: 31/3/13 * / / *** * openbare constanten *** / #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 hoofdthema melodie int melodie [] {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 hen 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,}; Onderwereld melodie 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}; ongeldig setup(void) {//buzzer pinMode (13, OUTPUT), pinMode (3, OUTPUT); //led-indicator als zingen een notitie} void loop {//sing de muziek sing(1); sing(1); sing(2);} int lied = 0; VOID zingen (int s) {/ / itereren over de noten van de melodie: lied = s; als (lied == 2) {Serial.println ("' Underworld thema'"); int grootte = sizeof(underworld_melody) / sizeof(int); voor (int thisNote = 0; thisNote < grootte; thisNote ++) {/ / voor het berekenen van de duur van de opmerking, neem één seconde / / verdeeld door het type opmerking. / / bv kwartnoot = 1000 / 4, achtste noot = 1000/8, etc. int noteDuration = 1000 / underworld_tempo [thisNote]; buzz (melodyPin underworld_melody [thisNote], 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); stoppen met het spelen van de Toon: buzz (melodyPin, 0, noteDuration); }} anders {Serial.println ("' Mario Theme'"); int grootte = sizeof(melody) / sizeof(int); voor (int thisNote = 0; thisNote < grootte; thisNote ++) {/ / voor het berekenen van de duur van de opmerking, neem één seconde / / verdeeld door het type opmerking. / / bv kwartnoot = 1000 / 4, achtste noot = 1000/8, etc. int noteDuration = 1000 / tempo [thisNote]; buzz (melodyPin, melodie [thisNote], 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); stoppen met het spelen van de Toon: buzz (melodyPin, 0, noteDuration); }}} ongeldig buzz (int targetPin, lange frequentie, lange lengte) {digitalWrite (13, hoge); lange delayValue = 1000000 / frequentie / 2; / / berekening van de vertragingswaarde tussen overgangen / / / 1 seconde het waard van microseconden, gedeeld door de frequentie, dan splitsen in tweeën sinds / / / er zijn twee fasen aan elke cyclus lange numCycles = frequentie * lengte / 1000; / / het getal berekenen van cycli voor juiste timing / / / vermenigvuldigen frequentie, die is echt cycli per seconde , door het aantal seconden aan / / / krijgen het totale aantal cycli te produceren voor (lang ik = 0; ik < numCycles; i ++) {/ / voor de berekende lengte van tijd... digitalWrite (targetPin, hoge); / / schrijven de zoemer pin hoog te duwen uit de diaphram delayMicroseconds(delayValue); / / wachten voor de vertraging van de berekende waarde digitalWrite (targetPin, laag); / / schrijven de zoemer pin lage zich terugtrekken van de diaphram delayMicroseconds(delayValue); / / wait weer of de berekende vertragingswaarde} digitalWrite (13 LAAG); }

Bron: http://www.princetronics.com/supermariothemesong/

Gerelateerde Artikelen

Aangepaste vormige planter vak uit oude tounge-in-grove planken

Aangepaste vormige planter vak uit oude tounge-in-grove planken

In dit instructable ik zal u tonen hoe te maken van een plantenbak box uit oude tounge-in-grove planken (of nieuwe desgewenst) dat u ontwerpen kunt aan de zijkant van uw huis.Ik ben momenteel het overspuiten van mijn veranda vloeren (misschien een la
Intel Edison eenvoudige afstandssensor met Grove Ledbar Indicator en zoemer

Intel Edison eenvoudige afstandssensor met Grove Ledbar Indicator en zoemer

Dit is mijn eerste en "echt" eenvoudige project dat ik gemaakt met behulp van Intel Edison. De zoemer zal buzz, deze "eenvoudige" project zal het meten van afstand met behulp van ultrasone sensor en de Ledbar zal tonen hoe ver de afsta
Grove sensoren met een deeltje kern - zalen Sensor

Grove sensoren met een deeltje kern - zalen Sensor

Onlangs kreeg ik een paar Grove Senors, en ik probeerde het draaien met een Arduino en de zeer volgende stap voor mij is om het naar het internet en wat een betere manier dan doen met een Deeltje Core. Om te beginnen van met ik ga u tonen hoe om tuig
Grove duim Joystick

Grove duim Joystick

Dit is deel drie van een serie van instructables waar ik nemen standaard Grove senors en onderdeels en draad het omhoog met een Arduino. In de laatste twee tutorials ik liet zien hoe een I2C motor stuurprogramma en een enkele as verbinden analoge Gyr
Gesture Controlled Pac Man w / Arduino & Grove gebaar Module

Gesture Controlled Pac Man w / Arduino & Grove gebaar Module

Pac-man Pac-man Pac-man! Hahaa! Als om het even welk van u weet wat ik over spreek, dan moet u oud genoeg om te weten zo'n een ouderwetse arcadespel, net als mij XD (NO OFFENSE). In feite, begon ik te spelen die klassieke Japanse spel sinds ik een kl
Arduino Grove WiFi toegelaten broeikasgassen

Arduino Grove WiFi toegelaten broeikasgassen

De Essentials:GroveGrove - hoge nauwkeurigheid temperatuur/vochtigheid SensorGrove - analoog lichtsensorGrove - EncoderGrove - UV SensorGrove - bodemvochtGrove - RGB 16 x 2 DisplayGrove - 20CM lange kabel x3Grove - 50CM lange kabel x2Grove - Sensor S
Intel Edison met Grove LCD, temperatuursensor en infrarode sensor

Intel Edison met Grove LCD, temperatuursensor en infrarode sensor

Grove LCD.Temperature sensor en infrarode sensor分別是以I2C.ADC.GPIO作為傳輸介面使用上也相當的簡單mraa bibliotheek中有完整的使用方式Grove的官方資料與範例也相當齊全所以實作上並不會太困難Stap 1: Grove LCD 此部分需要 import pupm_i2clcd建議以下寫法(使用Python)importeren van pyupm_i2clcd als lcdmyLcd = lcd. Jhd1313m1 (
Kamertemperatuur detectie met Galileo Gen 2 en Grove Kit

Kamertemperatuur detectie met Galileo Gen 2 en Grove Kit

Ik zal u tonen hoe te zetten van een interactieve kamertemperatuur project met LCD RBG en temperatuur sensor met behulp van Intel Galileo en grove kit.Stap 1: Download de Arduino IDE voor Intel Galileo en de temperatuur sensor code.Stap 2: Open de co
Last minute Grover en Elmo kostuums

Last minute Grover en Elmo kostuums

zodat mijn vriendin en ik had de planning maandenlang op wat voor Halloween. Dus toen het soort sloop op ons wisten we dat waren we geschroefd. We overhaast rond op zoek naar een kostuum voor onze zoon, vonden we hem een cookie monster kostuum, hij z
Autolog - autonome GPS-tracker (Intel Edison + Grove GPS)

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

gebruikte Hardwre:-Intel Edison + Arduino breakout-Grove GPS-Grove versnellingsmeter-Grove TemperaturesensorStap 1: Aan de slag met Intel Edison1. Pak uw Intel Edison + verbinden met het voor de eerste keer:In beide USB-kabels aan te sluiten en via s
Het installeren van Grove-bibliotheek voor Intel Edison

Het installeren van Grove-bibliotheek voor Intel Edison

Dit instructable leert u hoe te Grove bibliotheek installeren en uitvoeren van elementaire demo's voor de Grove startpakket plus gen 2 op het Intel Edison-platform.Het volgende materiaal is vereist voor dit instructable:(1) Intel Edison + Arduino bre
Grove gelukkige knoedel

Grove gelukkige knoedel

LCD-scherm is het allereerste scherm dat ik met sleutelen. Het is leuk, goedkoop, en vooral goed ondersteund door de Gemeenschap (Zoek LCD, en je krijgt een heleboel bibliotheken en voorbeeld klaar voor gebruik).We hebben ook een LCD-scherm in Grove
Grove minimale Thermometer

Grove minimale Thermometer

Nieuwelingen in de wereld van de Arduino, kan temperatuur sensor/thermo weerstand zijn voor een van de meest bekende sensoren. Er zijn talloze manier om de temperatuur informatie weergeven, zoals de kleur van de LED, seriële tool op uw PC, LED bar, L
Grove sensoren met een deeltje kern - IR afstand onderbreken

Grove sensoren met een deeltje kern - IR afstand onderbreken

Dit is deel twee van de serie van instructables waar ik nemen Grove sensoren met internet met behulp van een deeltje of foton. In de laatste instructable toonde ik u hoe aansluiten van een Hall-Sensor die een magnetische sensor naar een deeltje Core-
Arduino - Grove I2C Motor Driver

Arduino - Grove I2C Motor Driver

Ik heb onlangs een paar Grove sensoren, en zoals altijd probeerde ik bedrading het omhoog met de Arduino en de kern van de Particle. Grove sensoren zijn een reeks van senors vorm Seeed Studio, ze hebben een breed scala van sensoren en componenten en