Sommario:

Mixer colori con Arduino: 9 passaggi (con immagini)
Mixer colori con Arduino: 9 passaggi (con immagini)

Video: Mixer colori con Arduino: 9 passaggi (con immagini)

Video: Mixer colori con Arduino: 9 passaggi (con immagini)
Video: Tutorial Arduino ITA 9: utilizzo del LED RGB ed effetto fade dei colori 2024, Dicembre
Anonim
Image
Image

Di tliguori330Segui di più dell'autore:

Sfera di colore con Arduino
Sfera di colore con Arduino
Doodle Bot con processo di progettazione
Doodle Bot con processo di progettazione
Doodle Bot con processo di progettazione
Doodle Bot con processo di progettazione
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Informazioni su: Imparando sempre….. Maggiori informazioni su tliguori330 »

Un mixer di colori è un ottimo progetto per chiunque lavori e cresca con Arduino. Alla fine di questo tutorial sarai in grado di mescolare e abbinare quasi tutti i colori immaginabili ruotando 3 manopole. Il livello di abilità è abbastanza basso che anche un principiante completo può completarlo con successo, ma anche abbastanza interessante da essere divertente per un veterinario esperto. Il costo di questo progetto è quasi nullo e la maggior parte dei kit Arduino viene fornita con i materiali necessari. Al centro di questo codice ci sono alcune funzioni fondamentali di arduino che chiunque usi arduino vorrà capire. Approfondiremo le funzioni analogRead() e analogWrite() come un'altra normale funzione chiamata map(). Questi collegamenti ti portano alle pagine di riferimento di arduino per queste funzioni.

Passaggio 1: parti e componenti

Parti e componenti
Parti e componenti
Parti e componenti
Parti e componenti
Parti e componenti
Parti e componenti
Parti e componenti
Parti e componenti

Arduino Uno

Potenziometro (x3)

LED RGB

Resistenza da 220 ohm (x3)

Ponticelli (x12)

Tagliere di pane

Passaggio 2: pianifica i tuoi progressi

Pianifica i tuoi progressi
Pianifica i tuoi progressi

Può essere molto utile pianificare come completerai il tuo progetto. La codifica riguarda la progressione logica da un passaggio all'altro. Ho creato un diagramma di flusso che delinea come voglio che venga eseguito il mio schizzo. L'obiettivo generale è avere 3 manopole (potenziometri) che controllano ciascuno dei tre colori di un LED RGB. Per fare ciò dovremo creare uno schizzo che corrisponda al diagramma di flusso. vorremmo….

1) Leggere 3 diversi potenziometri e salvare i loro valori in variabili.

2) Convertiremo quei valori in modo che corrispondano alla gamma del LED RGB.

3) Quindi alla fine scriveremo quei valori convertiti in ciascuno dei colori dell'RGB.

Passaggio 3: come utilizzare i potenziometri

Come usare i potenziometri
Come usare i potenziometri
Come usare i potenziometri
Come usare i potenziometri

Uno dei componenti più basilari in un kit di elettronica, il potenziometro può essere utilizzato in molti progetti diversi. i potenziometri funzionano consentendo all'utente di modificare fisicamente la resistenza del circuito. L'esempio più simile di un potenziometro è un dimmer della luce. facendo scorrere o ruotando una manopola si modifica la lunghezza del circuito. un percorso più lungo comporta una maggiore resistenza. L'aumento della resistenza riduce inversamente la corrente e la luce si attenua. Questi possono essere di diverse forme e dimensioni, ma la maggior parte ha la stessa configurazione di base. Uno studente ha chiesto aiuto per riparare la sua chitarra e abbiamo scoperto che le manopole erano esattamente le stesse dei potenziometri. In generale eri le gambe esterne collegate a 5 volt e massa e la gamba centrale va a un pin analogico come A0

Passaggio 4: schema di cablaggio per potenziometro (3x)

Schema di cablaggio per potenziometro (3x)
Schema di cablaggio per potenziometro (3x)
Schema di cablaggio per potenziometro (3x)
Schema di cablaggio per potenziometro (3x)
Schema di cablaggio per potenziometro (3x)
Schema di cablaggio per potenziometro (3x)

La gamba più a sinistra sarà collegata a 5v e la gamba più a destra sarà collegata a GND. Puoi effettivamente invertire questi due passaggi e non danneggerà molto il progetto. Tutto ciò che cambierebbe è che ruotando la manopola completamente a sinistra si otterrà la massima luminosità anziché completamente. La gamba centrale sarà collegata a uno dei pin analogici dell'Arduino. Dato che avremo tre manopole, vorremo triplicare il lavoro che abbiamo appena fatto. Ogni manopola ha bisogno di 5v e GND in modo che possano essere condivisi utilizzando una breadboard. La striscia rossa sulla breadboard è collegata a 5 Volt e la striscia blu è collegata a massa. Ogni manopola ha bisogno del proprio pin analogico in modo che sia collegata a A0, A1, A2.

Passaggio 5: utilizzo di AnalogRead() e variabili

Con il tuo potenziometro impostato correttamente siamo pronti per leggere quei valori. Quando vogliamo farlo, usiamo la funzione analogRead(). La sintassi corretta è analogRead(pin#); quindi per leggere il nostro potenziometro centrale dovremmo analogRead(A1); Per poter lavorare con i numeri inviati dalla manopola ad Arduino, vorremmo salvare anche quei numeri in una variabile. La riga di codice eseguirà questo compito mentre leggiamo il potenziometro e salviamo il suo numero corrente nella variabile intera "val"

int val = analogRead(A0);

Passaggio 6: utilizzo del monitor seriale con 1 manopola

Image
Image

Attualmente siamo in grado di ottenere valori dalle manopole e memorizzarli in una variabile, ma sarebbe utile se potessimo vedere questi valori. Per fare questo abbiamo bisogno di utilizzare il monitor seriale integrato. Il codice seguente è il primo schizzo che eseguiremo effettivamente nell'IDE di Arduino che può essere scaricato sul loro sito. Nel void setup() attiveremo i pin analogici collegati a ciascuna gamba centrale come INPUT e attiveremo il monitor seriale utilizzando Serial.begin(9600); poi leggiamo solo una delle manopole e la memorizziamo in una variabile come prima. La modifica ora è che abbiamo aggiunto una riga che stampa quale numero è memorizzato nella variabile. Se compili ed esegui lo schizzo, puoi aprire il monitor seriale e vedere i numeri scorrere sullo schermo. Ogni volta che il codice si ripete, leggiamo e stampiamo un altro numero. Se giri la manopola collegata a A0 dovresti vedere valori compresi tra 0-1023. in seguito l'obiettivo sarà quello di leggere tutti e 3 i potnziometri che richiederebbero 2 letture analogiche in più e 2 variabili diverse da salvare e stampare.

void setup(){

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

Passaggio 7: utilizzo del LED RGB

Utilizzo del LED RGB
Utilizzo del LED RGB
Utilizzo del LED RGB
Utilizzo del LED RGB
Utilizzo del LED RGB
Utilizzo del LED RGB

Il LED RGB a 4 zampe è uno dei miei componenti preferiti per Arduino. Trovo affascinante il modo in cui riesce a creare infiniti colori da miscele di 3 colori base. La configurazione è simile a qualsiasi LED normale, ma qui abbiamo fondamentalmente un LED rosso, blu e verde combinati insieme. Le gambe corte saranno ciascuna controllate da uno dei pin PWM sull'arduino. La gamba più lunga sarà collegata a 5 volt oa massa, a seconda che si tratti di un LED ad anodo comune o a catodo comune. Dovrai provare entrambi i modi per risolvere il problema. Avremo già 5v e GND collegati alla breadboard, dovrebbe essere facile da cambiare. Il diagramma sopra mostra anche l'utilizzo di 3 resistori. In realtà salto spesso questo passaggio perché non l'ho avuto e il LED si spegne su di me.

Per creare i colori useremo la funzione analogWrite() per controllare quanto rosso, blu o verde aggiungere. Per utilizzare questa funzione devi dire con quale pin# parleremo e un numero compreso tra 0-255. 0 è completamente disattivato e 255 è la quantità massima di un colore. Colleghiamo la gamba rossa al pin 9, il verde al pin 10 e il blu al pin 11. Potrebbero essere necessari alcuni tentativi ed errori per capire quale gamba è di quale colore. Se volessi creare una tonalità viola, potrei fare molto rosso, niente verde e forse metà blu. Ti incoraggio ad armeggiare con questi numeri, è davvero eccitante. Alcuni esempi comuni sono nelle immagini sopra

void setup(){

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

Passaggio 8: utilizzo dei potenziometri per controllare il LED RGB (con un bug)

Utilizzo dei potenziometri per controllare il LED RGB (con un bug)
Utilizzo dei potenziometri per controllare il LED RGB (con un bug)
Utilizzo dei potenziometri per controllare il LED RGB (con un bug)
Utilizzo dei potenziometri per controllare il LED RGB (con un bug)
Utilizzo dei potenziometri per controllare il LED RGB (con un bug)
Utilizzo dei potenziometri per controllare il LED RGB (con un bug)

È ora di iniziare a fondere i nostri due codici insieme. Dovresti avere abbastanza spazio su una breadboard standard per contenere tutte e 3 le manopole e il LED RGB. L'idea è invece di digitare i valori per rosso, blu e verde, utilizzeremo i valori salvati da ciascun poteniometro per cambiare costantemente i colori. avremo bisogno di 3 variabili in questo caso. il redval, greenval, blueval sono tutte variabili diverse. Tieni presente che puoi nominare queste variabili come preferisci. se giri la manopola "verde" e la quantità rossa cambia, puoi cambiare i nomi in modo che corrispondano correttamente. ora puoi girare ogni manopola e controllare i colori!!

void setup(){

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

Passaggio 9: BONUS: funzione Map() e codice più pulito

Potresti notare che quando inizi a girare la manopola per un colore verso l'alto, crescerà e poi improvvisamente scenderà verso il basso. Questo schema di crescita e poi di spegnimento rapido si ripete 4 volte mentre giri la manopola completamente verso l'alto. Se ricordi che abbiamo detto che i potenziometri possono leggere valori compresi tra 0 e 1023. La funzione analogWrite() accetta solo valori compresi tra 0 e 255. una volta che il potenziometro va oltre 255, in pratica ricomincia da 0. C'è una bella funzione per aiutare con il bug chiamato map(). puoi convertire un intervallo di numeri in un altro intervallo di numeri in un solo passaggio. convertiremo i numeri da 0-1023 in numeri da 0-255. Ad esempio, se la manopola fosse impostata a metà, dovrebbe leggere circa 512. quel numero verrebbe modificato in 126 che è metà della forza per il LED. In questo schizzo finale ho chiamato i pin con nomi di variabili per mia comodità. Ora hai un mixer colore completo con cui sperimentare!!!

// nomi delle variabili per i pin del potenziometro

int redPot = A0; int greenPot = A1; int bluePot = A2 // nomi delle variabili per i pin RGB int redLED = 9; int LEDverde = 10; int LED blu = 11; void setup(){ pinMode(redPot, INPUT); pinMode(greenPOT, INPUT); pinMode(bluePot, INPUT); pinMode(redLED, OUTPUT); pinMode(LEDverde, OUTPUT); pinMode(LEDblu, OUTPUT); Seriale, inizio (9600); } void loop(){ // legge e salva i valori dai potenziometri int redVal = analogRead(redPot); int greenVal = analogRead(greenPot); int blueVal - analogRead(bluePot); //convertire i valori da 0-1023 a 0-255 per il LED RGB redVal = map(redVal, 0, 1023, 0, 255); greenVal = map(greenVal, 0, 1023, 0, 255); blueVal = map(blueVal, 0, 1023, 0, 255); // scrive questi valori convertiti in ogni colore del LED RGB analogWrite(redLED, redVal); anaogWrite(greenLED, greenVal); analogWrite(blueLED, blueVal); //mostra i valori sul monitor seriale Serial.print("red:"); Serial.print(redVal); Serial.print("verde:"); Serial.print(greenVal); Serial.print("blu:"); Serial.println(blueVal); }

Consigliato: