Problema com o Sensor APDS9960

Bom dia!

Estou enfrentando problemas com o sensor APDS9960;
Antes quando utilizava uma placa arduino o sensor funcionava tranquilamente e reconhecia os gestos. Mudei de placa e o sensor é iniciado porém não reconhece os gestos.

/********** TCC PROGRAMAÇÃO SENSOR--DISPLAY *********

Display LCD 16 x 2

/*Arduino Pin  APDS-9960 Board  Function
 
 3.3V            VCC            Power
 GND             GND            Ground
 A4              SDA            I2C Data
 A5              SCL            I2C Clock
 D2              INT            Interrupt
 
****************************************************************/

//Inclusão de bibliotecas
#include <Wire.h>
#include <SparkFun_APDS9960.h>
//Carrega a biblioteca LiquidCrystal display
#include <LiquidCrystal.h>

//Pinos
#define APDS9960_INT    2 // Needs to be an interrupt pin (SENSOR)

//Variáveis globais
SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag = 0;

//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal lcd(12, 11, 5, 4, 3, 7);// mudei 2 para 7

void setup() {

  //Seta o pino de interrupção como entrada
  pinMode(APDS9960_INT, INPUT);

  //Inicializa a comunicação serial
  Serial.begin(9600);
  Serial.println();
  Serial.println(F("--------------------------------"));
  Serial.println(F("SparkFun APDS-9960 - Teste de Gestos"));
  Serial.println(F("--------------------------------"));
  
  //Iniciando rotina de interrupção
  attachInterrupt(0, interruptRoutine, FALLING);

  //Iniciando o módulo APDS-9960
  if ( apds.init() ) {
    Serial.println(F("APDS-9960: Inicialização completa!"));
  } else {
    Serial.println(F("APDS-9960: Algo deu errado durante a inicialização!"));
  }
  
  //Iniciando o sensor de gestos
  if ( apds.enableGestureSensor(true) ) {
    Serial.println(F("O sensor de gestos está funcionando!"));
  } else {
    Serial.println(F("Algo deu errado durante a unidade do sensor de gestos!"));
  }


  // SENSOR ACIMA, DISPLAY ABAIXO:
//Define o número de colunas e linhas do LCD
  
  
  lcd.begin(16, 2);
  //Limpa a tela
  lcd.clear();
  
  //Posiciona o cursor na coluna 2, linha 0;
  lcd.setCursor(2, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Ligando...");  //Ligando (Tela de carregamento)
  delay(6000); //tempo de carregamento
  
  
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(1, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Ola, eu me ");
  lcd.setCursor(1, 1);
  lcd.print("chamo Horen =)");  //Apresentação do projeto




}


void loop() {
  
  //Lógica de interrupção
  if( isr_flag == 1 ) {
    detachInterrupt(0);
    handleGesture();
    isr_flag = 0;
    attachInterrupt(0, interruptRoutine, FALLING);
  }



}

//Função responsável pela interrupção
void interruptRoutine() {
  isr_flag = 1;
}

//função responsável por identificar e retornar os resultados da leitura
void handleGesture() {
    if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP:
        Serial.println("CIMA");
         //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Oi Horen");
        break;
        
      case DIR_DOWN:
        Serial.println("BAIXO");
                 //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Sim e Voce?");
        break;
        
      case DIR_LEFT:
        Serial.println("ESQUERDA");
                 //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Prazer em");
   lcd.setCursor(3, 1);
  //Envia o texto entre aspas para o LCD
  lcd.print("Conhece-lo!");
        break;
        
      case DIR_RIGHT:
        Serial.println("Direita"); //direita
                 //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Ate mais!");
        break;
        
      case DIR_NEAR:
        Serial.println("APROXIMANDO");
                 //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
 lcd.setCursor(1, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("Ola, eu me ");
  lcd.setCursor(1, 1);
  lcd.print("chamo Horen =)");  //Apresentação do projeto
        break;
        
      case DIR_FAR:
        Serial.println("DISTANCIANDO");
                 //Limpa a tela
  lcd.clear();
  //Posiciona o cursor na coluna 3, linha 0;
  lcd.setCursor(3, 0);
  //Envia o texto entre aspas para o LCD
  lcd.print("DISTANCIANDO");
        break;
        
      default:
        Serial.println("GESTO NÃO RECONHECIDO");
    }
  }
}

Estou utilizando um "Arduino Uno" paralelo.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.