"Grove"r (6 / 10 étapes)

Étape 6: Code

Enregistrer ces 3 codes pour Ecoute, voir et chanter en tant que fichiers arduino (.ino) séparément :

J’ai inclus les fichiers IDE, mais ils ont des noms différents.

Écouter :

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

void setup() {pinMode(soundSensorPin, INPUT) ; pour (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 end if (intensité [cPin] < 10) {intensité [cPin] = 255 ; delay(50) ; currentPin = currentPin + 1;}

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

void belowThreshold() {switcher = false ; fadeCounter ++; if(fadeCounter==fadeDelay) {fadeCounter = 0; pour (int i = 0; j’ai

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

Suivie de voir :

/*
* Commande de Servo par capteur de lumière (par exemple la photorésistance). ** Copyright (C) 2010 Efstathios Chatzikyriakidis (contact ** ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier * elle aux termes de la GNU General Public License telle que publiée par * la Free Software Foundation, soit la version 3 de la licence, ou * (à votre choix) toute version ultérieure. ** ce programme est distribué dans l’espoir qu’il sera utile, * mais sans aucune garantie, sans même la garantie implicite de * qualité marchande ou ADEQUATION a un usage particulier. Voir la * GNU General Public License pour plus de détails. ** Vous devriez avoir reçu une copie de la GNU General Public License * avec ce programme. Si ce n’est pas le cas, voir. * / / / include bibliothèque pour servo. #include servo myServo ; créer un objet de servo pour contrôler un servo. const int servoPin = 7 ; le nombre de broches (PWM) pour le servo. const int sensorPin = 3 ; le nombre de broches pour le capteur d’entrée. valeurs actuelles et antérieures pour dispositif servo. int valServo = 0 ; oldValue int = 0 ; les valeurs suivantes peuvent changer selon le capteur de lumière. effectuer un étalonnage avec une lumière sombre et pure pure dans un premier temps. const int lightMin = 170 ; Définissez la valeur appropriée de la cellule photoélectrique. const int lightMax = 512 ; Définissez la valeur appropriée de la cellule photoélectrique. const int LIGHT_SENSE = 5 ; valeur de différence de sensibilité. const long /DELAY = 15 ; temps de retard de mouvement servo à millis. entrée de point de démarrage (s’exécute une fois). void configuration () {/ / set capteur comme entrée. pinMode (sensorPin, INPUT); / / fixer le servo sur un pin myServo.attach(servoPin);} / / boucle l’esquisse principale. void loop () {/ / obtenir la valeur de l’int valServo de capteur de lumière. = analogRead(sensorPin); / / carte de la valeur pour le min, max de la servo. valServo = carte (valServo, lightMin, lightMax, 0, 179); / / s’assurer que la valeur est comprise entre min, max de la valServo servo. = contraindre (valServo, 0, 179); / / déplacer le servo que si la lumière change assez. si (abs (valServo - oldValue) > LIGHT_SENSE) {/ / déplacer le servo. myServo.write(valServo); / / conserver la dernière valeur. oldValue = valServo;} / / attendre un certain temps le servo pour déplacement. delay(delayTime);}

Source :

Suivie de chanter :

/*
Arduino Mario Bros Tunes avec Piezo Buzzer et PWM connecter le côté positif du Buzzer à la broche 3, puis le côté négatif d’une résistance d’ohm 1 k. Connectez l’autre extrémité de la résistance d’ohms 1 k sur la broche de ground(GND) sur l’Arduino. par : Dipto Pratyaksa dernière mise à jour : 31/03/13 * / / *** * constantes Public *** / #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 49 NOTE_G1 #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 #define 82 NOTE_F2 #define 87 93 NOTE_FS2 #define NOTE_G2 98 #define NOTE_GS2 #define 104 NOTE_A2 #define 110 NOTE_AS2 117 #define NOTE_B2 #define 123 NOTE_C3 131 #define NOTE_CS3 #define 139 NOTE_D3 #define 147 NOTE_DS3 #define 156 NOTE_E3 #define 165 NOTE_F3 #define 175 NOTE_FS3 #define 185 NOTE_G3 #define 196 NOTE_GS3 #define 208 NOTE_A3 #define 220 NOTE_AS3 #define 233 NOTE_B3 #define 247 NOTE_ C4 #define 262 NOTE_CS4 277 #define NOTE_D4 #define 294 NOTE_DS4 #define 311 NOTE_E4 #define 330 NOTE_F4 #define 349 NOTE_FS4 #define 370 NOTE_G4 #define 392 NOTE_GS4 #define 415 NOTE_A4 #define 440 NOTE_AS4 #define 466 NOTE_B4 494 #define NOTE_C5 #define 523 NOTE_CS5 #define 554 NOTE_D5 #define 587 NOTE_DS5 622 #define NOTE_E5 #define 659 NOTE_F5 #define 698 NOTE_FS5 #define 740 NOTE_G5 #define 784 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 thème principal mélodie int mélodie [] = {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 principal leur tempo tempo d’int [] = {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,} ; Pègre mélodie 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 (sortie 3,); //buzzer pinMode (sortie 13,); //led indicateur en chantant une note} void loop() {//sing les airs sing(1) ; sing(1) ; sing(2);} int chanson = 0 ; Sub sing (int s) {/ / itérer sur les notes de la mélodie : chanson = s; if (chanson == 2) {Serial.println ("' Underworld thème'"); int taille = sizeof(underworld_melody) / sizeof (int); pour (int thisNote = 0; thisNote < taille ; thisNote ++) {/ / pour calculer la durée de la note, prenez une seconde / / divisé par le type de note. / / par exemple note noire = 1000 / 4, croche = 1000/8, etc. int noteDuration = 1000 / underworld_tempo [thisNote]; buzz (melodyPin underworld_melody [thisNote], noteDuration) ; pour distinguer les notes, définir un temps minimal entre eux. Durée + 30 % de la note semble bien fonctionner : int pauseBetweenNotes = noteDuration * 1.30 ; Delay(pauseBetweenNotes) ; arrêter la lecture de ton : buzz (melodyPin, 0, noteDuration) ; }} else {Serial.println ("' Mario Theme'"); int taille = sizeof(melody) / sizeof (int); pour (int thisNote = 0; thisNote < taille ; thisNote ++) {/ / pour calculer la durée de la note, prenez une seconde / / divisé par le type de note. / / par exemple note noire = 1000 / 4, croche = 1000/8, etc. int noteDuration = 1000 / tempo [thisNote]; buzz (melodyPin, mélodie [thisNote], noteDuration); / / pour distinguer les notes, définir un temps minimal entre eux. / / DUREE + 30 % de la note semble bien fonctionner : int pauseBetweenNotes = noteDuration * 1.30 ; Delay(pauseBetweenNotes) ; arrêter la lecture de ton : buzz (melodyPin, 0, noteDuration) ; buzz Sub}}} (int targetPin, fréquence longue, longue durée) {digitalWrite (13, HIGH); delayValue long = 1000000 / fréquence / 2; / / calculer la valeur de délai entre transitions / / / 1 seconde est d’une valeur de microsecondes, divisée par la fréquence, puis divisée en deux depuis le / / / il y a deux phases à chaque cycle long numCycles = fréquence * longueur / 1000; / / calculer le nombre de cycles pour bon moment / / / multiplier la fréquence, qui est vraiment cycles par seconde , par le nombre de secondes pour / / / obtenir le nombre total de cycles de production pour (longtemps j’ai = 0; j’ai < numCycles; i ++) {/ / pour la longueur calculée de temps... digitalWrite (targetPin, HIGH); / / écriture la broche buzzer haute pour faire sortir le diaphragme delayMicroseconds(delayValue); / / attendre le délai calculé valeur digitalWrite (targetPin, basse); / / écriture la goupille de sonnerie faible se replier le diaphragme delayMicroseconds(delayValue); / / attendre encore ou la valeur de délai calculé} digitalWrite (13 FAIBLE) ; }

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

Articles Liés

Personnalisé en forme de boîte de planteur de vieilles planches tounge-dans-grove

Personnalisé en forme de boîte de planteur de vieilles planches tounge-dans-grove

Dans ce instructable je vais vous montrer comment faire une boîte de planteur d'anciennes commissions de langue-dans-grove (ou nouvelle si vous aimez) que vous pouvez concevoir pour s'adapter à la face de votre maison.Je suis actuellement remise à ne
Capteurs de Grove avec un noyau de la particule - salles capteur

Capteurs de Grove avec un noyau de la particule - salles capteur

J'ai récemment eu quelques Grove Senorset j'ai essayé de courir avec un Arduino et la très prochaine étape pour moi est de le prendre à l'internet, et quelle meilleure manière que faire avec un Noyau de la particule. Pour commencer de je vais vous mo
Capteurs de Grove avec un noyau de la particule - interrompre la Distance IR

Capteurs de Grove avec un noyau de la particule - interrompre la Distance IR

Il s'agit de (deuxième volet de la série d'instructables où je prends des capteurs Grove à internet en utilisant un noyau des particules ou des photons. Dans le dernier instructable je vous ai montré comment raccorder un capteur Hall qui est un capte
Crazy Caterpillar - Robot Arduino w/Grove Joint & capteur infrarouge

Crazy Caterpillar - Robot Arduino w/Grove Joint & capteur infrarouge

Mon ami Steven, qui est un professeur de lycée, m'a demandé de concevoir un charmant animal bionique comme une aide à la formation qui pourrait aider à faire leur étude plus intéressant.J'ai donc fait la chenille fou pour elle. Le petit ver a deux tê
Installation de Grove bibliothèque pour Intel Edison

Installation de Grove bibliothèque pour Intel Edison

Cette instructable va vous apprendre comment faire pour installer la bibliothèque Grove et exécutez base démos pour le bosquet de kit de démarrage plus gen 2 sur la plateforme Intel Edison.Le matériel suivant est nécessaire pour cela instructable :(1
Kit de démarrage Grove avec LinkIt One

Kit de démarrage Grove avec LinkIt One

Quand j'ai commencé avec ITO j'étais tout confus au sujet des animaux électroniques, des résistances et des circuits, puis je me suis Seeed Studio Grove Starter Kit plus. Avec cela, il faut juste brancher les modules de capteur au lieu de la gestion
LinkIt un tutoriels - Headers Grove #5

LinkIt un tutoriels - Headers Grove #5

Parmi les extras moins évidents sur la carte un LinkIt sont deux en-têtes blancs avec 4 broches. Ils sont appelés en-têtes Grove et sont conçus de sorte que vous pouvez attacher un fil et être capable d'utiliser tous les types de matériel simplement
Edison Intel avec Grove LCD, capteur de température et capteur infrarouge

Edison Intel avec Grove LCD, capteur de température et capteur infrarouge

Grove LCD.Temperature capteur infrarouge ESRM分別是以I2C.ADC.GPIO作為傳輸介面使用上也相當的簡單bibliothèque de MRAA中有完整的使用方式Grove的官方資料與範例也相當齊全所以實作上並不會太困難Étape 1: Grove LCD 此部分需要 importation pupm_i2clcd建議以下寫法(使用Python)importations pyupm_i2clcd lcdmyLcd = lcd. Jhd1313m1
Intel Edison Simple Distance capteur avec indicateur de barre de LED de Grove et Buzzer

Intel Edison Simple Distance capteur avec indicateur de barre de LED de Grove et Buzzer

C'est mon premier et « vraiment » simple projet que j'ai fait à l'aide d'Intel Edison. Ce projet « simple » mesurera la distance à l'aide de capteurs à ultrasons et l'alarme sonnera la barre de LED indiquera dans quelle mesure la distance est fonctio
Geste contrôlé Pac Man w / Arduino & Grove geste Module

Geste contrôlé Pac Man w / Arduino & Grove geste Module

Pac-man Pac-man Pac-man ! Hahaa ! Si quelqu'un d'entre vous sait de quoi je parle, alors vous devez être assez vieux pour connaître une telle vieux-mode arcade jeu, tout comme moi XD (aucune infraction). En fait, j'ai commencé à jouer les jeux japona
Grove Arduino WiFi activé à effet de serre

Grove Arduino WiFi activé à effet de serre

L'essentiel :GroveGrove - haute précision capteur de température/humiditéCapteur de lumière de Grove - analogiqueGrove - encodeurGrove - sonde UVHumidité du sol Grove-Affichage de Grove - RGB 16 x 2Grove - 20CM de câble x3Grove - 50CM de câble x2Grov
Joystick pouce Grove

Joystick pouce Grove

C'est la troisième partie d'une série d'instructables où je prends standard s composant et senors Groveet il fil vers le haut avec un Arduino. Dans les deux derniers tutoriels, j'ai montré comment brancher un moteur I2C et un seul axe analogique Gyro
Autolog - autonome GPS-tracker (Edison Intel + GPS Grove)

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

Hardwre utilisé :-Edison Intel + Arduino breakout-Grove GPS-Accéléromètre Grove-Temperaturesensor GroveÉtape 1: Démarrer avec Intel Edison1. Déballez votre Edison Intel + se connecter à lui pour la première fois :Brancher les deux câbles usb et se co
Grove boulette chanceux

Grove boulette chanceux

Écran LCD est le premier écran que j'ai bricolé avec. C'est amusant, pas cher et surtout bien pris en charge par la Communauté (recherche LCD, vous obtiendrez beaucoup de bibliothèques et d'exemple prêt à l'emploi).Nous avons également un écran LCD à
Thermomètre minimum Grove

Thermomètre minimum Grove

Pour les débutants dans le monde de l'Arduino, résistance de température capteur/thermo peut être un des capteurs plus familiers. Il y a d'innombrables façon d'afficher les informations de température, comme la couleur de la LED, outil de série sur v