Cuprins:

Schimbați culorile LED-urilor folosind un POT și ATTINY85: 3 pași
Schimbați culorile LED-urilor folosind un POT și ATTINY85: 3 pași

Video: Schimbați culorile LED-urilor folosind un POT și ATTINY85: 3 pași

Video: Schimbați culorile LED-urilor folosind un POT și ATTINY85: 3 pași
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, Iulie
Anonim
Schimbați culorile LED-urilor folosind un POT și ATTINY85
Schimbați culorile LED-urilor folosind un POT și ATTINY85
Schimbați culorile LED-urilor folosind un POT și ATTINY85
Schimbați culorile LED-urilor folosind un POT și ATTINY85
Schimbați culorile LED-urilor folosind un POT și ATTINY85
Schimbați culorile LED-urilor folosind un POT și ATTINY85

În acest proiect folosim un potențiometru (POT) pentru a schimba culorile într-un LED folosind un ATTINY85.

Unele definiții -

Un potențiometru este un dispozitiv cu un mic șurub / mecanism de rotire care, atunci când este rotit, produce diferite rezistențe electrice. Puteți vedea din imaginea adnotată de mai sus că POT are 3 pini, și anume +, - și ieșire. POT este alimentat prin conectarea pinilor + și - la vcc și respectiv la masă pe o sursă de alimentare. Pe măsură ce șurubul POT este rotit, rezistența de ieșire se schimbă și face ca LED-ul să scadă sau să crească în intensitate.. Cu alte cuvinte, este un rezistor variabil. Acestea sunt utilizate în lucruri cum ar fi variatoarele de lumină de acasă.

LED - Aceasta este o lumină mică care se aprinde atunci când curentul electric trece prin ea. În acest caz, vom folosi un LED multicolor care are 3 pini, un sol (mijloc) și doi pini care arată verde și, respectiv, roșu atunci când este declanșat.

ATTINY85 - acesta este un mic cip mic cu cost redus pe care îl puteți programa ca un Arduino.

Prezentare generală - Ieșirea din POT este conectată la ATTINY85. Pe măsură ce șurubul POT este rotit, se obține o rezistență diferențială ca număr între 0 și 255. ATTINY poate măsura acest lucru și poate efectua acțiuni diferite în funcție de valoarea rezistenței POT. În acest caz, l-am programat să se conecteze la LED-ul după cum urmează.

Dacă numărul este mai mare de 170 comutați LED-ul pe VERDE.

Dacă numărul este mai mic de 170 dar mai mare de 85 comutați LED-ul pe ROȘU.

dacă numărul este mai mic de 85, porniți LED-ul VERDE ȘI ROȘU, ceea ce duce la ORANGE.

BOM

1 x LED cu 3 pini 1 x ATTINY 85

1 x POT (B100K)

1 x panou și cabluri

1 sursa de alimentare.

Pasul 1: Programarea ATTINY85

În ceea ce privește programarea ATTINY85, vă rugăm să consultați instrucțiunile mele anterioare -

Codul este prezentat mai jos. Unele puncte de reținut sunt că doi pini ATTINY, PB3, pinul fizic 2, PB2, pinul fizic 7 sunt conectați, în modul digital, la LED pentru a efectua schimbarea culorii. Pinul ATB PB4, pinul fizic 3, este conectat la POT în modul analogic, ceea ce înseamnă că poate citi valori între 0 și 254. Am personalizat codul pe care l-am găsit pe internet, așa că recunosc că funcționează. -

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 - intrare pentru POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 setat frecvența la 8 MHz / * această funcție inițializează ADC

Note ADC Prescaler:

ADC Prescaler trebuie setat astfel încât frecvența de intrare ADC să fie între 50 - 200kHz.

Pentru mai multe informații, consultați tabelul 17.5 „Selecții de precalare ADC” din capitolul 17.13.2 „ADCSRA - Control ADC și stare de înregistrare A” (paginile 140 și 141 din foaia de date completă ATtiny25 / 45/85, Rev. 2586M – AVR – 07 / 10)

Valori valide de prescaler pentru diferite viteze de ceas

Ceas Valori de prescaler disponibile --------------------------------------- 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)

Exemplul de mai jos setează prescalerul la 128 pentru mcu care rulează la 8 MHz

(verificați foaia tehnică pentru valorile de biți corespunzătoare pentru a seta prescalerul) * /

// rezoluție de 8 biți

// setați ADLAR la 1 pentru a activa rezultatul de deplasare la stânga (doar biții ADC9.. ADC2 sunt disponibili) // apoi, doar citirea ADCH este suficientă pentru rezultatele de 8 biți (256 valori) DDRB | = (1 << PB3); // Pinul este setat ca ieșire. DDRB | = (1 << PB2); // Pinul este setat ca ieșire. ADMUX = (1 << ADLAR) | // rezultatul schimbării la stânga (0 << REFS1) | // Seturi ref. tensiune la VCC, bitul 1 (0 << REFS0) | // Seturi ref. tensiune la VCC, bit 0 (0 << MUX3) | // utilizați ADC2 pentru intrare (PB4), bit MUX 3 (0 << MUX2) | // utilizați ADC2 pentru intrare (PB4), bit MUX 2 (1 << MUX1) | // utilizați ADC2 pentru intrare (PB4), bit MUX 1 (0 << MUX0); // utilizați ADC2 pentru intrare (PB4), bit MUX 0

ADCSRA =

(1 << ADEN) | // Activați ADC (1 << ADPS2) | // setați prescalerul la 64, bitul 2 (1 << ADPS1) | // setați prescalerul la 64, bitul 1 (0 << ADPS0); // setați prescaler la 64, bit 0}

int main (nul)

{initADC ();

în timp ce (1)

{

ADCSRA | = (1 << ADSC); // pornește măsurarea ADC în timp ce (ADCSRA & (1 << ADSC)); // așteptați până la finalizarea conversiei

dacă (ADCH> 170)

{PORTB | = (1 << PB3); // Pinul a fost setat la HIGH. PORTB | = (1 << PB2); // Pinul a fost setat la HIGH. } else if (ADCH 85) {PORTB | = (1 << PB3); // Pinul a fost setat la HIGH. PORTB & = ~ (1 << PB2); // Pinul setat la LOW

} altceva {

PORTB | = (1 << PB2); // Pinul a fost setat la HIGH. PORTB & = ~ (1 << PB3); // Pinul setat la LOW

}

}

retur 0;

}

Pasul 2: Circuit

Circuit
Circuit

Pini ATTINY

PB3, pinul fizic 2 - pinul LED 1 conectat

PB4, pinul fizic 3, este conectat la pinul POT din mijloc

GND, pinul fizic 4, este conectat la șina negativă - sursa de alimentare

PB2, pinul fizic 7 - pinul LED 3 conectat

VCC, pinul fizic 8, este conectat la șina pozitivă - sursa de alimentare

OALĂ

pin și neg conectat la șinele respective - sursă de alimentare.

LED

pinul mediu conectat la șina negativă - sursa de alimentare

Am experimentat folosind o sursă de alimentare de 3 și 3,3 volți și amândoi au funcționat.

Pasul 3: Concluzie

Concluzie
Concluzie

Capacitatea ATTINY85 de a se deplasa între modul analogic și modul digital este foarte puternică și poate fi utilizată în mai multe aplicații diferite, de ex. conducerea motoarelor cu turație variabilă și crearea de note muzicale. Voi explora acest lucru în instrucțiuni viitoare. Sper că ați găsit acest lucru util.

Recomandat: