2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
Î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
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
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:
Cum să vă schimbați SSD-ul M.2 pentru Acer Aspire E5-576: 4 pași
Cum să vă schimbați SSD-ul M.2 pentru Acer Aspire E5-576: Materiale: Laptop Nou M.2 SSDA șurubelniță mică Philips
Cum să schimbați site-urile web pentru a arăta orice doriți: 3 pași
Cum să schimbați site-urile web pentru a arăta orice doriți. acest lucru nu schimbă site-ul în altă parte decât browserul dvs. și, dacă reîncărcați pagina web, aceasta va reveni la
Cum să schimbați cu ușurință numele modulului Bluetooth cu Arduino: 4 pași
Cum să schimbați cu ușurință numele modulului Bluetooth cu Arduino: în acest proiect veți învăța cum să denumiți modulul Bluetooth și să detectați eșecurile în funcționarea Bluetooth-ului dvs. Pentru acest proiect, veți utiliza următoarele componente prezentate mai jos
Culorile Rainbow-Tinkercad: 4 pași
Culorile curcubeului-Tinkercad: Bună ziua! Sunt Kalani Tops și astăzi voi prezenta un proiect al meu, pe care îl poți face și tu, dacă ai ceea ce trebuie. Am făcut acest proiect deosebit de ușor, deoarece sunt lent și alte persoane care ar putea citi acest lucru ar putea fi la fel ca mine
Arduino RGB Color Picker - Alegeți culorile din obiectele din viața reală: 7 pași (cu imagini)
Arduino RGB Color Picker - Alegeți culorile din obiectele din viața reală: alegeți cu ușurință culorile din obiectele fizice cu acest selector de culori RGB bazat pe Arduino, permițându-vă să recreați culorile pe care le vedeți în obiectele din viața reală de pe computer sau de pe telefonul mobil. Pur și simplu apăsați un buton pentru a scana culoarea obiectului folosind un TCS347 ieftin