Taula de continguts:

Canvieu els colors del LED mitjançant POT i ATTINY85: 3 passos
Canvieu els colors del LED mitjançant POT i ATTINY85: 3 passos

Vídeo: Canvieu els colors del LED mitjançant POT i ATTINY85: 3 passos

Vídeo: Canvieu els colors del LED mitjançant POT i ATTINY85: 3 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Desembre
Anonim
Canvieu els colors del LED mitjançant POT i ATTINY85
Canvieu els colors del LED mitjançant POT i ATTINY85
Canvieu els colors del LED mitjançant POT i ATTINY85
Canvieu els colors del LED mitjançant POT i ATTINY85
Canvieu els colors del LED mitjançant POT i ATTINY85
Canvieu els colors del LED mitjançant POT i ATTINY85

En aquest projecte fem servir un potenciòmetre (POT) per canviar els colors d’un LED mitjançant un ATTINY85.

Algunes definicions:

Un potenciòmetre és un dispositiu amb un petit mecanisme de cargol / gir que quan es gira produeix diferents resistències elèctriques. Podeu veure a la imatge anotada que el POT té 3 pins, és a dir, +, - i sortida. El POT s’alimenta connectant els pins + i - a vcc i a terra respectivament en una font d’alimentació. A mesura que es gira el cargol POT, la resistència de sortida canvia i fa que el LED disminueixi o augmenti en intensitat.. En altres paraules, és una resistència variable. S'utilitzen en coses com els reguladors de llum domèstics.

LED: és una petita llum que s’il·lumina quan hi passa corrent elèctric. En aquest cas, utilitzarem un LED multicolor que té 3 pins, un terra (mig) i dos pins que es mostren verds i vermells respectivament quan s’activa.

ATTINY85: es tracta d’un petit xip de baix cost que podeu programar com un Arduino.

Visió general: la sortida del POT està connectada a l'ATTINY85. A mesura que es gira el cargol POT, es produeix una diferència de resistència com a número entre 0 i 255. L'ATTINY pot mesurar-ho i fer diferents accions en funció del valor de la resistència POT. En aquest cas, l'hem programat per connectar-se al LED de la següent manera.

Si el nombre és superior a 170, canvieu el LED a VERD.

Si el nombre és inferior a 170 però superior a 85, canvieu el LED a VERMELL.

si el nombre és inferior a 85, activeu el LED VERD I VERMELL que resulti en TARONJA.

BOM

1 x LED de 3 pins 1 x ATTINY 85

1 x POT (B100K)

1 x tauler de connexió i cables

1 font d'alimentació.

Pas 1: programació de l'ATTINY85

Pel que fa a la programació de l’ATTINY85, consulteu la meva instrucció prèvia:

El codi es mostra a continuació. Alguns punts a destacar són que dos pins ATTINY, PB3, pin físic 2, PB2, pin físic 7 estan connectats, en mode digital, al LED per efectuar el canvi de color. El pin PB4 ATTINY, el pin físic 3, està connectat al POT en mode analògic, el que significa que pot llegir valors entre 0 i 254. He personalitzat el codi que he trobat a Internet, de manera que reconec que funciona. -

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 - entrada per POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 set de freqüència a 8 MHz / * aquesta funció inicialitza l'ADC

Notes sobre precalificador ADC:

Cal configurar ADC Prescaler de manera que la freqüència d’entrada ADC estigui entre 50 i 200 kHz.

Per obtenir més informació, vegeu la taula 17.5 "Seleccions ADC Prescaler" al capítol 17.13.2 "ADCSRA - Registre de control i estat ADC A" (pàgines 140 i 141 a la fitxa completa de dades ATtiny25 / 45/85, Rev. 2586M – AVR – 07 / 10)

Valors de prescaler vàlids per a diverses velocitats de rellotge

Rellotge Valors disponibles del precalificador --------------------------------------- 1 MHz 8 (125kHz), 16 (62,5 kHz) 4 MHz 32 (125 kHz), 64 (62,5 kHz) 8 MHz 64 (125 kHz), 128 (62,5 kHz) 16 MHz 128 (125 kHz)

A continuació, es defineix el prescaler a 128 per a mcu que funciona a 8 MHz

(consulteu el full de dades per obtenir els valors de bits adequats per configurar el precalificador) * /

// Resolució de 8 bits

// configureu ADLAR a 1 per habilitar el resultat de desplaçament a l'esquerra (només hi ha disponibles els bits ADC9.. ADC2) //, aleshores, només la lectura d'ADCH és suficient per obtenir resultats de 8 bits (valors 256) DDRB | = (1 << PB3); // El pin es defineix com a sortida. DDRB | = (1 << PB2); // El pin es defineix com a sortida. ADMUX = (1 << ADLAR) | // resultat de desplaçament a l'esquerra (0 << REFS1) | // Conjunts ref. tensió a VCC, bit 1 (0 << REFS0) | // Conjunts ref. tensió a VCC, bit 0 (0 << MUX3) | // utilitzeu ADC2 per a l'entrada (PB4), bit MUX 3 (0 << MUX2) | // utilitzeu ADC2 per a l'entrada (PB4), bit MUX 2 (1 << MUX1) | // utilitzeu ADC2 per a l'entrada (PB4), bit MUX 1 (0 << MUX0); // utilitzeu ADC2 per a l'entrada (PB4), bit MUX 0

ADCSRA =

(1 << ADEN) | // Activa ADC (1 << ADPS2) | // estableix el precaler a 64, bit 2 (1 << ADPS1) | // estableix el precaler a 64, bit 1 (0 << ADPS0); // estableix el precaler a 64, bit 0}

int main (buit)

{initADC ();

mentre que (1)

{

ADCSRA | = (1 << ADSC); // iniciar el mesurament ADC mentre (ADCSRA & (1 << ADSC)); // espereu fins que es completi la conversió

si (ADCH> 170)

{PORTB | = (1 << PB3); // Pin fixat a HIGH. PORTB | = (1 << PB2); // Pin fixat a HIGH. } else if (ADCH 85) {PORTB | = (1 << PB3); // Pin fixat a HIGH. PORTB & = ~ (1 << PB2); // Pin fixat a BAIX

} més {

PORTB | = (1 << PB2); // Pin fixat a HIGH. PORTB & = ~ (1 << PB3); // Pin fixat a BAIX

}

}

retorn 0;

}

Pas 2: Circuit

Circuit
Circuit

PINS ATTINY

PB3, pin físic 2: pin LED 1 connectat

El PB4, pin físic 3, està connectat al pin POT del mig

GND, pin físic 4, està connectat a la font d'alimentació del carril negatiu

PB2, pin físic 7: pin LED 3 connectat

VCC, el pin físic 8, està connectat a la font d'alimentació del carril positiu

POT

pos i neg pin connectats als respectius rails: font d'alimentació.

LED

pin central connectat al rail negatiu: font d'alimentació

Vaig experimentar amb una font d'alimentació de 3 i 3,3 volts i tots dos funcionaven.

Pas 3: Conclusió

Conclusió
Conclusió

La capacitat de l'ATTINY85 per moure's entre el mode analògic i el digital és molt potent i es pot utilitzar en diverses aplicacions diferents, per exemple. conduint motors de velocitat variable i creant notes musicals. Exploraré això en futures instruccions. Espero que us hagi estat útil.

Recomanat: