Indholdsfortegnelse:

Farveblander med Arduino: 9 trin (med billeder)
Farveblander med Arduino: 9 trin (med billeder)

Video: Farveblander med Arduino: 9 trin (med billeder)

Video: Farveblander med Arduino: 9 trin (med billeder)
Video: Colour mixer | Farveblander | Danish 2024, November
Anonim
Image
Image

Af tliguori330Følg mere af forfatteren:

Farvesfære med Arduino
Farvesfære med Arduino
Doodle Bot med designproces
Doodle Bot med designproces
Doodle Bot med designproces
Doodle Bot med designproces
Arduino Touch klaver
Arduino Touch klaver
Arduino Touch klaver
Arduino Touch klaver

Om: Lærer altid….. Mere om tliguori330 »

En farveblander er et fantastisk projekt for alle, der arbejder og vokser med Arduino. Ved afslutningen af denne instruktive vil du være i stand til at blande og matche næsten alle tænkelige farver ved at dreje 3 knapper. Færdighedsniveauet er lavt nok til, at selv en komplet rookie kan gennemføre det med succes, men også interessant nok til at være sjovt for en erfaren dyrlæge. Omkostningerne ved dette projekt er næsten ingenting, og de fleste Arduino -sæt leveres med de nødvendige materialer. Kernen i denne kode er nogle fundamentale arduino -funktioner, som alle, der bruger arduino, vil forstå. Vi vil gå i dybden med analogRead () og analogWrite () funktioner, som vi som en anden sædvanlig funktion kaldet map (). Disse links bringer dig til arduino -referencesider for disse funktioner.

Trin 1: Dele og komponenter

Dele og komponenter
Dele og komponenter
Dele og komponenter
Dele og komponenter
Dele og komponenter
Dele og komponenter
Dele og komponenter
Dele og komponenter

Arduino Uno

Potentiometer (x3)

RGB LED

220 ohm modstand (x3)

Jumperwires (x12)

Brødbræt

Trin 2: Planlæg din fremgang

Planlæg din fremgang
Planlæg din fremgang

Det kan være meget nyttigt at planlægge, hvordan du gennemfører dit projekt. Kodning handler om den logiske udvikling fra et trin til det næste. Jeg lavede et rutediagram, der beskriver, hvordan jeg vil have min skitse til at køre. Det overordnede mål er at få 3 knapper (potentiometre) til at styre hver af de tre farver på en RGB LED. For at opnå dette skal vi lave en skitse, der matcher rutediagrammet. Vi vil….

1) Læs 3 forskellige potentiometre, og gem deres værdier i variabler.

2) Vi vil konvertere disse værdier til at matche området for RGB LED.

3) Så vil vi endelig skrive de konverterede værdier til hver af farverne på RGB.

Trin 3: Sådan bruges potentiometre

Sådan bruges potentiometre
Sådan bruges potentiometre
Sådan bruges potentiometre
Sådan bruges potentiometre

En af de mest grundlæggende komponenter i et elektroniksæt, potentiometeret kan bruges i mange forskellige projekter. potentiometre fungerer ved at lade brugeren fysisk ændre kredsløbets modstand. Det mest landbrugsmæssige eksempel på et potentiometer er en lysdæmper. ved at glide eller dreje på en knap ændres kredsløbets længde. en længere vej resulterer i mere modstand. Den øgede modstand sænker omvendt strømmen og lyset dæmpes. Disse kan fås i alle forskellige former og størrelser, men de fleste har samme grundlæggende opsætning. En elev bad om hjælp til at reparere sin guitar, og vi fandt ud af, at knapperne på den var nøjagtig de samme som potentiometre. Generelt var du yderbenene forbundet til 5 volt og jord, og det midterste ben går til en analog pin som A0

Trin 4: Ledningsskema for (3x) potentiometer

Ledningsskema for (3x) potentiometer
Ledningsskema for (3x) potentiometer
Ledningsskema for (3x) potentiometer
Ledningsskema for (3x) potentiometer
Ledningsskema for (3x) potentiometer
Ledningsskema for (3x) potentiometer

Det venstre ben vil blive forbundet til 5v, og det højre ben vil være forbundet til GND. Du kan faktisk vende disse to trin, og det vil ikke skade projektet særlig meget. Alt, hvad der ville ændre sig, er at dreje knappen helt til venstre vil være fuld lysstyrke i stedet for helt væk. Det midterste ben vil blive forbundet til en af de analoge ben på Arduino. Da vi vil have tre knapper, vil vi tredoble det arbejde, vi lige har udført. Hver knap har brug for 5v og GND, så disse kan deles ved hjælp af et brødbræt. Den røde strimmel på brødbrættet er forbundet til 5 volt, og den blå strimmel er forbundet til jorden. Hver knap har brug for sin egen analoge pin, så de er forbundet til A0, A1, A2.

Trin 5: Brug af AnalogRead () og variabler

Når du har indstillet potentiometeret korrekt, er vi klar til at læse disse værdier. Når vi vil gøre dette, bruger vi funktionen analogRead (). Den korrekte syntaks er analogRead (pin#); så for at læse vores midterste potentiometer ville vi analogRead (A1); For at arbejde med tallene, der sendes fra knappen til Arduino, vil vi også gerne gemme disse tal i en variabel. Kodelinjen vil udføre denne opgave, når vi læser potentiometeret og gemmer dets aktuelle tal i heltalsvariablen "val"

int val = analogRead (A0);

Trin 6: Brug af den serielle skærm med 1 knap

Image
Image

I øjeblikket er vi i stand til at hente værdier fra knapperne og gemme dem i en variabel, men det ville være nyttigt, hvis vi kunne se disse værdier. For at gøre dette skal vi bruge den indbyggede serielle skærm. Koden herunder er den første skitse, vi rent faktisk vil køre i Arduino IDE, som kan downloades på deres websted. I void -opsætningen () aktiverer vi de analoge ben, der er forbundet til hvert mellemben som en INPUT og aktiverer den serielle skærm ved hjælp af Serial.begin (9600); næste læser vi kun den ene af knapperne og gemmer den i en variabel som før. Ændringen nu er, at vi tilføjede en linje, der udskriver, hvilket nummer der er gemt i variablen. Hvis du kompilerer og kører skitsen, kan du derefter åbne din serielle skærm og se tal rulle på skærmen. Hver gang koden sløjfer, læser vi og udskriver et andet nummer. Hvis du drejer knappen tilsluttet A0, skal du se værdier fra 0-1023. senere vil målet være at læse alle 3 potntiometre, hvilket ville kræve 2 flere analogReads og 2 forskellige variabler for at gemme og udskrive.

ugyldig opsætning () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Serial.begin (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }

Trin 7: Brug af RGB LED

Brug af RGB LED
Brug af RGB LED
Brug af RGB LED
Brug af RGB LED
Brug af RGB LED
Brug af RGB LED

Den 4 -benede RGB LED er en af mine yndlingskomponenter til Arduino. Jeg finder den måde, den er i stand til at skabe uendelige farver fra blandinger af 3 grundfarver fascinerende. Opsætningen ligner enhver almindelig LED, men her har vi stort set en rød, blå og grøn lysdioder kombineret sammen. De korte ben bliver hver især styret af en af PWM -benene på arduinoen. Det længste ben vil blive forbundet til 5 volt eller jord, afhængigt af dit i en fælles anode eller fælles katode LED. Du bliver nødt til at prøve begge måder at løse problemet på. Vi vil allerede have 5v og GND tilsluttet brødbrættet til det skulle være let at ændre. Diagrammet ovenfor viser også brug af 3 modstande. Jeg springer faktisk over dette trin ofte, da jeg ikke har haft, og LED blæser ud på mig.

For at lave farver bruger vi funktionen analogWrite () til at styre, hvor meget rødt, blåt eller grønt der skal tilføjes. For at bruge denne funktion skal du sige hvilken pin# vi vil tale med og et tal mellem 0-255. 0 er helt slukket, og 255 er den højeste mængde af en farve. Lad os forbinde det røde ben til pin 9, det grønne til pin 10 og det blå til pin 11. Dette kan tage lidt forsøg og fejl for at finde ud af, hvilket ben der er i hvilken farve. Hvis jeg ville lave en lilla nuance, kunne jeg lave en masse rød, ingen grøn og måske halv styrke blå. Jeg opfordrer dig til at pille ved disse tal, det er virkelig spændende. Nogle almindelige eksempler er på billederne ovenfor

ugyldig opsætning () {

pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Trin 8: Brug af potentiometre til at styre RGB LED (med en fejl)

Brug af potentiometre til at styre RGB LED (med en fejl)
Brug af potentiometre til at styre RGB LED (med en fejl)
Brug af potentiometre til at styre RGB LED (med en fejl)
Brug af potentiometre til at styre RGB LED (med en fejl)
Brug af potentiometre til at styre RGB LED (med en fejl)
Brug af potentiometre til at styre RGB LED (med en fejl)

Det er på tide at begynde at smelte vores to koder sammen. Du bør have lige nok plads på et standard brødbræt til at passe til alle 3 knapper og RGB LED. Ideen er i stedet for at indtaste værdierne for rød blå og grøn, vi vil bruge værdierne gemt fra hvert poteniometer til konstant at ændre farverne. vi skal bruge 3 variabler i dette tilfælde. redval, greenval, blueval er alle forskellige variabler. Husk, at du kan navngive disse variabler alt, hvad du vil. Hvis du drejer den "grønne" knap, og den røde mængde ændres, kan du skifte navnene til at matche korrekt. du kan nu dreje hver knap og styre farverne !!

ugyldig opsætning () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

Trin 9: BONUS: Kort () Funktion og rensekode

Du vil måske bemærke, at når du begynder at dreje knappen til en farve op, vokser den og pludselig falder ned til slukket. Dette mønster for at vokse og derefter hurtigt slukke gentages 4 gange, når du drejer knappen helt op. Hvis du husker, sagde vi, at potentiometrene kan aflæse værdier mellem 0 og 1023. Funktionen analogWrite () accepterer kun værdier mellem 0 og 255. Når potentiometret går over 255, starter det grundlæggende forfra på 0. Der er en god funktion til at hjælpe med fejl kaldet map (). du kan konvertere et talområde til et andet talinterval i et trin. vi konverterer tal fra 0-1023 til tal fra 0-255. For eksempel hvis knappen var indstillet til halvvejs, skulle den læse omkring 512. dette tal ville blive ændret til 126, hvilket er halv styrke for LED'en. I denne sidste skitse navngav jeg stifterne med variabelnavne for min bekvemmelighed. Du har nu en færdig farveblander at eksperimentere med !!!

// variabelnavne til potentiometerstifter

int redPot = A0; int greenPot = A1; int bluePot = A2 // variabelnavne til RGB -pins int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Seriel, begynd (9600); } void loop () {// læs og gem værdier fra potentiometre int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // konverter værdierne fra 0-1023 til 0-255 for RGB LED redVal = map (redVal, 0, 1023, 0, 255); greenVal = map (greenVal, 0, 1023, 0, 255); blueVal = kort (blueVal, 0, 1023, 0, 255); // skriv disse konverterede værdier til hver farve på RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // vis værdierne på Serial monitor Serial.print ("rød:"); Serial.print (redVal); Serial.print ("grøn:"); Serial.print (greenVal); Serial.print ("blå:"); Serial.println (blueVal); }

Anbefalede: