Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

¡Cambiador de color controlado por movimiento!

Componentes y suministros

Sparkfun APDS-9960
× 1
Cables de puente (genéricos)
× 1
Arduino UNO
× 1
Resistencia de 4,75 k ohmios
× 1
Cátodo común difuso RGB
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Este proyecto le permitirá aprovechar la potencia de sus movimientos para controlar un LED RGB. Necesitará el Sparkfun APDS-9960 y un LED RGB común de CATHODE, no de ánodo. Asegúrese de usar una placa Arduino de 5v con resistencias de 4.7k Ohm, ya que este sensor usa el protocolo I2C. Luego conecte como tal en el esquema. Desde allí, puede agregar colores personalizados en el código. Ya he puesto 6. Los controles predeterminados son:deslizar hacia arriba para encenderlo, deslizar hacia abajo para apagarlo, deslizar hacia la derecha para avanzar al siguiente color y hacia la izquierda para retroceder. ¡Este código también se puede adaptar para adaptarse a muchos otros tipos de proyectos! Siéntete libre de experimentar y crear proyectos más increíbles. ¡Feliz fabricación!

Una imagen del producto en una placa de pruebas:

Código

  • Código Arduino
Código Arduino C / C ++
Copiar y pegar
 #include  #include  // Pines # define APDS9960_INT 2 // Necesita ser un pin de interrupción // Constantsint red_pin =A0; int green_pin =A1; int blue_pin =A2; int onOff_flag =0; // Hacer que la matriz se repita a través de int colorNumber =0; // Variables globalesSparkFun_APDS9960 apds =SparkFun_APDS9960 (); int isr_flag =0; void setup () {// Establecer el pin de interrupción como pinMode de entrada (APDS9960_INT, APORTE); // Inicializar el puerto serie Serial.begin (9600); Serial.println (); Serial.println (F ("--------------------------------")); Serial.println (F ("SparkFun APDS-9960 - GestureTest")); Serial.println (F ("--------------------------------")); // Inicializar la rutina del servicio de interrupción attachInterrupt (0, interruptRoutine, FALLING); // Inicializar APDS-9960 (configurar I2C y los valores iniciales) if (apds.init ()) {Serial.println (F ("APDS-9960 inicialización completa")); } else {Serial.println (F ("¡Algo salió mal durante la inicialización de APDS-9960!")); } // Comience a ejecutar el motor del sensor de gestos APDS-9960 if (apds.enableGestureSensor (true)) {Serial.println (F ("El sensor de gestos ahora se está ejecutando")); } else {Serial.println (F ("¡Algo salió mal durante la inicialización del sensor de gestos!")); } pinMode (A0, SALIDA); pinMode (A1, SALIDA); pinMode (A2, SALIDA); analogWrite (A0, 0); analogWrite (A1, 0); analogWrite (A2, 0);} bucle vacío () {if (isr_flag ==1) {detachInterrupt (0); handleGesture (); isr_flag =0; attachInterrupt (0, interruptRoutine, FALLING); } if (onOff_flag ==1) {switch (colorNumber) {caso 0:Serial.println ("rojo"); analogWrite (pin_rojo, 255); analogWrite (pin_verde, 0); analogWrite (pin_azul, 0); descanso; caso 1:Serial.println ("azul celeste"); analogWrite (pin_rojo, 255); analogWrite (pin_verde, 153); analogWrite (pin_azul, 204); descanso; caso 2:Serial.println ("azul oscuro"); analogWrite (pin_rojo, 100); analogWrite (pin_verde, 0); analogWrite (pin_azul, 170); descanso; caso 3:Serial.println ("verde"); analogWrite (pin_rojo, 0); analogWrite (pin_verde, 255); analogWrite (pin_azul, 0); descanso; caso 4:Serial.println ("azul"); analogWrite (pin_rojo, 0); analogWrite (pin_verde, 0); analogWrite (pin_azul, 255); descanso; caso 5:Serial.println ("violeta"); analogWrite (pin_rojo, 191); analogWrite (pin_verde, 0); analogWrite (pin_azul, 255); descanso; }} más si (onOff_flag ==0) {analogWrite (red_pin, 0); analogWrite (pin_verde, 0); analogWrite (blue_pin, 0);} delay (1000);} void interruptRoutine () {isr_flag =1;} void handleGesture () {if (apds.isGestureAvailable ()) {switch (apds.readGesture ()) {case DIR_UP:Serial.println ("ARRIBA"); onOff_flag =1; descanso; case DIR_DOWN:Serial.println ("DOWN"); onOff_flag =0; descanso; case DIR_LEFT:Serial.println ("IZQUIERDA"); if (onOff_flag ==1) {if (colorNumber> 0) {colorNumber - =1; Serial.println (colorNumber); } else if (colorNumber <1) {colorNumber =5; Serial.println (colorNumber); } } descanso; case DIR_RIGHT:Serial.println ("DERECHA"); if (onOff_flag ==1) {if (colorNumber <5) {colorNumber + =1; Serial.println (colorNumber); } else if (colorNumber> 4) {colorNumber =0; Serial.println (colorNumber); } } descanso; case DIR_NEAR:Serial.println ("CERCA"); descanso; case DIR_FAR:Serial.println ("FAR"); descanso; predeterminado:Serial.println ("NINGUNO"); }}} 

Esquemas

Conéctese como está.

Proceso de manufactura

  1. Botón de AWS IoT controlado por movimiento
  2. Robot Raspberry Pi controlado por Bluetooth
  3. Luz de mesa interactiva controlada por gestos
  4. LED controlados por Alexa a través de Raspberry Pi
  5. Coche RC controlado por joystick
  6. Brazo robótico controlado por Nunchuk (con Arduino)
  7. Robot controlado por voz
  8. Pistola de agua con sensor de movimiento
  9. Robot de piano controlado por Arduino:PiBot
  10. Mezclador de colores Arduino RGB
  11. Wi-Servo:Servomotores Wi-Fi controlados por navegador