jOYSTICK.
Una palanca de mando o joystick (del inglés joy, alegría, y stick, palo) es un dispositivo de control de dos o tresejes que se usa desde una computadora o videoconsola, hasta un trasbordador espacial a los aviones de caza,pasando por grúas.Se suele diferenciar entre joysticks digitales (que leen cuatro interruptores encendido/apagado en cruceta situadaen la base más sus combinaciones y los botones de acción) y joysticks analógicos (que usan potenciómetros paraleer continuamente el estado de cada eje, y además de botones de acción pueden incorporar controles deslizantes),siendo estos últimos más precisos.
ADC. CONVERTIDOR ANALÓGICO DIGITAL.
ATMEGA 328.Un conversor analógico-digital , ( ADC del inglés "Analog-to-Digital Converter") es un dispositivoelectrónico capaz de convertir una entrada analógica de voltaje en un valor binario, Se utiliza enequipos electrónicos como ordenadores, grabadores de sonido y de vídeo, y equipos de telecomunicaciones.
La señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y sesomete a un muestreo a una velocidad fija. La digitalización consiste básicamente en realizar de forma periódicamedidas de la amplitud (tensión) de una señal, redondear sus valores a un conjunto finito de niveles preestablecidosde tensión (conocidos como niveles de cuantificación) y registrarlos como números enteros en cualquier tipo dememoria o soporte. Los procesos que dan lugar a esta conversión son el muestreo, la retención, la cuantificacióny la codificación:
Muestreo: el muestreo (en inglés, sampling) consiste en tomar muestras periódicas de la amplitud de onda.La velocidad con que se toma esta muestra, es decir, el número de muestras por segundo, es lo que se conocecomo frecuencia de muestreo. El ingeniero sueco Harry Nyquist formuló el siguiente teorema para obtener unagrabación digital de calidad.“La frecuencia de muestreo mínima requerida para realizar una grabación digital decalidad, debe ser igual al doble de la frecuencia de audio de la señal analógica que se pretenda digitalizar ygrabar” ( “Condición de Nyquist”). Sino cumplimos este requisito aparecerá el fenómeno de aliasing el cual propiciarala aparición de frecuencias "alias", y la señal original no puede ser reconstruida de forma unívoca a partir de laseñal digital.
Retención (en inglés, hold): las muestras tomadas han de ser retenidas (retención) por un circuito de retención (hold),el tiempo suficiente para permitir evaluar su nivel (cuantificación). Desde el punto de vista matemático este procesono se contempla, ya que se trata de un recurso técnico debido a limitaciones prácticas, y carece, por tanto, de modelomatemático.
Cuantificación: en el proceso de cuantificación se mide el nivel de voltaje de cada una de las muestras. Consiste enasignar un margen de valor de una señal analizada a un único nivel de salida. Error de cuantificación: incluso en suversión ideal, añade, como resultado, una señal indeseada a la señal de entrada: el ruido de cuantificación: señal entiempo discreto y amplitud continua que resulta de igualar los niveles de las muestras de amplitud continua a los nivelesde cuantificación más próximos.
Codificación: la codificación consiste en traducir los valores obtenidos durante la cuantificación al código binario.Hay que tener presente que el código binario es el más utilizado, pero también existen otros tipos de códigos que tambiénson utilizados.
Este modelo es una base para la digitalización utilizándose en la actualidad variantes que se acoplan mas a lascapacidades de los equipos. Un ejemplo es el sobremuestreo. Sus utilidades son amplias y muy variadas en el campotanto de las telecomunicaciones, como en muchos ámbitos de la vida actual.LCD 2 x16.
// Comprobación de funcionamiento del ADC0 y ADC1
// Los valores van de 0 a 1024
// Son presentados en la LCD 2 x 16
#include
LiquidCrystal lcd(12,11,10,5,4,3,2);
int val0 = 0;
int val1 = 0;
void setup() {
lcd.begin(16,2);
lcd.print(" 2 Joysticks ");
analogReference(DEFAULT);
}
void loop() {
lcd.setCursor(0,1);
lcd.print(" ");
lcd.setCursor(2,1);
val0 = analogRead(0);
lcd.print(val0,DEC);
lcd.setCursor(8,1);
val1 = analogRead(1);
lcd.print(val1,DEC);
}
analogReference().
Descripción
Configura el voltaje de referencia usado por la entrada anal0gica.La función analogRead() devolverun valor de 1023 para aquella tensión de entrada que sea igual a la tensión de referencia.Las opciones son:· DEFAULT: Es el valor de referencia analógico que viene por defecto que de 5 voltios en placasArduino de y de 3.3 voltios en placas Arduino que funcionen con 3.3 voltios.· INTERNAL: Es una referencia de tensión interna de 1.1 voltios en el Atmega168 o Atmega328y de 2.56 voltios en el Atmega8.· EXTERNAL: Se usara una tensión de referencia externa que tendrá que ser conectada al pin AREF.Parámetros
Tipo: El tipo de referencia que se desea usar (DEFAULT, INTERNAL, o EXTERNAL).Devuelve.
Nada.Precaución
Es recomendable que cuando se use la referencia de tensión externa se conecte al pin AREF usando una resistenciade 5K. Esto evitara posibles daños internos en el ATMEGA si se la configuración de la referencia analógica esincompatible con el montaje físico que se ha llevado a cabo.Tenga en cuenta que esa resistencia afectara la tensión que se use como tensión de referencia ya que el pin AREFposee una resistencia interna de 32K. Ambas resistencias forman un divisor de tensión, por lo tanto, si por ejemplo seconecta una tensión de 2.5V con la resistencia de 5K la tensión que se utilice como tensión de referencia será de 2.2Vya que esa será la tensión que caiga en el pin AREF debido al divisor de tensión al que se ha hecho referencia.El conectar la tensión de referencia externa a través de una resistencia permite pasar mediante software de usar tensiónde referencia interna a una tensión de referencia externa sin que la configuración física del hardware nos afecte laconfiguración actual del conversor A/D.Uso del pin AREF
La tensión aplicada en el pin AREF será la que haga que el conversor A/D de su máxima lectura (1023) cuando lea unatensión igual a la aplicada en ese pin. Tensión por debajo de esa tensión conectada a AREF será escaladaproporcionalmente, así cuando se usa la tensión de referencia por defecto (DEFAULT) el valor que nos devuelve unatensión de 2.5V en una entrada analógica será 512.La configuración por defecto del Arduino es la de no tener nada conectado de forma externa al pin AREF (El pin 21 delchip ATMEGA). En este caso la configuración de la tensión de referencia será DEFAULT lo cual conecta AVCC(Alimentación positiva +5 V) de forma interna al pin AREF. Este pin es un pin de baja impedancia (mucha corriente) porlo que si usando la configuración DEFAULT de la tensión de referencia se conecta otra tensión que no sea la que poseeAVCC, podría dañar el chip ATMEGA.El pin AREF también puede conectarse de forma interna a una fuente de referencia de 1.1 voltios (o 2.54 en los Atmega8)usando el comando analogReference (INTERNAL).Con esta configuración las tensiones aplicada a los pines analógicosque sean iguales a la tensión de referencia interna o superior nos devolverán 1023 cuando se lleva a cabo su lecturacon la función analogRead(). Tensiones mas bajas devolverán valores proporcionales, por ejemplo, si tenemos unatensión de 0.55 voltios en el pin analógico, nos devolverá 512.La conexión entre la fuente de 1.1 voltios y el pin AREF es de muy alta impedancia (baja corriente), por lo que la lecturade la tensión de 1.1 voltios solo se podrá hacer con un multimetro que tenga alta impedancia de entrada. Si se aplicasepor error una tensión de referencia externa en el pin AREF mientras se esta usando la configuración INTERNAL para latensión de referencia, no dañara el chip pero hará que la tensión de referencia sea la externa y no la de 1.1 voltios de lafuente interna. Así será recomendable que cualquier tensión externa que se conecte al pin AREF se haga a través deuna resistencia de 5K para evitar el problema mencionado arriba.La correcta configuración del software cuando se utiliza una tensión de referencia externa se hace mediante la funciónanalogReference (EXTERNAL).Eso desconectara ambas tensión de referencia internas del pin AREF y por tanto será la externa la cual gobierne latensión máxima leída por el ADC. analogRead().
Lee el valor de un determinado pin definido como entrada analógica con una resolución de 10 bits.Esta instrucción sólo funciona en los pines (0-5). El rango de valor que podemos leer oscila de 0 a 1023.valor = analogRead(pin); // asigna a valor lo que lee en la entrada ´pin' .Nota: Los pins analógicos (0-5) a diferencia de los pines digitales, no necesitan serdeclarados como INPUT u OUPUT ya que son siempre INPUT´s.
0 comentarios:
Publicar un comentario