Chatea con nosotros si tienes alguna pregunta.
Módulo de detección óptica de proximidad por LED infrarrojo
Módulo de detección óptica de proximidad por LED infrarrojo
Módulo de detección óptica de proximidad por LED infrarrojo
Módulo de detección óptica de proximidad por LED infrarrojo
Módulo de detección óptica de proximidad por LED infrarrojo
Módulo de detección óptica de proximidad por LED infrarrojo

Módulo de detección óptica de proximidad por LED infrarrojo

KS0269

Nuevo

Módulo de detección óptica de proximidad por led infrarrojo ALS. Marca Keyestudio.

DISPONIBLE PARA ENTREGA INMEDIATA.
18.000 $
Cantidad

Comprar por WhatsApp

DESCRIPCIÓN

EL KS0269 un sensor triple integrado que incluye luz ambiental, sensor de proximidad y LED infrarrojo, que tiene dos funciones, por un lado, se utiliza para detectar el brillo ambiental actual (ALS); De acuerdo con el brillo ambiental actual, ajusta automáticamente el brillo de la luz de fondo para adaptarse a la luz ambiental mediante el ajuste del software, lo que puede suavizar el brillo de la luz de fondo para proteger su visión y lograr el efecto de ahorro de energía.

Respecto a la otra función, es un sensor de proximidad (PROX). El sensor ha sido integrado transmisor / receptor y minimizado el diseño, además, el diseño y la instalación no tienen más restricciones de espacio, y para parte de una estructura es relativamente simple.

Archivo: KS0269 -. Png

canal

CARACTERÍSTICAS

  • Voltaje de trabajo: DC 3.3V
  • Distancia de detección: 100 mm
  • Modo de comunicación: comunicación IIC
  • Rango de temperatura: -30 ℃ a + 85 ℃

DIAGRAMA DE CONEXIÓN

pulgar

CÓDIGO DE PRUEBA

#define DUMP_REGS

#include <Wire.h>
#include <APDS9930.h>

// Pins
#define APDS9930_INT 2 // Necesita ser un pin de interrupción
#define LED_PIN 13 // LED para mostrar la interrupción

// Constantes
#define PROX_INT_HIGH 600 // Nivel de proximidad para la interrupción
#define PROX_INT_LOW 0 // Sin interrupción

// Variables globales
APDS9930 apds = APDS9930 ();
flotante luz_de_ambiente = 0; // también puede ser un largo sin signo
uint16_t ch0 = 0;
uint16_t ch1 = 1;
uint16_t proximity_data = 0;
volatile bool isr_flag = false;

void setup () {

  // Establecer el LED como salida
  pinMode (LED_PIN, SALIDA);
  pinMode (APDS9930_INT, INPUT);

  // Inicializar el puerto serie
  Serial.begin (9600);
  Serial.println ();
  Serial.println (F ("------------------------------"));
  Serial.println (F ("APDS-9930 - ProximityInterrupt"));
  Serial.println (F ("------------------------------"));

  // Inicia la rutina del servicio de interrupción
  attachInterrupt (digitalPinToInterrupt (APDS9930_INT), interruptRoutine, FALLING);

  // Inicializar APDS-9930 (configurar I2C y valores iniciales)
  if (apds.init ()) {
    Serial.println (F ("inicialización APDS-9930 completa"));
  }
  else {
    Serial.println (F ("Algo salió mal durante APDS-9930 init!"));
  }

  // Ajuste la ganancia del sensor de proximidad
  if (! apds.setProximityGain (PGAIN_2X)) {
    Serial.println (F ("Algo salió mal al intentar establecer PGAIN"));
  }

  // Establecer umbrales de interrupción de proximidad
  if (! apds.setProximityIntLowThreshold (PROX_INT_LOW)) {
    Serial.println (F ("Error al escribir bajo umbral"));
  }
  if (! apds.setProximityIntHighThreshold (PROX_INT_HIGH)) {
    Serial.println (F ("Error al escribir alto umbral"));
  }

  // Comience a ejecutar el sensor de proximidad APDS-9930 (interrupciones)
  if (apds.enableProximitySensor (true)) {
    Serial.println (F ("El sensor de proximidad se está ejecutando ahora"));
  }
  else {
    Serial.println (F ("Algo salió mal durante el sensor init!"));
  }

  // Comience a ejecutar el sensor de luz APDS-9930 (sin interrupciones)
  if (apds.enableLightSensor (false)) {
    Serial.println (F ("Sensor de luz se está ejecutando ahora"));
  }
  else {
    Serial.println (F ("¡Algo salió mal durante el inicio del sensor de luz!"));
  }

#ifdef DUMP_REGS
  / * Register dump * /
  uint8_t reg;
  uint8_t val;

  para (reg = 0x00; reg <= 0x19; reg ++) {
    if ((reg! = 0x10) && \
      (reg! = 0x11))
    {
      apds.wireReadDataByte (reg, val);
      Serial.print (reg, HEX);
      Serial.print (": 0x");
      Serial.println (val, HEX);
    }
  }
  apds.wireReadDataByte (0x1E, val);
  Serial.print (0x1E, HEX);
  Serial.print (": 0x");
  Serial.println (val, HEX);
#terminara si

}

void loop () {

  // Si ocurre una interrupción, imprima el nivel de proximidad
  if (isr_flag) {

    // Leer el nivel de proximidad e imprimirlo
    if (! apds.readProximity (proximity_data)) {
      Serial.println ("Error al leer el valor de proximidad");
    }
    else {
      Serial.print ("Proximity detected! Level:");
      Serial.print (proximity_data);
      Serial.print ("");
    }
    apds.readAmbientLightLux (ambient_light);
    // Leer los niveles de luz (ambiente, rojo, verde, azul)
    if (! apds.readAmbientLightLux (ambient_light) ||
      ! apds.readCh0Light (ch0) ||
      ! apds.readCh1Light (ch1)) {
      Serial.println (F ("Error al leer los valores de luz"));
    }
    else {
      Serial.print (F ("Ambiente:"));
      Serial.print (ambient_light);
      Serial.print (F ("Ch0:"));
      Serial.print (ch0);
      Serial.print (F ("Ch1:"));
      Serial.println (ch1);
    }

    // Enciende el LED por medio segundo
    digitalWrite (LED_PIN, ALTO);
    retraso (300);
    digitalWrite (LED_PIN, BAJO);

    // Restablecer el indicador y borrar la interrupción APDS-9930 (¡IMPORTANTE!)
    isr_flag = false;
    if (! apds.clearProximityInt ()) {
      Serial.println ("Error al borrar la interrupción");
    }

  }
}

void interruptRoutine () {
  isr_flag = verdadero;
}
 

RESULTADO DE LA PRUEBA

Probado por el software de la versión Arduino-1.8.2, luego abra el monitor serie, puede ver los datos como la figura que se muestra a continuación.


pulgar


KS0269

Referencias específicas

Novedad.....

productos relacionados

16 otros productos en la misma categoría:

    

Boletín

Ingrese su correo