Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bewegingsgestuurde kleurwisselaar!

Componenten en benodigdheden

Sparkfun APDS-9960
× 1
Jumperdraden (algemeen)
× 1
Arduino UNO
× 1
Weerstand 4.75k ohm
× 1
RGB diffuse gemeenschappelijke kathode
× 1

Apps en online services

Arduino IDE

Over dit project

Met dit project kun je de kracht van je bewegingen gebruiken om een ​​RGB-led te besturen. Je hebt de Sparkfun APDS-9960 nodig en een gewone CATHODE, geen anode, RGB LED. Zorg ervoor dat je een 5v Arduino-bord gebruikt met de 4.7k Ohm-weerstanden, omdat deze sensor het I2C-protocol gebruikt. Sluit vervolgens aan zoals in het schema. Van daaruit kunt u aangepaste kleuren in de code toevoegen. Ik heb er al 6 geplaatst. De standaardbedieningen zijn:veeg omhoog om het in te schakelen, veeg omlaag om het uit te schakelen, veeg naar rechts om vooruit te gaan naar de volgende kleur en naar links om achteruit te gaan. Deze code kan ook worden aangepast aan vele andere soorten projecten! Voel je vrij om te experimenteren en meer geweldige projecten te maken. Veel plezier met maken!

Een foto van het product op een breadboard:

Code

  • Arduino-code
Arduino-codeC/C++
Kopieer en plak
#include #include // Pins#define APDS9960_INT 2 // Moet een interrupt-pin zijn// Constantsint red_pin =A0;int green_pin =A1;int blue_pin =A2;int onOff_flag =0;//Maak de array doorlopend colorNumber =0;// Global VariablesSparkFun_APDS9960 apds =SparkFun_APDS9960();int isr_flag =0;void setup() {// Stel de interrupt-pin in als input pinMode (APDS9960_INT, INVOER); // Initialiseer seriële poort Serial.begin (9600); Serieel.println(); Serial.println(F("--------------------------------")); Serial.println(F("SparkFun APDS-9960 - GestureTest")); Serial.println(F("--------------------------------")); // Initialiseer interrupt-serviceroutine attachInterrupt(0, interruptRoutine, FALLING); // Initialiseer APDS-9960 (configureer I2C en initiële waarden) if (apds.init()) { Serial.println(F("APDS-9960 initialisatie voltooid")); } else { Serial.println(F("Er is iets misgegaan tijdens APDS-9960 init!")); } // Start de APDS-9960-bewegingssensor-engine als ( apds.enableGestureSensor (true) ) { Serial.println (F ("Gebaarsensor is nu actief")); } else { Serial.println(F("Er is iets misgegaan tijdens het opstarten van de bewegingssensor!")); } pinMode (A0, UITGANG); pinMode (A1, UITGANG); pinMode (A2, UITGANG); analoogWrite(A0, 0); analoogWrite(A1, 0); analogWrite(A2, 0);}void loop() {if(isr_flag ==1 ) {detachInterrupt(0); handvatGesture(); isr_vlag =0; attachInterrupt(0, interruptRoutine, FALLING); } if (onOff_flag ==1){ switch (colorNumber){ case 0:Serial.println("red"); analogWrite(red_pin, 255); analogWrite(green_pin, 0); analoogWrite(blue_pin, 0); pauze; geval 1:Serial.println ("babyblauw"); analogWrite(red_pin, 255); analogWrite(green_pin, 153); analogWrite(blue_pin, 204); pauze; geval 2:Serial.println ("donkerblauw"); analoogWrite(red_pin, 100); analogWrite(green_pin, 0); analoogWrite(blue_pin, 170); pauze; geval 3:Serial.println("groen"); analogWrite(red_pin, 0); analogWrite(green_pin, 255); analoogWrite(blue_pin, 0); pauze; geval 4:Serial.println ("blauw"); analogWrite(red_pin, 0); analogWrite(green_pin, 0); analoogWrite(blue_pin, 255); pauze; geval 5:Serial.println ("violet"); analoogWrite(red_pin, 191); analogWrite(green_pin, 0); analoogWrite(blue_pin, 255); pauze; }}else if(onOff_flag ==0){ analogWrite(red_pin, 0); analogWrite(green_pin, 0); analogWrite(blue_pin, 0);}delay(1000);}void interruptRoutine() {isr_flag =1;}void handleGesture() {if (apds.isGestureAvailable()) { switch (apds.readGesture()) { case DIR_UP:Serieel.println("UP"); onOff_flag =1; pauze; geval DIR_DOWN:Serial.println ("DOWN"); onOff_flag =0; pauze; geval DIR_LEFT:Serial.println ("LEFT"); if(onOff_flag ==1){ if(colorNumber>0){ colorNumber -=1; Serial.println (kleurnummer); } else if(colorNumber <1){ colorNumber =5; Serial.println (kleurnummer); } } pauze; geval DIR_RIGHT:Serial.println ("RIGHT"); if(onOff_flag ==1){ if(colorNumber <5){ colorNumber +=1; Serial.println (kleurnummer); } else if(colorNumber> 4){ colorNumber =0; Serial.println (kleurnummer); } } pauze; geval DIR_NEAR:Serial.println ("NEAR"); pauze; geval DIR_FAR:Serial.println ("FAR"); pauze; standaard:Serial.println ("GEEN"); } }}

Schema's

Verbind zoals het is.

Productieproces

  1. Bewegingsgestuurde AWS IoT-knop
  2. Raspberry Pi-robot bestuurd via Bluetooth
  3. Gebaargestuurde interactieve tafellamp
  4. Alexa gestuurde LED's via Raspberry Pi
  5. Met joystick bestuurde RC-auto
  6. Nunchuk-gestuurde robotarm (met Arduino)
  7. Spraakgestuurde robot
  8. Bewegingssensor-waterpistool
  9. Arduino-gestuurde pianorobot:PiBot
  10. Arduino RGB-kleurenmixer
  11. Wi-Servo:Wi-Fi Browser gestuurde servomotoren