Sisällysluettelo:
Video: Vaihda LED -värejä POTilla ja ATTINY85: 3 askeleella
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tässä projektissa käytämme potentiometriä (POT) LED -valojen värien muuttamiseen ATTINY85: n avulla.
Jotkut määritelmät -
Potentiometri on laite, jossa on pieni ruuvi / kääntömekanismi, joka kääntäessään tuottaa erilaisia sähköresistansseja. Yllä olevasta huomautetusta kuvasta näet, että POT -laitteessa on 3 nastaa, nimittäin +, - ja lähtö. POT saa virtaa kytkemällä + ja - nastat virtalähteeseen ja maadoitettuina virtalähteeseen. Kun POT -ruuvia kierretään, lähtövastus muuttuu ja LED -valo laskee tai kasvaa.. Toisin sanoen se on muuttuva vastus. Niitä käytetään esimerkiksi kodin valon himmentimissä.
LED - Tämä on pieni valo, joka syttyy, kun sähkövirta kulkee sen läpi. Tässä tapauksessa käytämme moniväristä LED -valoa, jossa on 3 nastaa, yksi maadoitus (keskellä) ja kaksi nastaa, jotka näyttävät vihreää ja punaista vastaavasti.
ATTINY85-tämä on pieni edullinen mikrosiru, jonka voit ohjelmoida kuten Arduino.
Yleiskatsaus - POT -laitteen lähtö on kytketty ATTINY85 -laitteeseen. Kun POT -ruuvia kierretään, eroresistanssi annetaan numerona välillä 0 ja 255. ATTINY voi mitata tämän ja tehdä erilaisia toimenpiteitä POT -vastuksen arvon mukaan. Tässä tapauksessa olemme ohjelmoineet sen muodostamaan yhteyden LED -valoon seuraavasti.
Jos luku on suurempi kuin 170, vaihda LED VIHREÄKSI.
Jos luku on alle 170 mutta suurempi kuin 85, vaihda LED PUNAISEKSI.
jos numero on alle 85, kytke päälle vihreä ja punainen LED, jolloin tuloksena on ORANSSI.
BOM
1 x 3 -nastainen LED 1 x ATTINY 85
1 x POT (B100K)
1 x leipälauta ja kaapelit
1 virtalähde.
Vaihe 1: ATTINY85: n ohjelmointi
ATTINY85: n ohjelmoinnin osalta tutustu edelliseen ohjeeseeni-https://www.instructables.com/id/15-Dollar-Attiny8…
Koodi näkyy alla. Huomattakoon, että kaksi ATTINY -nastaa, PB3, fyysinen nasta 2, PB2, fyysinen nasta 7 on kytketty digitaalisessa tilassa LED -valoon värinmuutoksen aikaansaamiseksi. ATTINY -nasta PB4, fyysinen nasta 3, on kytketty POT -laitteeseen analogisessa tilassa, mikä tarkoittaa, että se voi lukea arvot välillä 0 ja 254. Muokasin Internetistä löytämäni koodin, joten tunnustan tämän työn. -
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 - tulo POT: lle // pb3 led -nasta 1 // pb2 led -nasta 3 // ATTINY 85 -taajuus asetettu sisäiselle 8 MHz/* tämä toiminto alustaa ADC: n
ADC Prescaler Huomautuksia:
ADC Prescaler on asetettava siten, että ADC: n tulotaajuus on 50-200 kHz.
Jos haluat lisätietoja, katso taulukko 17.5 "ADC Prescaler Selections" luvussa 17.13.2 "ADCSRA - ADC Control and Status Register A" (sivut 140 ja 141 täydellisessä ATtiny25/45/85 -tietolomakkeessa, Rev. 2586M – AVR -07/ 10)
Kelvolliset esisäätöarvot eri kellonopeuksille
Kello Käytettävissä olevat esivalinta-arvot --------------------------------------- 1 MHz 8 (125 kHz), 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)
Alla olevassa esimerkissä aseta esiasetin 128: een 8 MHz: n taajuudella
(tarkista esitteestä oikeat bittiarvot esiasetuksen asettamiseksi) */
// 8-bittinen resoluutio
// aseta ADLAR-arvoksi 1, jotta vasen siirto saadaan käyttöön (vain bitit ADC9.. ADC2 ovat käytettävissä) // sitten vain ADCH-lukeminen riittää 8-bittisille tuloksille (256 arvoa) DDRB | = (1 << PB3); // Nasta on asetettu lähtöön. DDRB | = (1 << PB2); // Nasta on asetettu lähtöön. ADMUX = (1 << ADLAR) | // vasen siirto tulos (0 << REFS1) | // Asettaa viite jännite VCC: hen, bitti 1 (0 << REFS0) | // Asettaa viite jännite VCC: hen, bitti 0 (0 << MUX3) | // käytä ADC2 -tuloa (PB4), MUX -bittiä 3 (0 << MUX2) | // käytä ADC2 -tuloa (PB4), MUX -bittiä 2 (1 << MUX1) | // käytä ADC2 -tuloa (PB4), MUX -bittiä 1 (0 << MUX0); // käytä tuloon ADC2 (PB4), MUX -bitti 0
ADCSRA =
(1 << ADEN) | // Ota ADC käyttöön (1 << ADPS2) | // aseta esiasetin arvoon 64, bitti 2 (1 << ADPS1) | // aseta esiasetin arvoon 64, bitti 1 (0 << ADPS0); // aseta esiasetin arvoon 64, bitti 0}
int main (mitätön)
{initADC ();
samalla (1)
{
ADCSRA | = (1 << ADSC); // aloittaa ADC -mittauksen, kun (ADCSRA & (1 << ADSC)); // odota, kunnes muunnos on valmis
jos (ADCH> 170)
{PORTB | = (1 << PB3); // Nasta asetettu HIGH. PORTB | = (1 << PB2); // Nasta asetettu HIGH. } muu jos (ADCH 85) {PORTB | = (1 << PB3); // Nasta asetettu HIGH. PORTB & = ~ (1 << PB2); // Nasta asetettu LOW
} muuta {
PORTB | = (1 << PB2); // Nasta asetettu HIGH. PORTB & = ~ (1 << PB3); // Nasta asetettu LOW
}
}
palauta 0;
}
Vaihe 2: Piiri
ATTINY nastat
PB3, fyysinen nasta 2 - kytketty LED -nasta 1
PB4, fyysinen nasta 3, on kytketty keskitappiin POT
GND, fyysinen nasta 4, on kytketty negatiiviseen kiskoon - virtalähteeseen
PB2, fyysinen nasta 7 - kytketty LED -nasta 3
VCC, fyysinen nasta 8, on kytketty positiiviseen kiskoon - virtalähteeseen
POT
pos ja neg -nasta yhdistetty kiskoihin - virtalähde.
LED
keskitappi kytketty negatiiviseen kiskoon - virtalähde
Kokeilin 3 ja 3,3 voltin virtalähdettä ja molemmat toimivat.
Vaihe 3: Johtopäätös
ATTINY85: n kyky siirtyä analogisen ja digitaalisen tilan välillä on erittäin tehokas ja sitä voidaan käyttää useissa eri sovelluksissa, esim. vaihtelevan nopeuden moottoreiden käyttäminen ja nuottien luominen. Tutkin tätä tulevissa ohjeissa. Toivottavasti olet kokenut tämän hyödylliseksi.
Suositeltava:
Tee digitaalinen logiikka -analysaattori alle $ 1: 5 askeleella
Tee digitaalinen logiikka -analysaattori alle 1 dollarilla: Loogisen tason anturi on laite, joka tunnistaa, onko komponentin lähtö 1 tai 0 (positiivinen tai negatiivinen). Tiedätkö ne mukavat tasoanturit LCD -näytöillä, jotka maksavat noin 25 dollaria? Tämä on naurettavan halvempi ja tekee saman (Se i
Tee LED -valo DCDC: llä ja 18650: 5 askeleella
Tee LED-valo DCDC: n ja 18650: n avulla: Tee LED-valo sarjaan kytketyllä 3 LEDillä ja tehosta DC-DC-moduulia, jonka virtalähde on 18650.https: //neo-sahara.com/wp/3LEDDCDC
AVR -mikrokontrolleri. Vaihda LED -valoja painonapilla. Painikkeiden poistaminen käytöstä: 4 vaihetta
AVR -mikrokontrolleri. Vaihda LED -valoja painonapilla. Painikkeiden poistaminen käytöstä: Tässä osiossa opimme tekemään ohjelmointikoodin ATMega328PU: lle kolmen LED -valon tilan vaihtamiseksi painikekytkimen tulon mukaan. Olemme myös tutkineet ratkaisuja "Switch Bounce" -ongelmaan. Kuten yleensä, me
Vaihda oma LED -lamppusi tavalliseen taskulamppuun: 4 vaihetta
Tee oma LED -lampun vaihto tavalliseen taskulamppuun: LED -taskulamppu on nykyään melko yleistä, mutta jos satut käyttämään 100 -vuotiseen tekniikkaan perustuvaa hehkulamppua, tässä on tilaisuutesi päivittää se 8000 vuotta kestävällä LED -valolla! (jos hehkulampulla on ihmisen elinikä)
Helppo valmistaa, halpa ja yksinkertainen LED-vilkkuva piiri CMOS 74C14: 5 askeleella
Helppo valmistaa, halpa ja yksinkertainen LED-vilkkuva piiri CMOS 74C14: llä: Joskus tarvitset yksinkertaisesti joitakin vilkkuvia LED-valoja joulukoristeisiin, blinky-taideteoksiin tai vain pitääksesi hauskaa vilkkuva vilkkuva vilkkuu. Näytän sinulle, kuinka tehdä halpa ja yksinkertainen piiri, jossa on enintään 6 vilkkuvaa LEDiä. Huomautus: Tämä on ensimmäinen instuctable ja