Sommario:

Cambia i colori dei LED usando un POT e ATTINY85: 3 passaggi
Cambia i colori dei LED usando un POT e ATTINY85: 3 passaggi

Video: Cambia i colori dei LED usando un POT e ATTINY85: 3 passaggi

Video: Cambia i colori dei LED usando un POT e ATTINY85: 3 passaggi
Video: LDmicro 3: PIC16F628A & Arduino Nano (Microcontroller PLC Ladder Logic Programming with LDmicro) 2024, Dicembre
Anonim
Cambia i colori dei LED usando un POT e ATTINY85
Cambia i colori dei LED usando un POT e ATTINY85
Cambia i colori dei LED usando un POT e ATTINY85
Cambia i colori dei LED usando un POT e ATTINY85
Cambia i colori dei LED usando un POT e ATTINY85
Cambia i colori dei LED usando un POT e ATTINY85

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

Circuito
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

Conclusione
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: