ADC com NRF24LE1 (Parte 2/14)

ADC con NRF24LE1 (Parte 2/14)

ADC con NRF24LE1

Estudiamos el primer programa del módulo NRF que era muy simple y logramos hacer parpadear el LED .

Ahora bien, si queremos hacer algo con NRF, debemos saber cómo recibir entradas analógicas ya que la mayor parte del sensor es analógico. En este artículo, veremos cómo utilizar el ADC integrado de NRF y cómo podemos utilizar cualquier sensor analógico y convertir su valor a digital.

Protótipo de interface NRF24LE1 com ADC

Fig. 1: Prototipo de interfaz NRF24LE1 con ADC

Algunas especificaciones importantes sobre el ADC integrado del NRF24LE1 son:

Resolución de 6, 8, 10 o 12 bits: significa que tenemos la opción de elegir ADC de 6, 8, 10 o 12 bits.

14 canales de entrada – 14 pines de entrada para señal de entrada analógica

Entrada de un solo extremo o diferencial: entrada de una sola línea o entrada de dos líneas

Rango de escala completa definido por referencia interna, referencia externa o VDD: para definir el voltaje analógico máximo que se detectará.

Modo de un solo paso: convierte la señal y luego la detiene

Modo continuo con frecuencia de muestreo de 2, 4, 8 o 16 kbps: convierte la señal continuamente a menos que se interrumpa.

Bajo consumo de corriente; sólo 0,1 mA a 2 kbps

Imagem mostrando a interface do NRF24LE1 com ADC

Fig. 2: Imagen que muestra la interfaz de NRF24LE1 con ADC

Estas son las especificaciones que extrajimos de la hoja de datos. Ahora, para entender el código, tomamos un fragmento de los códigos de ejemplo proporcionados por Nordic. Entendamos la parte principal del código línea por línea.

Funciones que proporciona la biblioteca nórdica

NOMBRE DE LA FUNCIÓN PARÁMETRO DE ENTRADA SALIDA DESCRIPCIÓN
hal_adc_set_input_channel AIN0 – AIN13 Establecer el canal de entrada
hal_adc_set_referencia INT/VDD/AIN3/AIN9

Establecer el voltaje de referencia

INT – Referencia interna de 1,22V

VDD – referencia de 3,3 V

AIN3/AIN9 – referencia externa

hal_adc_set_input_mode

ÚNICO/DIFF_AIN2/

DIFF_AIN6

Establecer el tipo de entrada

SINGLE – Entrada de un solo extremo

DIFF_AIN2 – Entrada diferencial con AIN2 como entrada inversora

DIFF_AIN6 – Entrada diferencial con AIN6 como entrada inversora

hal_adc_set_conversion_mode UN SOLO PASO/CONTINUO

Establecer el modo de conversión

SINGLE_STEP – un solo paso

CONTINUO – Continuo

hal_adc_set_resolución

RES_6BIT/RES_8BIT/

RES_10BIT/RES_12BIT

Establecer resolución ADC

RES_6BIT – resolución de 6 bits

RES_8BIT – resolución de 8 bits

RES_10BIT – resolución de 10 bits

RES_12BIT – resolución de 12 bits

hal_adc_set_data_just SÓLO_IZQUIERDA/SÓLO_DERECHA

Justificar la posición de los datos de salida.

JUST_LEFT – Posición izquierda

JUST_Right – posición correcta

hal_adc_start Iniciar la conversión de ADC
hal_adc_busy 0/1

Verificar el estado de la conversión

0 – No ocupado

1 – Ocupado

hal_adc_read_LSB Byte Leer el LSB de los datos convertidos.
hal_adc_read_MSB Byte Leer el MSB de los datos convertidos.

//Configurar el ADC

hal_adc_set_input_channel (HAL_ADC_INP_AIN0);

Aquí necesitamos asignar qué pin de entrada estamos configurando para la entrada analógica. Como estamos usando P0.0, lo definimos por HAL_ADC_INP_AIN0

hal_adc_set_reference (HAL_ADC_REF_VDD);

El voltaje de referencia del ADC se mantiene igual a VDD (voltaje de suministro), que es 3,3 V.

hal_adc_set_input_mode (HAL_ADC_SINGLE);

Como utilizamos una única entrada, se establece en HAL_ADC_SINGLE.

hal_adc_set_conversion_mode (HAL_ADC_SINGLE_STEP);

Durante la conversión de ADC, podemos configurar el modo de conversión. Aquí lo definimos como un solo paso.

hal_adc_set_resolución (HAL_ADC_RES_8BIT);

También podemos configurar la resolución antes de que el controlador inicie las operaciones del ADC. Lo estamos configurando a 8 bits.

hal_adc_set_data_just (HAL_ADC_JUST_RIGHT);

Podemos ajustar los datos hacia la derecha o hacia la izquierda en la operación ADC. Nos estamos adaptando a la derecha

Encuentre a continuación el bucle principal donde se lleva a cabo la operación del ADC

Mientras (verdadero)
{
hal_adc_start; // Iniciar la conversión ADC
while( hal_adc_busy ) // Espera a que el ADC finalice una conversión
{
}
P1 = hal_adc_read_LSB; // Escribe el resultado del ADC en P1
}
}
También demostramos el experimento mediante un vídeo. Aquí proporcionamos el voltaje analógico entre 0 y 3,3 V usando el potenciómetro.
Adjuntamos LED al puerto P1. La cantidad de LED que se encienden variará según el voltaje de entrada analógica proporcionado en el pin analógico.
Puede compilar el código proporcionado aquí usando el software Keil y registrar el NRF usando la grabadora para ver el experimento usted mismo.
Estén atentos a nosotros mientras escribimos más para usted.
¡¡Tenga un buen día!!

Código fuente del proyecto

###

 //Programa para

/* Copyright (c) 2009 Nordic Semiconductor. Todos los derechos reservados.

*
*La información contenida en este documento es propiedad confidencial de Nordic *ASA Semiconductor. Los términos y condiciones de uso se describen detalladamente. * en el CONTRATO DE LICENCIA DE SOFTWARE ESTÁNDAR DE NORDIC SEMICONDUCTORES. * * Se concede a los licenciatarios el uso gratuito e intransferible de la información. NO * Se proporciona GARANTÍA DE CUALQUIER TIPO. Este título NO debe eliminarse del * el archivo. * *$Última revisión modificada: 133$ */ /** @archivo * @brief Ejemplo de modo continuo de ADC * @defgroup adc_cont_example Ejemplo de modo continuo de ADC * @{ * @ingroup nrf_examples * * @brief Este ejemplo muestra P00 usando el modo ADC continuo a una velocidad de 2 Ksps * y genera el valor de muestra de 8 bits en P1. * */ //pelusa -e716 //pelusa -e714 #incluir "nrf24le1.h" #incluir "hal_adc.h" #incluir retraso nulo (no firmado en nosotros) { mientras nosotros--) { _nop_ ; } } vacío principal { // Definir P1 como salida P1DIR = 0; P10 = 0; //Configurar el ADC hal_adc_set_input_channel(HAL_ADC_INP_AIN0); hal_adc_set_reference(HAL_ADC_REF_VDD); hal_adc_set_input_mode(HAL_ADC_SINGLE); hal_adc_set_conversion_mode(HAL_ADC_CONTINOUS); hal_adc_set_sampling_rate(HAL_ADC_2KSPS); hal_adc_set_resolución(HAL_ADC_RES_8BIT); hal_adc_set_data_just(HAL_ADC_JUST_RIGHT); // Habilite las interrupciones MISC para habilitar la interrupción ADC MISC = 1; //Habilitar interrupciones globales EA = 1; //Iniciar conversión ADC hal_adc_start; para(;;){} } //interrupción ADC (MISC) ADC_ISR { valor interno = 0; val=hal_adc_read_LSB; P10 = 1; retraso(1000); retraso(valor * 4); P10 = 0; retraso(19000 - valor * 4); } /** @} */

###

Diagramas de circuito

Diagrama de circuito-NRF24LE1-Interfaz-ADC

Vídeo del proyecto

Conteúdo Relacionado

¿Cuál es el papel de los sensores automotrices en los vehículos modernos?
En cada vehículo hay una red de sensores integrada...
Cómo elegir un controlador de bicicleta eléctrica
El controlador del motor es uno de los componentes...
Cómo solucionar problemas comunes de ESP32-CAM
ESP32-CAM es un módulo de cámara compacto que combina...
Una guía de estándares USB desde 1.0 hasta USB4
La evolución de los estándares USB ha sido fundamental...
Schurter mejora la serie de selectores de voltaje con revestimiento de plata
SCHURTER anuncia una mejora de su popular serie SWZ...
Los versátiles tubos de luz rígidos de 3 mm de VCC, que se ofrecen en versión de montaje inverso
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A interface serial PCI fornece conectividade confiável em ambientes extremos
A Sealevel Systems anuncia o lançamento da Interface Serial...
STMicroelectronics expande portfólio de conversão de energia com diodos Trench Schottky de 100 V
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
O que são Sistemas Globais de Navegação por Satélite (GNSS) e como são usados?
Determinar uma localização precisa é necessário em várias indústrias...
O conversor GaN de 50 W da STMicroelectronics permite projetos de energia de alta eficiência
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
Samsung e Red Hat farão parceria em software de memória de próxima geração
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
Primeiro MPU single-core com interface de câmera MIPI CSI-2 e áudio
O mercado embarcado tem uma necessidade de soluções de...
Decodificación fluida en motor de inducción para mejor rendimiento.
Probablemente se haya encontrado con el término " resistencia...
Comprensión de los aisladores de soporte en sistemas eléctricos
Probablemente tenga un aislante de soporte si ha notado...
Explore Stay Insulator: seguridad, instalación y mantenimiento
Probablemente haya visto un aislante colocado en postes de...
Más seguridad y eficiencia con el aislador de grilletes
Probablemente hayas visto aisladores de grillete entronizados en postes...
Descubra el poder de los relés de enclavamiento para lograr eficiencia energética y más
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.