Innholdsfortegnelse:

Endre LED -farger ved hjelp av en POT og ATTINY85: 3 trinn
Endre LED -farger ved hjelp av en POT og ATTINY85: 3 trinn

Video: Endre LED -farger ved hjelp av en POT og ATTINY85: 3 trinn

Video: Endre LED -farger ved hjelp av en POT og ATTINY85: 3 trinn
Video: Шпатлевка стен и потолка. З способа. Какой самый быстрый? 2024, Juli
Anonim
Endre LED -farger ved hjelp av en POT og ATTINY85
Endre LED -farger ved hjelp av en POT og ATTINY85
Endre LED -farger ved hjelp av en POT og ATTINY85
Endre LED -farger ved hjelp av en POT og ATTINY85
Endre LED -farger ved hjelp av en POT og ATTINY85
Endre LED -farger ved hjelp av en POT og ATTINY85

I dette prosjektet bruker vi et potensiometer (POT) for å endre fargene i en LED ved hjelp av en ATTINY85.

Noen definisjoner -

Et potensiometer er en enhet med en liten skrue / svingemekanisme som når den vendes gir forskjellige elektriske motstander. Du kan se fra det kommenterte bildet ovenfor at POTEN har 3 pinner, nemlig +, - og utgang. POTEN drives av å koble + og - pinnene til henholdsvis vcc og jord på en strømforsyning. Når POT -skruen dreies, endres utgangsmotstanden og får LED -en til å senke eller øke i intensitet.. Med andre ord er det en variabel motstand. De brukes til ting som lysdimmere hjemme.

LED - Dette er et lite lys som lyser når elektrisk strøm passerer gjennom den. I dette tilfellet vil vi bruke en flerfarget LED som har 3 pinner, en bakke (midten) og to pinner som viser henholdsvis grønt og rødt når det utløses.

ATTINY85-dette er en liten rimelig mikrobrikke som du kan programmere som en Arduino.

Oversikt - Utgangen fra POT er koblet til ATTINY85. Når POT -skruen dreies, sendes en differensmotstand ut som et tall mellom 0 og 255. ATTINY kan måle dette og utføre forskjellige handlinger avhengig av verdien på POT -motstanden. I dette tilfellet har vi programmert den til å koble til LED som følger.

Hvis tallet er større enn 170, bytt lysdioden til GRØNN.

Hvis tallet er mindre enn 170 men større enn 85, bytter du LED til RØD.

hvis tallet er mindre enn 85, slå på LED GRØNN OG RØD som resulterer i ORANGE.

BOM

1 x 3 -pins LED1 x ATTINY 85

1 x POT (B100K)

1 x brødbrett og kabler

1 strømforsyning.

Trinn 1: Programmering av ATTINY85

Når det gjelder programmering av ATTINY85, vennligst se min tidligere instruerbare-https://www.instructables.com/id/15-Dollar-Attiny8…

Koden er vist nedenfor. Noen punkter å merke seg er at to ATTINY -pinner, PB3, fysisk pin 2, PB2, fysisk pin 7, er koblet til LED -en i digital modus for å endre fargeendringer. ATTINY pin PB4, fysisk pin 3, er koblet til POT i analog modus, noe som betyr at den kan lese verdier mellom 0 og 254. Jeg tilpasset kode som jeg fant på internett, så jeg erkjenner at arbeidet fungerer. -

ugyldig 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 - inngang for POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 frekvens satt til intern 8 MHz/* denne funksjonen initialiserer ADC

ADC Prescaler Notater:

ADC Prescaler må stilles inn slik at ADC -inngangsfrekvensen er mellom 50 - 200 kHz.

For mer informasjon, se tabell 17.5 "ADC Prescaler Selections" i kapittel 17.13.2 "ADCSRA - ADC Control and Status Register A" (side 140 og 141 på det komplette ATtiny25/45/85 databladet, Rev. 2586M – AVR – 07/ 10)

Gyldige forkalkningsverdier for forskjellige klokkehastigheter

Klokke Tilgjengelige verdier for forkalkning --------------------------------------- 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)

Nedenfor eksempel setter prescaler til 128 for mcu som kjører på 8MHz

(sjekk databladet for de riktige bitverdiene for å stille inn forkalkeren) */

// 8-biters oppløsning

// sett ADLAR til 1 for å aktivere venstre-skift-resultatet (bare bitene ADC9.. ADC2 er tilgjengelige) // da er bare lesing av ADCH tilstrekkelig for 8-bits resultater (256 verdier) DDRB | = (1 << PB3); // Pin er angitt som en utgang. DDRB | = (1 << PB2); // Pin er angitt som en utgang. ADMUX = (1 << ADLAR) | // venstre skiftresultat (0 << REFS1) | // Angir ref. spenning til VCC, bit 1 (0 << REFS0) | // Angir ref. spenning til VCC, bit 0 (0 << MUX3) | // bruk ADC2 for inngang (PB4), MUX bit 3 (0 << MUX2) | // bruk ADC2 for inngang (PB4), MUX bit 2 (1 << MUX1) | // bruk ADC2 for inngang (PB4), MUX bit 1 (0 << MUX0); // bruk ADC2 for inngang (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Aktiver ADC (1 << ADPS2) | // sett prescaler til 64, bit 2 (1 << ADPS1) | // sett prescaler til 64, bit 1 (0 << ADPS0); // sett prescaler til 64, bit 0}

int main (ugyldig)

{initADC ();

mens (1)

{

ADCSRA | = (1 << ADSC); // start ADC -måling mens (ADCSRA & (1 << ADSC)); // vent til konverteringen er fullført

hvis (ADCH> 170)

{PORTB | = (1 << PB3); // Pin satt til HIGH. PORTB | = (1 << PB2); // Pin satt til HIGH. } annet hvis (ADCH 85) {PORTB | = (1 << PB3); // Pin satt til HIGH. PORTB & = ~ (1 << PB2); // Pin satt til LOW

} annet {

PORTB | = (1 << PB2); // Pin satt til HIGH. PORTB & = ~ (1 << PB3); // Pin satt til LOW

}

}

retur 0;

}

Trinn 2: Krets

Krets
Krets

ATTINY pins

PB3, fysisk pin 2 - tilkoblet LED -pin 1

PB4, fysisk pin 3, er koblet til den midtre pin POT

GND, fysisk pin 4, er koblet til den negative skinnen - strømforsyning

PB2, fysisk pin 7 - tilkoblet LED -pin 3

VCC, fysisk pin 8, er koblet til den positive skinnen - strømforsyning

GRYTE

pos og neg pin koblet til respektive skinner - strømforsyning.

LED

midtstiftet koblet til den negative skinnen - strømforsyning

Jeg eksperimenterte med å bruke en 3 og 3,3 volt strømforsyning, og begge fungerte.

Trinn 3: Konklusjon

Konklusjon
Konklusjon

ATTINY85s evne til å bevege seg mellom analog og digital modus er veldig kraftig og kan brukes i en rekke forskjellige applikasjoner, f.eks. kjøre motorer med variabel hastighet og lage musikknoter. Jeg vil utforske dette i fremtidige instrukser. Jeg håper du har funnet dette nyttig.

Anbefalt: