Sommario:
Video: Cambia i colori dei LED usando un POT e ATTINY85: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
In questo progetto utilizziamo un potenziometro (POT) per cambiare i colori in un LED utilizzando un ATTINY85.
Alcune definizioni -
Un potenziometro è un dispositivo con una piccola vite/meccanismo di rotazione che quando viene ruotato emette diverse resistenze elettriche. Puoi vedere dall'immagine annotata sopra che il POT ha 3 pin, ovvero +, - e output. Il POT viene alimentato collegando i pin + e - rispettivamente a vcc e ground su un alimentatore. Quando si gira la vite POT, la resistenza di uscita cambia e fa diminuire o aumentare l'intensità del LED.. In altre parole, è un resistore variabile. Sono usati in cose come i dimmer per la luce domestica.
LED - Questa è una piccola luce che si illumina quando la corrente elettrica passa attraverso di essa. In questo caso, utilizzeremo un LED multicolore che ha 3 pin, una massa (al centro) e due pin che mostrano rispettivamente il verde e il rosso quando vengono attivati.
ATTINY85 - questo è un piccolo micro-chip a basso costo che puoi programmare come un Arduino.
Panoramica - L'uscita dal POT è collegata all'ATTINY85. Quando si gira la vite POT, viene emessa una resistenza differenziale come un numero compreso tra 0 e 255. L'ATTINY può misurarla e intraprendere azioni diverse a seconda del valore della resistenza POT. In questo caso, lo abbiamo programmato per collegarsi al LED come segue.
Se il numero è maggiore di 170 commutare il LED in VERDE.
Se il numero è inferiore a 170 ma superiore a 85 commutare il LED in ROSSO.
se il numero è inferiore a 85 accendere il LED VERDE E ROSSO che risulta in ARANCIO.
BOM
1 x LED a 3 pin1 x ATTINY 85
1 x PENTOLA (B100K)
1 x breadboard e cavi
1 alimentatore.
Passaggio 1: Programmazione di ATTINY85
In termini di programmazione di ATTINY85, fare riferimento al mio precedente tutorial -
Il codice è mostrato di seguito. Alcuni punti da notare sono che due pin ATTINY, PB3, pin fisico 2, PB2, pin fisico 7 sono collegati, in modalità digitale, al LED per effettuare il cambio di colore. ATTINY pin PB4, pin fisico 3, è collegato al POT in modalità analogica, il che significa che può leggere valori compresi tra 0 e 254. Ho personalizzato il codice che ho trovato su Internet quindi confermo che funziona. -
void initADC(){ // *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ============= ================================================== ============================== // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // * ** (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/ DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0) // *** //pb4 - ingresso per POT //pb3 led pin 1 //pb2 led pin 3 // Frequenza ATTINY 85 impostata a 8 MHz interna /* questa funzione inizializza l'ADC
Note del prescaler ADC:
Il prescaler ADC deve essere impostato in modo che la frequenza di ingresso dell'ADC sia compresa tra 50 e 200 kHz.
Per ulteriori informazioni, vedere la tabella 17.5 "Selezioni del prescaler ADC" nel capitolo 17.13.2 "ADCSRA – ADC Control and Status Register A" (pagine 140 e 141 sulla scheda tecnica completa ATtiny25/45/85, Rev. 2586M–AVR–07/ 10)
Valori di prescaler validi per varie velocità di clock
Clock Valori prescaler disponibili --------------------------------------- 1 MHz 8 (125kHz), 16 (62,5kHz) 4 MHz 32 (125kHz), 64 (62,5kHz) 8 MHz 64 (125kHz), 128 (62,5kHz) 16 MHz 128 (125kHz)
L'esempio seguente imposta il prescaler su 128 per mcu in esecuzione a 8 MHz
(controllare il foglio dati per i valori di bit corretti per impostare il prescaler) */
// Risoluzione a 8 bit
// imposta ADLAR a 1 per abilitare il risultato dello spostamento a sinistra (sono disponibili solo i bit ADC9.. ADC2) // quindi, solo la lettura di ADCH è sufficiente per i risultati a 8 bit (256 valori) DDRB |= (1 << PB3); //Pin è impostato come uscita. DDRB |= (1 << PB2); //Pin è impostato come uscita. ADMUX = (1 << ADLAR) | // risultato spostamento a sinistra (0 << REFS1) | // Imposta rif. tensione a VCC, bit 1 (0 << REFS0) | // Imposta rif. tensione a VCC, bit 0 (0 << MUX3) | // usa ADC2 per l'ingresso (PB4), MUX bit 3 (0 << MUX2) | // usa ADC2 per l'ingresso (PB4), MUX bit 2 (1 << MUX1) | // usa ADC2 per ingresso (PB4), MUX bit 1 (0 << MUX0); // usa ADC2 per l'ingresso (PB4), MUX bit 0
ADCSRA =
(1 << ADEN) | // Abilita ADC (1 << ADPS2) | // imposta il prescaler a 64, bit 2 (1 << ADPS1) | // imposta il prescaler a 64, bit 1 (0 << ADPS0); // imposta il prescaler a 64, bit 0 }
int main (vuoto)
{ initADC();
mentre(1)
{
ADCSRA |= (1 << ADSC); // avvia la misurazione ADC while (ADCSRA & (1 << ADSC)); // attendi il completamento della conversione
se (ADCH > 170)
{ PORTB |= (1 << PB3); //Pin impostato su HIGH. PORTAB |= (1 << PB2); //Pin impostato su HIGH. } else if (ADCH 85) { PORTB |= (1 << PB3); //Pin impostato su HIGH. PORTAB &= ~(1 << PB2); //Pin impostato su LOW
} altro {
PORTAB |= (1 << PB2); //Pin impostato su HIGH. PORTAB &= ~(1 << PB3); //Pin impostato su LOW
}
}
restituisce 0;
}
Passaggio 2: circuito
spille ATTINY
PB3, pin fisico 2 - LED connesso pin 1
PB4, pin fisico 3, è collegato al pin centrale POT
GND, pin fisico 4, è collegato al binario negativo - alimentazione
PB2, pin fisico 7 - LED connesso pin 3
VCC, pin fisico 8, è collegato alla guida positiva - alimentazione
POT
pin pos e neg collegati ai rispettivi binari - alimentazione.
GUIDATO
pin centrale collegato al binario negativo - alimentazione
Ho sperimentato l'utilizzo di un alimentatore da 3 e 3,3 volt ed entrambi hanno funzionato.
Passaggio 3: conclusione
La capacità dell'ATTINY85 di passare dalla modalità analogica a quella digitale è molto potente e può essere utilizzata in una serie di applicazioni diverse, ad es. pilotare motori a velocità variabile e creare note musicali. Lo esplorerò nelle future istruzioni. Spero che tu l'abbia trovato utile.
Consigliato:
Octarine: un gioco di abbinamento dei colori con LED RGB WS2812: 6 passaggi
Octarine: un gioco di abbinamento di colori con LED RGB WS2812: Octarine, il colore della magia. Era vivo e splendente di un vibrante ed era il pigmento indiscusso dell'immaginazione, perché ovunque apparisse era segno che la semplice materia era serva dei poteri della mente magica. Erano incantatori
Miscelazione dei colori LED RGB con Arduino in Tinkercad: 5 passaggi (con immagini)
Miscelazione dei colori dei LED RGB con Arduino in Tinkercad: impariamo come controllare i LED multicolori utilizzando le uscite analogiche di Arduino. Collegheremo un LED RGB ad Arduino Uno e comporremo un semplice programma per cambiarne il colore. Puoi seguire virtualmente usando i circuiti di Tinkercad. Puoi persino visualizzare questo
Come realizzare un circuito cambia colori per strisce LED: 6 passaggi
Come realizzare un circuito cambia colori per strisce LED: Ciao amico, oggi realizzerò un circuito per cambia colori per strisce LED. Cominciamo
Utilizzo dei LED RGB per creare sequenze di colori: 12 passaggi
Utilizzo di LED RGB per creare sequenze di colori: questo Instructables mostrerà come utilizzare i LED RGB per creare sequenze di colori utilizzando Arduino Uno e un codice. I 3 LED RGB cambieranno colore nel tempo mentre gli altri 2 LED RGB rimarranno dello stesso colore
Fai scorrere un LED RGB attraverso lo spettro dei colori usando un Raspberry Pi 2 e Scratch: 11 passaggi
Scorri un LED RGB attraverso lo spettro dei colori utilizzando un Raspberry Pi 2 e Scratch: note di aggiornamento giovedì 25 febbraio 2016: ho migliorato il programma Scratch e ridisegnato il mio istruibile. Ciao ragazzi, con questo progetto ho voluto usare Scratch per far scorrere un LED RGB attraverso lo spettro dei colori. Ci sono un sacco di progetti che fanno questo con t