Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Bewegungsgesteuerter Farbwechsler!

Komponenten und Verbrauchsmaterialien

Sparkfun APDS-9960
× 1
Jumper (generisch)
× 1
Arduino UNO
× 1
Widerstand 4,75 kOhm
× 1
RGB diffundierte gemeinsame Kathode
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Dieses Projekt ermöglicht es Ihnen, die Kraft Ihrer Bewegungen zu nutzen, um eine RGB-LED zu steuern. Sie benötigen den Sparkfun APDS-9960 und eine gemeinsame CATHODE, keine Anode, RGB-LED. Stellen Sie sicher, dass Sie ein 5-V-Arduino-Board mit den 4,7k Ohm-Widerständen verwenden, da dieser Sensor das I2C-Protokoll verwendet. Verbinden Sie dann wie im Schaltplan. Von dort aus können Sie dem Code benutzerdefinierte Farben hinzufügen. Ich habe schon 6 gesetzt. Die Standardsteuerelemente sind:nach oben wischen, um sie einzuschalten, nach unten wischen, um sie auszuschalten, nach rechts wischen, um zur nächsten Farbe vorzurücken, und nach links, um sie zurückzuspulen. Dieser Code kann auch an viele andere Arten von Projekten angepasst werden! Fühlen Sie sich frei zu experimentieren und weitere tolle Projekte zu erstellen. Viel Spaß beim Machen!

Ein Bild des Produkts auf einem Steckbrett:

Code

  • Arduino-Code
Arduino-CodeC/C++
Kopieren und Einfügen
#include #include // Pins#define APDS9960_INT 2 // Muss ein Interrupt-Pin sein // Constantsint red_pin =A0;int green_pin =A1;int blue_pin =A2;int onOff_flag =0;//Machen Sie das Array zum Durchschleifenint colorNumber =0;// Globale VariablenSparkFun_APDS9960 apds =SparkFun_APDS9960();int isr_flag =0;void setup() {// Setzen Sie den Interrupt-Pin als Input-PinMode (APDS9960_INT, EINGANG); // Serielle Schnittstelle initialisieren Serial.begin (9600); Serial.println(); Serial.println (F("--------------------------------")); Serial.println (F ("SparkFun APDS-9960 - GestureTest")); Serial.println (F("--------------------------------")); // Interrupt-Service-Routine initialisieren attachInterrupt(0, InterruptRoutine, FALLING); // APDS-9960 initialisieren (I2C und Anfangswerte konfigurieren) if (apds.init()) { Serial.println (F ("APDS-9960 Initialisierung abgeschlossen")); } else { Serial.println (F ("Etwas ist während der APDS-9960-Initialisierung schief gelaufen!")); } // Starten Sie die APDS-9960-Gestensensor-Engine, wenn (apds.enableGestureSensor (true)) { Serial.println (F ("Gestensensor wird jetzt ausgeführt")); } else { Serial.println (F ("Etwas ist beim Init des Gestensensors schief gelaufen!")); } PinMode (A0, AUSGANG); PinMode (A1, AUSGANG); PinMode (A2, AUSGANG); analogWrite (A0, 0); analogWrite(A1, 0); analogWrite (A2, 0);}void loop () { if ( isr_flag ==1 ) { detachInterrupt (0); handleGesture(); isr_flag =0; AttachInterrupt(0, InterruptRoutine, FALLING); aufrechtzuerhalten. Wenn (onOff_flag ==1) { Schalter (colorNumber) { Fall 0:Serial.println ("rot"); analogWrite (red_pin, 255); analogWrite (grüner_pin, 0); analogWrite (blue_pin, 0); brechen; Fall 1:Serial.println ("Babyblau"); analogWrite (red_pin, 255); analogWrite (grüner_pin, 153); analogWrite (blue_pin, 204); brechen; Fall 2:Serial.println ("dunkelblau"); analogWrite (red_pin, 100); analogWrite (grüner_pin, 0); analogWrite (blauer_pin, 170); brechen; Fall 3:Serial.println ("grün"); analogWrite (red_pin, 0); analogWrite (grüner_pin, 255); analogWrite (blue_pin, 0); brechen; Fall 4:Serial.println ("blau"); analogWrite (red_pin, 0); analogWrite (grüner_pin, 0); analogWrite (blue_pin, 255); brechen; Fall 5:Serial.println ("violett"); analogWrite (red_pin, 191); analogWrite (grüner_pin, 0); analogWrite (blue_pin, 255); brechen; }} sonst if (onOff_flag ==0) { analogWrite (red_pin, 0); analogWrite (grüner_pin, 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("UP"); onOff_flag =1; brechen; case DIR_DOWN:Serial.println("DOWN"); onOff_flag =0; brechen; case DIR_LEFT:Serial.println("LEFT"); if(onOff_flag ==1){ if(colorNumber>0){ colorNumber -=1; Serial.println (Farbnummer); aufrechtzuerhalten. Sonst if (colorNumber <1) { colorNumber =5; Serial.println (Farbnummer); } } brechen; case DIR_RIGHT:Serial.println("RIGHT"); if(onOff_flag ==1){ if(colorNumber <5){ colorNumber +=1; Serial.println (Farbnummer); aufrechtzuerhalten. Sonst if (colorNumber> 4) {colorNumber =0; Serial.println (Farbnummer); } } brechen; case DIR_NEAR:Serial.println("NEAR"); brechen; Fall DIR_FAR:Serial.println("FAR"); brechen; Standard:Serial.println("NONE"); } }}

Schaltpläne

Verbinden Sie wie es ist.

Herstellungsprozess

  1. Bewegungsgesteuerte AWS IoT-Schaltfläche
  2. Raspberry Pi Roboter über Bluetooth gesteuert
  3. Gestengesteuerte interaktive Tischleuchte
  4. Alexa-gesteuerte LEDs über Raspberry Pi
  5. Joystick-gesteuertes RC-Auto
  6. Nunchuk-gesteuerter Roboterarm (mit Arduino)
  7. Sprachgesteuerter Roboter
  8. Bewegungssensor-Wasserpistole
  9. Arduino-gesteuerter Klavierroboter:PiBot
  10. Arduino RGB-Farbmischer