Paso 10: Sketch de Arduino escogido aparte
/*
* Versión M 2.5
Para el ATTiny85 16Mhz
*/
#include "pitches.h"
Esta línea incluye la ficha de campo en el código. La ficha de pitch.h contiene el tono diferente - le llamamos "Notas" de ahora en adelante.
melodía de int [] = {}
NOTE_F7, NOTE_G4, NOTE_A2};
"Melodía" de esta matriz tiene las notas que se reproducirá y el orden que se jugará en. Experimenté con 2 a 5 notas. Para mi proyecto me sentí 3 notas hizo un buen gorjeo o ruido chirrido de los sonics que estaba haciendo. Tenía un amigo músico analizar el sonido real de la demostración de la TV y me dijo que era la nota predominante en la escala de G. Por favor meterse con esta matriz al agregar y quitar notas, cambiando las notas y organizar el orden hasta conseguir el sonido que más te guste.
int noteDurations [] = {9,12,7};
Duración de la nota. Notas musicales son típicamente completo, blanca, negra y 8th Nota. Esto se representa en el código como 1,2,4,8 significa 1 segundo dividido por 1,2,4, u 8. Sin embargo, no estamos haciendo música. Estamos haciendo un ruido alegre, parece. Así que jugué con duraciones de nota no convencionales como las duraciones de notas 1/15th de un segundo largo o 1/6th othde 1/12. El array "noteDuration" por debajo de los Estados que se reproducirá en el 1/9th duración NOTE_F7, NOTE_G4 juegos para 1/12thy NOTE_A2 en el 1/7th. Una duración de nota se debe especificar para cada nota en la matriz de «melodía». Jugar con noteDuration para conseguir el ritmo adecuado para tu sonic.
int x = 0;
Esta es sólo una variable para ser utilizado como un contador
int led1 = 3;
int led2 = 2;
void setup() {}
pinMode (led1, salida);
pinMode (led2, salida);
}
Esta dos variables definen los números de pin para nuestra salida de LED. Si realmente desea puede agregar más LEDs debido a que no todos los pines en el ATTiny85 es utilizado. Pero creo que dos es suficiente.
void loop() {}
Bucle principal. Con cada ejecución del bucle principal, se juega solamente una nota en la duración especificada, seguida de una pausa (más pausas más abajo).
Si (x < 5) {}
digitalWrite (LED 1, HIGH);
digitalWrite (led2, LOW);
x = x ++;
}
else if (x < 7) {}
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
x = x ++;
}
else if (x < 9) {}
digitalWrite (LED 1, bajo);
digitalWrite (led2, HIGH);
x = x ++;
}
Else {}
x = 0;
}
Esta sección define el patrón de parpadeo de LED. Utilizar cualquier lógica que quieres hacer el patrón de parpadeo que te gusta. La mina utiliza "x" como un contador con un rango de 0-10. En la gama más baja LED1 y LED2 apagado. Luego en la gama media de "x" ambos LEDs están. En la gama superior de "x" LED1 es OFF y LED2.
para (int thisNote = 0; thisNote < 3; thisNote ++) {}
int noteDuration = 1000/noteDurations [thisNote];
El código anterior pasa y toca las notas en la nota de una melodía array a la vez. La parte que dice "thisNote < 3" el valor debe ser igual a la cantidad de notas en la matriz. Así que si «melodía» tiene cuatro notas entonces "thisNote < 4". El resto de las figuras del código a la duración de la nota en milisegundos.
tono (4, melody[thisNote],noteDuration);
Aquí es donde el tono es realmente salida al altavoz. En este ejemplo, la salida es el pin 4.
int pauseBetweenNotes = noteDuration *. 14;
Delay(pauseBetweenNotes);
noTone(4);
Una pausa entre las notas tiene que ser insertado de lo contrario las notas ejecutan juntos y suena como un mal ruido chirriante. La duración de la pausa no puede ser una cantidad fija de tiempo (como 1/4 de segundo entre cada nota), pero debe basarse en la duración de la nota que suena bien. El código siguiente establece el tiempo de pausa como un porcentaje de la duración de la nota. Juega con el valor decimal para obtener un buena pausa un tiempo entre las notas. He encontrado un valor entre.09-21 para ser una buena cantidad de pausa. La última línea "noTone(4)" se apaga la salida al pin 4.
}
}
FINAL del código de