Étape 4: Skill niveau : Basic. (2)
- BUZZER PIEZO (tons jouant & TUNES)
- Montage simple du circuit Voir photos, ici vous pourrez jouer une mélodie de sonnerie et chanson/tune en modifiant la fréquence et la hauteur de l’avertisseur sonore électrique consultez Exemples sur votre look IDE Digital et sélectionnez/mélodie et essayez-le.
- CODE POUR CAN-CAN TUNE AU-DESSOUS DE CETTE LIGNE ___
int noteFreqArr [] = {}
49.4, 52,3, 55,4, 58,7, 62,2, 65,9, 69,9, 74, 78,4, 83.1, 88, 93,2, 98,8, 105, 111, 117, 124, 132, 140, 148, 157, 166, 176, 186, 198, 209, 222, 235, 249, 264, 279, 296, 314, 332, 352, 373, 395, 419, 444, 470, 498, 527, 559, 592, 627, 665, 704, 746, 790, 837, 887, 940, 996, 1050, 1110, 1180, 1250, 1320, 1400, 1490, 1580 1670, 1770, 1870, 1990, 2100} ;
long mode = 0 ;
void setup() {pinMode (sortie 4); / / définir un code pin pour la sortie de buzzer}
Sub playNote (noteInt longue, longue durée, mode long long souffle = 25) {longueur = longueur - souffle ; long noteInt2 = noteInt + 12 ; //1 octave vers le haut de long noteInt3 = noteInt + 24 ; //2 octaves vers le haut de long noteInt4 = noteInt + 36 ; //3 octaves vers le haut de playLoop long = longueur / 100 ; //divide longueur par 4, pour une utilisation dans la séquence de jeu if(mode == 0) {//mode 0 séquence pour (longtemps j’ai = 0; j’ai < playLoop; i ++) {buzz (4 noteFreqArr [noteInt], 20) ; Delay(5) ; Buzz (4, noteFreqArr [noteInt2], 20) ; Delay(5) ; Buzz (4, noteFreqArr [noteInt3], 20) ; Delay(5) ; Buzz (4, noteFreqArr [noteInt4], 20) ; Delay(5) ; }} d’autre if(mode == 1) {//mode 1 séquence pour (longtemps j’ai = 0; j’ai < playLoop; i ++) {buzz (4, noteFreqArr [noteInt3], 20), delay(5), buzz (4, noteFreqArr [noteInt4], 20); delay(5) ; buzz (4, noteFreqArr [noteInt3], 20); delay(5) ; buzz (4, noteFreqArr [noteInt4], 20), delay(5);}} else if(mode == 2) {//mode 2 séquence pour (longtemps j’ai = 0; j’ai < playLoop; i ++) {buzz (4, noteFreqArr [noteInt3] 20) ; Delay(5) ; Buzz (4, noteFreqArr [noteInt3], 20) ; Delay(5) ; Buzz (4, noteFreqArr [noteInt3], 20) ; Delay(5) ; Buzz (4, noteFreqArr [noteInt2], 20) ; Delay(5) ; {}} else if(mode == 3) {//mode 3 séquence pour (long j’ai = 0; j’ai < playLoop; i ++) {delay(5) ; buzz (4, noteFreqArr [noteInt2], 40), buzz (4, noteFreqArr [noteInt4], 40); delay(5);}} if(breath > 0) {//take une courte pause ou « souffle » si spécifié delay(breath);}}
void loop() {//main cours playNote (12, 500, mode); playNote (5, 1000, mode); playNote (7, 250, mode); playNote (10, 250, mode); playNote (9, 250, mode); playNote (7, 250, mode); playNote (12, 500, mode); playNote (12, 500, mode); playNote (12, 250, mode); playNote (14, 250, mode); playNote (9, 250, mode); playNote (10, 250, mode); playNote (7, 500, mode); playNote (7, 500, mode); playNote (7 250, mode) ; playNote (10, 250, mode) ; playNote (9, 250, mode) ; playNote (7, 250, mode) ; playNote (5, 250, mode) ; playNote (17, 250, mode) ; playNote (16, 250, mode) ; playNote (14, 250, mode) ; playNote (12, 250, mode) ; playNote (10, 250, mode) ; playNote (9, 250, mode) ; playNote (7, 250, mode) ; playNote (5, 1000, mode) ; playNote (7, 250, mode) ; playNote (10, 250, mode) ; playNote (9, 250, mode) ; playNote (7, 250, mode) ; playNote (12, 500, mode) ; playNote (12, 500, mode) ; playNote (12, 250, mode) ; playNote (14, 250, mode) ; playNote (9, 250, mode) ; playNote (10, 250, mode) ; playNote (7, 500, mode) ; playNote (7, 500, mode) ; playNote (7, 250, mode) ; playNote (10, 250, mode) ; playNote (9, 250, mode) ; playNote (7, 250, mode) ; playNote (5, 250, mode) ; playNote (12, 250, mode) ; playNote (7, 250, mode) ; playNote (9, 250, mode) ; playNote (5, 250, mode) ; Delay(250) ; if(mode == 0) {mode = 1;} d’autre if(mode == 1) {mode = 2;} else if(mode == 2) {mode = 3;} else if(mode == 3) {mode = 0;}}
Sub buzz (int targetPin, fréquence longue, longue durée) {long delayValue = 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,LOW); / / écriture la goupille de sonnerie faible se replier le diaphragme delayMicroseconds(delayValue); / / attendre againf ou la valeur de délai calculé}}
- (Sans devoir télécharger de n’importe quelle bibliothèque pour cela juste copier et le coller dans votre IDE dans une esquisse de vide et enregistrez-le comme le can-can, puis téléchargez-le et essayez-le, personnellement trouver très ennuyeux il syntonise lorsque joué que reçoit l’attention cependant)
- Bouton de pressage (capacité à mapper les boutons pour plus command & control capacité)... Button pressants et cartographie, d’abord simple bouton comme bouton marche/arrêt sur lorsque vous appuyez sur arrêt, en relâchant, suivie de mappage de bouton duel définissant un comme un bouton d’arrêt et le second un un bouton, permettant la création d’un boîtier de commande pour systèmes robotiques, par exemple, un 5button a placé touche haut/bas/gauche/droite et un bouton d’action dans le centre.
- Suivez les photos et les vidéos pour câbler le circuit Si vous avez des problèmes se référer à des sources en ligne pour le mappage de bouton avec l’arduino, vérifiez votre câblage avant de brancher celui-ci vers le haut et tourner sur votre Conseil d’administration puis revérifier comme un court-circuit peut tuer votre équipement en secondes surtout avec plus d’applications haute tension... Codage sous cette ligne pour mettre en place les boutons ___ (pour le bouton d’installation unique) ___ / *
Bouton allume et éteint un feu émettant diode(LED) connecté à la broche numérique 13, lorsqu’en appuyant sur un bouton poussoir relié à la broche 2. Le circuit: * LED joint de pin 13 à terre * bouton poussoir joint à pin 2 de + 5V * résistance 10K attaché à la broche 2 du sol * Remarque : sur la plupart des Arduinos il y a déjà une LED sur la carte connecté à la broche 13. créé 2005 par DojoDave modifié le 30 août 2011 par Tom Igoe cet exemple de code fait partie du domaine public. http://www.Arduino.cc/en/Tutorial/Button *
/ les constantes ne changeront pas. Ils sont utilisés ici pour / / set NIP : const int buttonPin = 2 ; le nombre de la tige poussoir const int ledPin = 13 ; le nombre de l’axe de la LED
variables vont changer : buttonState int = 0 ; variable pour la lecture de l’état de bouton poussoir
void setup() {/ / initialiser la broche LED en tant que sortie : pinMode (ledPin, sortie); / / Initialise la tige poussoir comme intrant : pinMode (buttonPin, INPUT);}
void loop() {/ / lecture de l’état de la valeur du bouton poussoir : buttonState = digitalRead(buttonPin) ;
Vérifiez si le bouton est appuyé. Si c’est le cas, le buttonState est haute : si (buttonState == HIGH) {/ / allumer la LED: digitalWrite (ledPin, HIGH);} else {/ / éteindre la LED: digitalWrite (ledPin, basse);}}
(Pour DUEL bouton SETUP) ___ int ledPin = 13 ; Choisissez le code pin de la LED int inputPin1 = 3 ; bouton 1 int inputPin2 = 2 ; bouton 2 void setup() {pinMode (ledPin, sortie); / / declare LED comme sortie pinMode (inputPin1, entrée); / / make touche 1 une entrée pinMode (inputPin2, entrée); / / faire bouton 2 une entrée {void loop() {si (digitalRead(inputPin1) == faible) {digitalWrite (ledPin, basse); / / éteindre la LED} ElseIf (digitalRead(inputPin2) == faible) {
digitalWrite (ledPin, HIGH) ; allumer LED {{
Il suffit de copier et au-delà de ce qui précède avec boutons attachés aux broches corrects, avec menu déroulant résistances pour s’assurer que les boutons réagissent comme sur et hors, pas tout de suite sans cesse.
(Installation de résistance de photos) Ce que certains faciles à mettre en place, reliez votre LED pour le code pin correct a déclaré dans le codage qui suit peu de temps, la photo résistance doit être liée à une résistance aussi voir les photos et est mesurée par une broche analogique 0 à moins que vous le définir comme un autre code pin, la broche lira le signal entrant de la résistance et le traduire en volts pour la LED il estompe efficacement avec les changements de lumière , j’étais dans une pièce assez claire donc dû utiliser l’extrême proximité aussi il y avait une fissure dans la résistance de photo que sa fonction encore plus fonctionnait toujours cependant suffisant pour démontrer et m’apprendre comment cela a fonctionné ainsi que le codage nécessaire pour contrôler et mesurer l’intensité lumineuse entrante...
APRÈS cette ligne ___ //PhotoResistor broche de codage
int lightPin = 0 ; la broche analogique la photorésistance est //connected à //the photorésistance n’est pas calibré pour n’importe quelle unité donc //this est tout simplement une valeur brutes du capteur (lumière relative) //LED Pin int ledPin = 9 ; la goupille de la LED est connectée à //we sont le contrôle luminosité pour //we d’utiliser un de la PWM (durée d’impulsion / / goupilles de modulation) void setup() {pinMode (ledPin, sortie); //sets la broche a conduit à la sortie} / * * loop() - cette fonction va commencer après l’installation * se termine, puis répéter * / void loop() {int éclairement = analogRead(lightPin) ; //Read le / / éclairement éclairement = carte (éclairement, 900, 0, 0, 255); //adjust la valeur 0 à 900 à //span 0 à 255
Éclairement = contraindre (éclairement, 0, 255); //make que la //value est betwween //0 et 255 analogWrite (ledPin, éclairement) ; écrire la valeur}
Trier la quantité de code pas de complexes et en utilise les fonctions familières telles que les broches analogiques et là les valeurs minis et Maxis,, décélération habituelle d’épingles et là-bas modes, nouvelles fonctions comprennent légers niveau constantes 0,900,0,255 etc. comme vu plus haut.