Taula de continguts:

Mesclador de colors amb Arduino: 9 passos (amb imatges)
Mesclador de colors amb Arduino: 9 passos (amb imatges)

Vídeo: Mesclador de colors amb Arduino: 9 passos (amb imatges)

Vídeo: Mesclador de colors amb Arduino: 9 passos (amb imatges)
Vídeo: Electrones ingresando al cuerpo - Electricidad estática 2024, Desembre
Anonim
Image
Image

Per tliguori330 Segueix més de l'autor:

Esfera de colors amb Arduino
Esfera de colors amb Arduino
Bot Doodle amb procés de disseny
Bot Doodle amb procés de disseny
Bot Doodle amb procés de disseny
Bot Doodle amb procés de disseny
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Quant a: Sempre aprenent ….. Més informació sobre tliguori330 »

Un mesclador de colors és un gran projecte per a tothom que treballa i creix amb Arduino. Al final d'aquest instructiu, podreu barrejar i combinar gairebé tots els colors imaginables girant 3 botons. El nivell d’habilitat és prou baix perquè fins i tot un debutant complet pugui completar-lo amb èxit, però també prou interessant com per ser agradable per a un veterinari experimentat. El cost d’aquest projecte és gairebé nul i la majoria dels kits Arduino inclouen els materials necessaris. Al nucli d’aquest codi hi ha algunes funcions fonamentals d’arduino que tothom que faci servir arduino voldrà entendre. Anirem en profunditat sobre les funcions analogRead () i analogWrite () com nosaltres com una altra funció habitual anomenada map (). Aquests enllaços us portaran a les pàgines de referència arduino per a aquestes funcions.

Pas 1: parts i components

Parts i components
Parts i components
Parts i components
Parts i components
Parts i components
Parts i components
Parts i components
Parts i components

Arduino Uno

Potenciòmetre (x3)

LED RGB

Resistència de 220 ohm (x3)

Cable de pont (x12)

Taula de pa

Pas 2: planifiqueu el vostre progrés

Planifiqueu el vostre progrés
Planifiqueu el vostre progrés

Pot ser molt útil planificar com completareu el vostre projecte. La codificació consisteix en la progressió lògica d’un pas a l’altre. He fet un diagrama de flux que descriu com vull que es faci el meu esbós. L’objectiu general és que tres comandaments (potenciòmetres) controlin cadascun dels tres colors d’un LED RGB. Per aconseguir-ho, haurem de crear un esbós que coincideixi amb el diagrama de flux. Voldrem …

1) Llegiu 3 potenciòmetres diferents i deseu els seus valors en variables.

2) Convertirem aquests valors perquè coincideixin amb l’interval del LED RGB.

3) Després, finalment, escriurem els valors convertits a cadascun dels colors del RGB.

Pas 3: Com utilitzar els potenciòmetres

Com utilitzar els potenciòmetres
Com utilitzar els potenciòmetres
Com utilitzar els potenciòmetres
Com utilitzar els potenciòmetres

Un dels components més bàsics dels kits electrònics, el potenciòmetre es pot utilitzar en molts projectes diferents. els potenciòmetres funcionen permetent a l'usuari canviar físicament la resistència del circuit. L’exemple més potent d’un potenciòmetre és un regulador de llum. lliscar o girar un pom canvia la longitud del circuit. un camí més llarg resulta en més resistència. L’augment de la resistència disminueix inversament el corrent i la llum es redueix. Aquests poden tenir diferents formes i mides, però la majoria té la mateixa configuració bàsica. Un estudiant va demanar ajuda per arreglar la seva guitarra i ens vam assabentar que els poms de la mateixa eren exactament els mateixos que els potenciòmetres. En general, les potes externes estaven connectades a terra i 5 volts i la pota central va a un pin analògic com A0

Pas 4: Esquema de cablejat per al potenciòmetre (3x)

Esquema de cablejat per al potenciòmetre (3x)
Esquema de cablejat per al potenciòmetre (3x)
Esquema de cablejat per al potenciòmetre (3x)
Esquema de cablejat per al potenciòmetre (3x)
Esquema de cablejat per al potenciòmetre (3x)
Esquema de cablejat per al potenciòmetre (3x)

La cama més esquerra estarà connectada a 5v i la cama més dreta estarà connectada a GND. En realitat, podeu invertir aquests dos passos i no afectarà molt el projecte. Tot el que canviaria és girar el comandament fins a l’esquerra per obtenir una brillantor total en lloc de desviar-se. La cama mitjana es connectarà a un dels pins analògics de l’Arduino. Com que tindrem tres comandaments, voldrem triplicar la feina que acabem de fer. Cada comandament necessita 5v i GND, de manera que es poden compartir mitjançant una taula de pa. La tira vermella de la placa de pa està connectada a 5 volts i la tira blava està connectada a terra. Cada comandament necessita el seu propi pin analògic perquè estigui connectat a A0, A1, A2.

Pas 5: utilitzar AnalogRead () i variables

Amb el potenciòmetre configurat correctament, estem preparats per llegir aquests valors. Quan volem fer-ho, fem servir la funció analogRead (). La sintaxi correcta és analogRead (pin #); de manera que per llegir el nostre potenciòmetre mitjà aniríem analogRead (A1); Per treballar amb els números que s’envien des del comandament a l’Arduino, també voldrem guardar-los en una variable. La línia de codi realitzarà aquesta tasca mentre llegim el potenciòmetre i desem el seu número actual a la variable sencera "val"

int val = analogRead (A0);

Pas 6: utilitzar el monitor de sèrie amb 1 botó

Image
Image

Actualment podem obtenir valors dels comandaments i emmagatzemar-los en una variable, però seria útil que poguéssim veure aquests valors. Per fer-ho, hem de fer ús del monitor sèrie incorporat. El codi següent és el primer esbós que realment executarem a l'IDE Arduino que es pot descarregar al seu lloc. A la configuració buida () activarem els pins analògics connectats a cada pota mitjana com a INPUT i activarem el monitor Serial mitjançant Serial.begin (9600); a continuació, només llegim un dels comandaments i el guardem en una variable com abans. El canvi ara és que hem afegit una línia que imprimeix quin nombre s’emmagatzema a la variable. Si compileu i executeu l’esbós, podeu obrir el monitor sèrie i veure els números que es desplacen a la pantalla. Cada vegada que el codi fa bucles, estem llegint i imprimint un altre número. Si gireu el comandament connectat a A0 hauríeu de veure valors que oscil·len entre 0-1023. més endavant l'objectiu serà llegir els 3 potntiòmetres que requeririen 2 lectures analògiques més i 2 variables diferents per desar i imprimir.

configuració nul·la () {

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

Pas 7: utilitzar el LED RGB

Utilització del LED RGB
Utilització del LED RGB
Utilització del LED RGB
Utilització del LED RGB
Utilització del LED RGB
Utilització del LED RGB

El LED RGB de quatre potes i un dels meus components preferits per Arduino. Em sembla fascinant la manera com és capaç de crear infinites colors a partir de mescles de 3 colors bàsics. La configuració és similar a qualsevol LED normal, però aquí bàsicament tenim un LED vermell, blau i verd combinat. Les potes curtes seran controlades per un dels pins PWM de l’arduino. La pota més llarga estarà connectada a 5 volts o a terra, depenent de la vostra en un ànode comú o un LED de càtode comú. Haureu de provar les dues maneres de solucionar aquest problema. Ja tindrem 5v i GND connectats a la taula de treball perquè sigui fàcil de canviar. El diagrama anterior mostra també l’ús de 3 resistències. De fet, salto aquest pas sovint, ja que no ho he tingut i em va saltar el LED.

Per fer colors utilitzarem la funció analogWrite () per controlar la quantitat de vermell, blau o verd que cal afegir. Per utilitzar aquesta funció, heu de dir amb quin pin # parlarem i un número entre 0-255. 0 està completament apagat i 255 és la quantitat màxima d’un color. Connectem la cama vermella al pin 9, el verd al pin 10 i el blau al pin 11. Això pot suposar una prova i un error per esbrinar quina pota té quin color. Si volgués fer una tonalitat porpra, podria fer molt de color vermell, sense verd i potser la meitat de blau. Us animo a jugar amb aquests números, és realment emocionant. Alguns exemples habituals es mostren a les imatges anteriors

configuració nul·la () {

pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } bucle buit () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Pas 8: utilitzar potenciòmetres per controlar el LED RGB (amb un error)

Ús de potenciòmetres per controlar el LED RGB (amb un error)
Ús de potenciòmetres per controlar el LED RGB (amb un error)
Ús de potenciòmetres per controlar el LED RGB (amb un error)
Ús de potenciòmetres per controlar el LED RGB (amb un error)
Ús de potenciòmetres per controlar el LED RGB (amb un error)
Ús de potenciòmetres per controlar el LED RGB (amb un error)

És hora de començar a fusionar els nostres dos codis. Hauríeu de disposar d’espai suficient en una tauleta de pa estàndard per adaptar-se als 3 comandaments i al LED RGB. La idea és, en lloc d’escriure els valors de vermell blau i verd, utilitzarem els valors guardats de cada poteniòmetre per canviar els colors constantment. necessitarem 3 variables en aquest cas. el redval, el greenval i el blueval són variables diferents. Tingueu en compte que podeu anomenar aquestes variables com vulgueu. si gireu el pom "verd" i canvieu la quantitat vermella, podeu canviar els noms perquè coincideixin correctament. ara podeu girar cada botó i controlar els colors !!

configuració nul·la () {

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); }

Pas 9: BONUS: funció Map () i codi més net

És possible que noteu que a mesura que comenceu a girar el botó per obtenir un color creixerà i, de sobte, baixarà fins a apagar-lo. Aquest patró de creixement i apagat ràpidament es repeteix 4 vegades a mesura que gireu el comandament fins a dalt. Si recordeu, hem dit que els potenciòmetres poden llegir valors entre 0 i 1023. La funció analogWrite () només accepta valors entre 0 i 255. Un cop el potenciòmetre supera 255, bàsicament torna a començar a 0. Hi ha una bona funció per ajudar a error anomenat map (). podeu convertir un interval de números en un altre rang de números en un sol pas. convertirem números de 0-1023 en números de 0-255. Per exemple, si el comandament es va configurar a la meitat del recorregut, hauria de dir-se aproximadament 512. aquest nombre es canviaria a 126, que és la meitat de la força del LED. En aquest esbós final vaig anomenar els pins amb noms de variables per a la meva comoditat. Ara teniu un mesclador de colors complet per experimentar !!!

// noms de variables per als pins del potenciòmetre

int RedPot = A0; int greenPot = A1; int bluePot = A2 // noms de variables per als pins RGB 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); Serial, begin (9600); } void loop () {// llegir i desar valors dels potenciòmetres int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // converteix els valors de 0-1023 a 0-255 per al LED RGB redVal = map (redVal, 0, 1023, 0, 255); greenVal = mapa (greenVal, 0, 1023, 0, 255); blueVal = mapa (blueVal, 0, 1023, 0, 255); // escriviu aquests valors convertits a cada color del LED RGB analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // mostra els valors al monitor sèrie Serial.print ("vermell:"); Serial.print (redVal); Serial.print ("verd:"); Serial.print (greenVal); Serial.print ("blau:"); Serial.println (blueVal); }

Recomanat: