3.4 Bobinas-altavoz
El altavoz es una simple bobina o electroimán que mueve una membrana, si la membrana se mueve repetidamente puede producir un sonido.
Este sonido es audible si está dentro de nuestro rango auditivo, suele ser entre 20Hz y 20kHz
¿Sabías que a medida que creces el margen de agudos (20kHz) baja?
Montaje : Pitido
Vamos a incorporar un altavoz y realizar una sirena. Al ser una bobina, es conveniente utilizar una amplificación por medio de un transistor, por D6 enviaremos la señal cuadrada a la base del transistor.
SIN EDUBASICA
Con EDUBÁSICA
Conectaremos el altavoz en el tereminal X2 y el interruptor V1 en ON para que esté alimentado
Continuamos ...
El código es muy sencillo, simplemente es una intermitencia por D6 que en este caso se ha elegido 1mseg ¿que pasaría si aumentamos este valor?
void setup() {
// put your setup code here, to run once:
pinMode(6, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(6, HIGH); // Encendemos el pin6
delay(1); // esperamos 1 msegundo
digitalWrite(6, LOW); // Apagamos el pin6
delay(1); // esperamos 1 msegundo
}
El resultado es :
SIN EDUBÁSICA Y SIN TRANSISTOR A LO BRUTO !
Bueno, vamos a conectarlo DIRECTAMENTE a D6 (el otro extremo a GND) no es muy conveniente pero a ver el resultado (con el mismo código):
¿Cuál suena más?
Premio entrada a dinópolis Teruel quien acierte..
Montaje 15: Alarma
Teniendo en EDUBASICA los LEDs, el LDR que nos puede servir como sensor y el altavóz amplificado con un transistor, y nosotros que somos expertos programadores, NOS ESTÁ PIDIENDO A GRITOS hacer una alarma:
Enunciado: Cuando el LDR esté tapado, tiene que sonar un pitido intermitente de un segundo, con visualización también en los LEDs
SIN EDUBASICA
Pues hay que poner el LDR en A1, las luces (por simplicidad uno), el altavoz y el transistor con la conexión en la base por D5:
CON EDUBASICA
Se simplifica mucho la conexión sólo el altavoz tal y como está conectado en el montaje 14
Programa:
void setup() {
pinMode(6, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.print("valor analogico leido=");Serial.println(analogRead(1)); //así visualizamos los valores y determinamos cuando es oscuro o no
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (analogRead(1)