Paso 3: El interruptor ATtiny y boceto final
Solía el Arduino el ATtiny siguiendo las instrucciones del programa aquí. Sin embargo me aseguré de usar la encuentra aquí, porque está documentado para apoyar la función de tono.
Construir el circuito en un protoboard para hacer pruebas. Una diferencia importante es que la función de tono sobre el ATtiny no funciona con un valor de parámetro de 50. El sonido comienza solamente en un valor de aproximadamente 100.
(Si te fijas bien en las fotos, puede que en ese momento usé una resistencia de pull-down para el interruptor de contacto, en lugar de una resistencia de pull-up en todas las entradas como en la versión final para una generación más consistente.)
Al probar, me di cuenta de que la entrada analógica puede ser influenciada por otras. Por ejemplo la inclinación contacto desencadenaría la leña. bajar el valor de gatillo interruptor de toque a 333 en vez de 500 (1/3 en vez de la mitad) resolvió. No investigo más en la Cruz influye. Si alguien puede explicar los fenómenos o sabe como evitar esto, por favor hágamelo saber.
Aquí está el bosquejo final:
/*
Un ave estelar diminuto de (T)
Una reproducción del clásico Ave estelar de MB
ruido del motor cambia de tono cuando inclina,
cuenta con un uno mismo hecho inclinación interruptor y
para "disparar" LEDs un interruptor resistente.
Para una descripción completa ver: www.instructables/
creado el 23 de agosto de 2012
por masynmachien
Este código es de dominio público.
*/
int EnginePitchBy3 = 300;
La variable de indicador de tono utilizada es la realidad
paso de parámetro para la función de tono multiplicado por 3.
Esto es con cambio de velocidad y el intervalo de sonido, tono
(ver más). Hay realmente un mínimo tono de
función de trabajo y parece ser mayor el ATtiny
que para el Arduino.
fuego de int [] = {820,795,770,795};
sonido de disparo la echada
Boolean [] LED = {alto, bajo, alto, bajo};
Patrón de iluminación LED
La rutina de instalación se ejecuta una vez cuando cambie en el poder
RESET no es usable con el diseño de hardwre utilizado):
void setup() {}
inicializar comunicaciones en serie (para la depuración sólo):
pinMode (0, salida); pin de salida O es conducir dos LEDs en paralelo
pinMode (1, salida); salida el pin 1 es para conducir el altavoz piezoeléctrico
¿Estas configuraciones no son necesarios en ATTINY?
Siguen siendo de prototipado en Arduino y hacer daño.
}
void loop() {}
Lee los dos interruptores de inclinación, como un análogo
entrada se detuvo a VCC por resistencia de ohm alta.
No deliberado contra rebotes se aplican como cualquier irregularidad
más grande que el filtro por el intervalo de tiempo de 11 ms cuando
producir el sonido deseado sólo agrega a los efectos de sonido.
if(analogRead(a2) < 500)
{//when "interruptor de inclinación hacia arriba" tira entrada analógica hacia Gnd
Si (EnginePitchBy3 < 2400)
{/ / Si no se llega todavía a un elegido máximo
EnginePitchBy3 = EnginePitchBy3 + 1;
aumentar el indicador de pitch
}
}
else if (analogRead(A3) < 500)
{//when "interruptor de inclinación hacia abajo" tira entrada analógica hacia Gnd
Si (EnginePitchBy3 > 300)
{/ sólo si echada mínima aún no llegue a
EnginePitchBy3-= 1;
disminuir el indicador de pitch
}
}
Leer el interruptor táctil "botón de disparo", creado como un análogo
entrada tiró a tierra por resistencia de ohm alta.
No deliberado contra rebotes se aplicación, pero de tiempo adoptada por el
sonido jugado da algunos ásperos contra rebotes.
if(analogRead(a1) > 333)
{/ / Cuando la entrada analógica del interruptor táctil no tira para arriba
tocando él junto con un contacto en Vcc, esto significa que no hay "cocción",
y el ruido de vuelo es:
tono (0, EnginePitchBy3/3, 10);
Delay(11);
La demora establece un largo mayor que el juego del tono ms
lo hace sonar más como un motor.
}
otra cosa
{
Otra cosa, el ruido de disparo es jugado.
para (int patternCounter = 0; patternCounter < 4; patternCounter ++)
{
tono (0, fuego [patternCounter], 60); modulando el sonido de disparo
digitalWrite (1, LED[patternCounter]); modulación de LEDs
Delay(57); retraso se encuentra un poco más corto de sonido continuo}.
}
}
}