Ejercicio 20: Control de tono

Girando un potenciómetro se varía la frecuencia del sonido que produce un zumbador.

Novedades hardwareNovedades 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?.