Paso 7: código de
Improvisó el siguiente código para obtener este trabajo. Es una mezcolanza de código usando proximidad en del sensor el ejemplo se como base, con algunas características simple añadidos. No elegante, pero funciona bastante bien.
Este código es bastante accesible para un principiante, de hecho es muy similar a uno de los códigos en nuestros kits de Arduino para principiantes. Si usted está interesado en este proyecto y un programador mejor que yo, ¿por qué no tratar de mejorarlo? No se olvide de hacernos saber en el foro si haces!
(Nota: estoy usando la biblioteca incluye el sensor de Color RGB y la biblioteca Arduino alambre. Usted tendrá que descargar estos en orden para el código de compilación/subir).
#include
#include
zumbador de int = 8;
int rojo = 6;
sinVal de flotador;
int toneVal;
Variables globales
APDS9960 apds = APDS9960();
uint8_t proximity_data = 0;
void setup() {}
pinMode(buzzer,OUTPUT);
pinMode(redled,OUTPUT);
Inicializar el puerto serie
Serial.Begin(9600);
Serial.println();
Serial.println(F("---"));
Serial.println (F ("APDS-9960 - ProximitySensor"));
Serial.println(F("---"));
Inicializar el APDS-9960 (configurar el I2C y valores iniciales)
Si (apds.init()) {}
Serial.println (F ("APDS-9960 inicialización completa"));
} else {}
Serial.println (F ("algo salió mal durante la APDS-9960 init!"));
}
Ajustar la ganancia del sensor de proximidad
Si (! apds.setProximityGain(PGAIN_2X)) {}
Serial.println (F ("algo salió mal tratando de instalar PGAIN"));
}
Empezar a correr el sensor de proximidad de APDS-9960 (sin interrupciones)
Si (apds.enableProximitySensor(false)) {}
Serial.println (F ("proximidad sensor está funcionando ahora"));
} else {}
Serial.println (F ("algo salió mal durante el sensor init!"));
}
digitalWrite (rojo, baja);
}
void loop() {}
Leer el valor de proximidad
Si (! apds.readProximity(proximity_data)) {}
Serial.println ("Error al leer el valor de proximidad");
} else {}
Serial.Print ("proximidad:");
Serial.println(proximity_data);
}
Esperar 250 ms antes de la próxima lectura
Delay(250);
Si ((proximity_data) > 50) {}
para (int x = 0; x < 180; x ++)
{sinVal = (sin(x*(3.1412/180)));
toneVal = 1000+(int(sinVal*1000));
tono (8, toneVal, 100);
Delay(1);}
digitalWrite (rojo, alto);
}
Else {}
digitalWrite (zumbador, LOW);
digitalWrite (rojo, baja);
}
Si ((proximity_data) > 100) {}
para (int x = 0; x < 180; x ++)
{sinVal = (sin(x*(3.1412/180)));
toneVal = 2000+(int(sinVal*1000));
tono (8, toneVal, 100);
Delay(1);}
digitalWrite (rojo, alto);}
Else {}
digitalWrite (zumbador, LOW);
digitalWrite (rojo, baja);
}
Si ((proximity_data) > 250) {}
para (int x = 0; x < 180; x ++)
{sinVal = (sin(x*(3.1412/180)));
toneVal = 3000+(int(sinVal*1000));
tono (8, toneVal, 100);
Delay(1);}
digitalWrite (rojo, alto);
}
Else {}
digitalWrite (zumbador, LOW);
digitalWrite (rojo, baja);
}
}