Interface do acelerômetro de eixo triplo com AtMega16

Interfaz de acelerómetro de triple eje con AtMega16

Requisitos

  1. AtMega 16 IC /placa de desarrollo
  2. 2. Acelerómetro de 3 ejes
  3. 3. Pantalla LCD de 16X2 (para mostrar datos X, Y y Z)

Descripción

Este proyecto utiliza tres de los ocho ADC presentes en el IC AtMega16 para mostrar los datos digitales correspondientes de las salidas X, Y y Z de un acelerómetro en una pantalla LCD de 16X2.

Acelerómetro

Primero hablemos del acelerómetro IC; Aquí utilicé el ADXL-335, que es un módulo de acelerómetro de 3 ejes.

Imagem do Módulo Acelerômetro ADXL335

Figura 1: Imagen del módulo acelerómetro ADXL335

Es muy fácil lidiar con este tipo de módulos, ya que solo necesitan alimentación VCC y GND para arrancar, el resto es su trabajo proporcionarnos datos analógicos. Estos módulos trabajan con un concepto simple como es la fuerza que actúa sobre un objeto en un plano inclinado. Se ocupa de la parte Mg(sin?) y Mg(cos?) de la fuerza y ​​determina el ángulo para cálculos adicionales. Ahora también notas el cambio de fuerza a partir del cual se calculará la aceleración.
Estos acelerómetros no responden a movimientos lineales, responden a movimientos acelerados a muy pequeña escala. Mirando la imagen de arriba notarás que hay un pin ST que trata con el valor de 'g' (aceleraciones debidas a la gravedad) que se obtendrá durante el cálculo del resultado. Consulta su ficha técnica para más información. También funcionará con un valor predeterminado si no conecta este pin en ningún lugar.

Convertidor analógico/digital

Hay 8 ADC independientes que comparten sus pines con los de PORTA. Estos ADC son de 10 bits, lo que simplemente significa que pueden convertir un valor analógico determinado en sus correspondientes datos digitales de 10 bits.

Antes de continuar, primero debemos discutir qué son los ADC. ADC significa Convertidor analógico a digital. Todos sabemos que los microcontroladores funcionan únicamente con valores digitales, pero ¿qué pasa si necesitamos interactuar con dispositivos o valores analógicos? En estas situaciones necesitamos un dispositivo que pueda funcionar como comunicador entre la parte analógica y la parte digital. Los ADC (convertidores de analógico a digital) juegan el mismo juego; convierten los valores analógicos a digitales mediante algún medio de referencia (Vref).

En AtMega16, el pin 32 requiere un voltaje de referencia (normalmente suministrado +5 V) cuando se trabaja con ADC. También hay un término más que debe introducirse, es decir, Resolución. En términos simples, podemos decir que es la precisión o exactitud con la que trabaja un ADC. Para un ADC de 10 bits que funciona con Vref de 5 V, su resolución es de 4,88 mV. Esto significa además que por cada aumento o disminución de 4,88 mV en la entrada analógica, la salida digital aumentará o disminuirá en una unidad, respectivamente. Como es un ADC de 10 bits, los datos de salida varían de 0 a 1023 (2^10 = 1024) con 1024 valores diferentes. Ahora, volviendo a este proyecto, conecté los pines X, Y y Z al ADC0-ADC2. Proporcionan valores analógicos individuales e independientes. También mostré el resultado digital correspondiente en la pantalla LCD. Las conexiones de la pantalla LCD son las siguientes: • Los pines de DATOS están conectados a PB4-PB7 ya que funciona en modo de 4 bits • Los pines RS, RW y ES están conectados a PB0, 1, 2 respectivamente. Al mirar la parte del video, notará que los valores de X, Y y Z solo oscilan entre 300 y 500. Esto se debe a que mi Vref está configurado en 5V mientras las salidas del acelerómetro permanecen entre 1,6 y 1,9 V. En la parte de codificación utilicé tres archivos de encabezado: • para funciones relacionadas con el retraso • para funciones relacionadas con LCD • para funciones relacionadas con ADC

Código fuente del proyecto

###


#incluir

#incluir

#incluir

#incluir

vacío principal

{

adc0 interno ;

ADCinit;

inicio LCD ;

LCDclr ;

Cursor LCD APAGADO ;

Caracteres cap(16);

mientras (1)

{

adc0=ler_adc(0); //leyendo datos del eje X

sprintf(ch,"X: %d",adc0); //convirtiendo int a char

LCDGotoXY (0,0);

Pantalla LCD (CH);

LCDsendChar (' ');

adc0=ler_adc(1); //leer datos del eje Y

sprintf(ch,"Y: %d",adc0);

LCDGotoXY (0,10);

Pantalla LCD (CH);

LCDsendChar (' ');

adc0=ler_adc(2); //leer datos del eje Z

sprintf(ch,"Z: %d",adc0);

LCDGotoXY (1.5);

Pantalla LCD (CH);

LCDsendChar (' ');

_delay_ms (500); //un retraso de medio segundo

}

}

###

Diagramas de circuito

Diagrama de circuito-ADXL335-Módulo-acelerómetro-Interfaz-AVR-ATMega16

Vídeo del proyecto

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.