Ejercicio 20: Control de tono
Girando un potenciómetro se varía la frecuencia del sonido que produce un zumbador.
| Novedades hardware | Novedades software |
| | Mapeado de señales analógicas en valores digitales continuos. |
'''
Requisitos:'''
- Un potenciómetro (ej.:100K)
- Un zumbador piezoeléctrico.
Planteamiento: Cambiamos el tono del sonido del zumbador piezoeléctrico girando un potenciómetro.
Presentación: Mapeado de señales analógicas en valores digitales continuos.
En este caso continuamos teniendo una entrada analógica y una salida digital.
El rango de la entrada es de 0 a 1024 y el de la salida es el intervalo que elijamos entre los tiempos de pulso que producen una frecuencia discernible en el zumbador piezoeléctrico (ver ejercicios como escala musical? o sirena?).
Elegimos una transformación sencilla: sumar 900, lo que nos da un rango para los tiempos de pulso entre 900 y 2014, que corresponden aproximadamente a las frecuencias de una escala completa.
Variantes:
- Cambia la transformación para conseguir más o menos variación en los tonos.
VIDEO DEL EJERCICIO 20
CODIGO FUENTE
Copyright (C) 2006 Juan Carlos Alonso de Mena
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation;
See the GNU General Public License for more details?
int zumb=10;
int pot=0;
//int notas[] = {1915, 1700, 1519, 1432, 1275, 1136, 1014, 956};
int medida=0; // variable que guarda el valor de señal en la entrada(0-1024)
void setup() {
pinMode(zumb,OUTPUT);
}
void loop(){
medida=analogRead(pot);
digitalWrite(zumb,HIGH);
delayMicroseconds(medida+900); //conversión de valores de señal de entrada a tiempo de pulso
digitalWrite(zumb,LOW);
delayMicroseconds(medida+900);
}
Volver?
Copyright (c) 2006 Juan Carlos Alonso de Mena
Permission is granted to copy, distribute and/or modify this document under the terms of
the GNU Free Documentation License, Version 1.2 or any later version published by the
Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no
Back-Cover Texts. A copy of the license is included in the section entitled
GNU Free Documentation License?.