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

Arduino RGB-kleurenmixer

Componenten en benodigdheden

Arduino UNO
× 1
RGB LED
elke 4-pins common ground RGB-led werkt met dit project
× 1
Draaipotentiometer (generiek)
× 3
SparkFun Drukknopschakelaar 12 mm
× 1
Weerstand 10k ohm
× 1
Weerstand 221 ohm
× 3
Broodplank (algemeen)
× 1
Jumperdraden (algemeen)
× 1

Apps en online services

Arduino IDE

Over dit project

Voor wie is dit? :Dit RGB LED-kleurenmixerproject is perfect voor de beginnende Arduino-gebruiker die graag een interactieve gadget wil proberen te bouwen. Dit is niet alleen leuk en gemakkelijk te maken, maar kan ook handig zijn voor iedereen die RBG-kleuren gebruikt, zoals artiesten, web ontwikkelaars en interactieve lichtcontrollers.

Wat doet: Dit eenvoudige circuit combineert drie potentiometers om de helderheid in te stellen voor elk van de rode, groene en blauwe LED's in een RGB-LED.

Een drukknopschakelaar is toegevoegd en een extra functie om het circuit aan en uit te zetten.

Hoe bouw ik het? Bedraad het diagram zoals weergegeven in de schema's. De RGB-led is aangesloten op PMW-pinnen 9, 10 en 11 op de Arduino. De drukknop wordt aangesloten op pin 7 en de 3 potmeters op A0, A1 en A2. Vergeet niet om een ​​10K ohm pull-up weerstand toe te voegen aan de massa-aansluiting op de drukknop. Voor een uitleg over hoe dit werkt, kijk hier https://playground.arduino.cc/CommonTopics/PullUpDownResistor

Zorg er ook voor dat u 3 220 ohm weerstanden aansluit tussen de LED en de uitgangspinnen, dit zorgt ervoor dat uw LED niet doorbrandt.

De waarde van elke potentiometer wordt afgedrukt op de seriële monitor, dus als u met de LED speelt en een gewenste kleur vindt, kunt u de RGB-waarde opnemen om later te gebruiken.

Zodra je het circuit hebt aangesloten en de schets hebt geüpload, probeer je de knoppen op de potentiometers te draaien. Er zou eerst niets moeten gebeuren totdat u op de knop drukt. Probeer nu opnieuw aan de knoppen te draaien. De led moet nu gaan branden. Tijd om te spelen met licht! Onthoud dat RGB-licht niet hetzelfde is als het mengen van verf. als alle potentiometers op vol staan, moet het lampje wit zijn. Probeer een van de potentiometers uit of heel laag te laten en de andere twee te variëren.

Een uitbreiding van dit project zou zijn om sommige RBG-waarden hard te coderen voor bepaalde kleuren die je leuk vindt, en wat meer drukknoppen toe te voegen die, wanneer ze worden ingedrukt, de RGB-LED op die kleuren instellen. Voel je vrij om de code te delen als je een extensie als deze probeert!

Geniet ervan!

Code

  • Rgb-kleurenmixer
Rgb-kleurenmixerC/C++
int blauw =9; // Definieer digitale pinnen voor elke kleur van de LEDint groen =10;int rood =11;int redPot =A0;int greenPot =A1; // Definieer analoge pinnen voor de 3 potentiometersint bluePot =A2;int greenVal =0; // Maak een variabele om de status van elke Potentiometerint blueVal =0;int redVal =0;const int BUTTON =7; // Definieer de knop Pinint-status =0; // Maak een variabele om op te slaan of de knop aan of uit staat val =0; // Maak een variabele om de huidige status van de buttonint old_val =0 op te slaan; // maak een variabele om de vorige status van de buttonvoid setup () op te slaan {// plaats hier uw setup-code om een ​​keer uit te voeren:pinMode (groen, OUTPUT); // Stel LED's in als output's, knop als input pinMode (blauw, OUTPUT); pinMode (rood, UITGANG); pinMode (KNOP, INGANG); Serial.begin(9600);}void loop() { // plaats hier uw hoofdcode om herhaaldelijk uit te voeren:Serial.begin(9600); //Open de seriële monitor op 9600 baud val =digitalRead (BUTTON); // Controleer de status van de knop als ((val ==HOOG) &&(old_val ==LAAG)) { // Controleer of de status van de knop is veranderd status =1 - status; //Stel de knop in als aan (1) of uit (0) vertraging (10); } oude_val =waarde; // Bewaar de vorige knoplezing om de volgende keer te vergelijken via lus greenVal =analogRead (greenPot); // Lees de positie van de potentiometers blueVal =analogRead (bluePot); redVal =analoog lezen (redPot); if (state ==1) {//Als de knop is ingeschakeld, stelt u de status van elke LED in volgens de positie analogWrite (groen, groenVal / 4); //van de bijbehorende potentiometer. Analoge ingangen variëren van 0-1023, analogWrite (blauw, blueVal/4); // terwijl analoge uitgangen als PMW van 0-255 kunnen zijn. Daarom moeten we analogWrite(red, redVal/4); // deel de uitlezingen van de potentiometer door 4 om de status correct in te stellen Serial.print("RGB("); Serial.print(redVal/4); Serial.print(","); Serial.print(greenVal/4); Serial.print(",");Serial.print(blueVal/4); //Print de RGB-code, herbruikbaar in elke RGB-toepassing Serial.println(")"); vertraging (50); } else { // Als de knop uit is, zet u alle LED's op LAAG/uit analogWrite (groen, 0); analoogWrite(blauw, 0); analoogWrite(rood, 0); vertraging (50); }}

Schema's


Productieproces

  1. DIY LUMAZOID Arduino Music Visualiser
  2. Gebaargestuurde interactieve tafellamp
  3. Arduino met Bluetooth om een ​​LED te bedienen!
  4. Arduino Quadruped
  5. DIY Arduino RADIONICS-behandelingsmachine
  6. DMX RGB LED buiten
  7. Arduino kleurenmixer
  8. Muziekkleur
  9. LED-roulettespel
  10. Arduino geautomatiseerde parkeergarage
  11. Ultrasone afstandsmeter