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

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Onderdelen en benodigdheden

OnderdeelAantal
Arduino UNO1
Draaipotentiometer (standaard)3
Breadboard (standaard)1
RGB Led1
Weerstand 330 ohm3
Male-male jumper draden (~15 stuks)1

Apps en online diensten

  • Arduino IDE

Over dit project

Arduino Kleur Mixer

Deze tutorial is redelijk eenvoudig en vereist basiskennis van Arduino en elektronica. Als je nog niet bekend bent met Arduino, vind je links naar handleidingen in de tekst.

We gaan alle mogelijke kleuren genereren met een simpele draai aan de potentiometers. Je leert tegelijkertijd het RGB-kleurmodel begrijpen en hoe moderne displays werken.

We gebruiken Arduino analoge In-/Uitgangen (I/O) en leren hoe je analoge spanningen leest en schrijft op de Arduino-pinnen.

1-1 Onderdelen

  • Arduino board (Arduino Uno)
  • Breadboard
  • Male-male jumpers (~15 stuks)
  • 3 × Potentiometers (5 kΩ)
  • 3 × 330 Ω weerstanden (oranje-oranje-bruin)
  • RGB Led (RGB-module werkt ook)
  • PC met Arduino IDE geïnstalleerd

Laten we beginnen!

Het principe: de Arduino stuurt op de RGB-led pinnen een spanning uit die evenredig is met de invoerspanning van de potentiometer op de analoge ingangen.

1-2 De potentiometer aansluiten

De potentiometer fungeert als spanningsdeler, waar Vout de Arduino-pin is.

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Kortom: het transformeert een instelbare hoeveelheid spanning (verandert door de knop te draaien) naar de analoge ingangspin van de Arduino (Vout).

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Sluit de potmeter aan zoals geïllustreerd: de buitenste aansluitingen op 5V of GND (spelt niet), de middelste terminal gaat naar de analoge ingang. 5V en GND haal je van de Arduino-pinnen.

Ik gebruik oranje voor 5V (in plaats van rood) om voeding- en signaallijnen te scheiden.

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Herhaal dit voor de 3 potmeters (één per kleur). Ik sluit Rood aan op A0, Groen op A1, Blauw op A2.

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

1-3 De RGB LED aansluiten

De RGB-led bevat 3 leds naast elkaar. Hun gecombineerde licht valt op je netvlies als één kleur.

Met 256 PWM-waarden per uitgang en 3 pinnen (R, G, B) krijg je 256 × 256 × 256 = 16.777.216 kleuren (bijna 17 miljoen).

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

De RGB-led wordt op dezelfde manier aangesloten als een gewone led, maar 3 keer herhaald.

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Vergeet de 330 Ω weerstanden niet! Ik maakte deze fout en brandde mijn rode led. Stroom vernietigt een led in een fractie van een seconde.

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Laten we coderen

De Arduino-code voert in de setup() en loop() eenvoudige taken uit:

Setup

  • Stel 3 analoge ingangspinnen in op INPUT.
  • Stel 3 PWM-uitgangspinnen in op OUTPUT.

Loop

  • Lees de potmeterwaarde met analogRead().
  • Map de waarde (0–1023) naar een PWM-waarde (0–255) met map().
  • Schrijf de PWM-waarde naar de uitgangspin met analogWrite().

De volledige code staat hieronder.

Code

RGB LED Game code Arduino

Sluit de LED-pinnen aan volgens de outRGB-array en de sensorpinnen volgens inRGB-array.

/* Controls RGB LED using potentiometers for each color
   Name: RGBLedPot.ino
   Created: 17/2/16 9:47:03 AM
   Author: Ahmed Hamdy
   GNUPL 3.0+ */
int inRGB[] = { A0, A1, A2 }; // Analog Inputs to read potentiometer values
int outRGB[] = { 9, 10, 11 }; // PWM output pins to control brightness of each color in the RGB LED
int tempValue = 0; // Placeholder
const int inMinVal = 0, inMaxVal = 1023; // Values that define the maximum and minimum value returned from the potentiometer reading

void setup() {
  for (int i = 0; i < 3; i++) {
    pinMode(inRGB[i], INPUT);   // Prepare those pins to read the potentiometer values
    pinMode(outRGB[i], OUTPUT); // Prepare those pins to output the values of the RGB LED
  }
}

void loop() {
  for (int i = 0; i < 3; i++) {
    tempValue = analogRead(inRGB[i]); // Read the potentiometer
    // Scale down the potentiometer reading (0 ~ 1023) to a valid PWM value (0 ~ 255)
    tempValue = map(tempValue, inMinVal, inMaxVal, 0, 255);
    // Write the output on the pin
    analogWrite(outRGB[i], tempValue);
  }
}

Schema's

Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding

Productieproces

  1. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  2. Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
  3. Find Me: Slimme Item Locator met Arduino en Bluetooth
  4. Bouw een Functionele, Arduino-aangedreven 3D-geprinte Robotarm – Stap-voor-Stap Handleiding
  5. DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
  6. Arduino RGB LED Kleurmixer – Beginner-vriendelijk DIY-project
  7. NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
  8. Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
  9. Bouw een krachtige FM-radio ontvanger met Arduino en TEA5767 module
  10. Arduino 101: Bouw een teller met DHT11 sensor & LCD display
  11. Begin het Nieuwe Jaar Met Dynamische Muzikale LED-verlichting