Inhoudsopgave:
Video: Verander LED-kleuren met behulp van een POT en ATTINY85 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
In dit project gebruiken we een potentiometer (POT) om de kleuren in een LED te veranderen met behulp van een ATTINY85.
Enkele definities -
Een potentiometer is een apparaat met een klein schroef-/draaimechanisme dat bij draaien verschillende elektrische weerstanden afgeeft. Je kunt aan de geannoteerde afbeelding hierboven zien dat de POT 3 pinnen heeft, namelijk +, - en output. De POT wordt gevoed door de + en - pinnen aan te sluiten op respectievelijk vcc en aarde op een voeding. Als de POT-schroef wordt gedraaid, verandert de uitgangsweerstand en zorgt ervoor dat de LED in intensiteit afneemt of toeneemt.. Met andere woorden, het is een variabele weerstand. Ze worden bijvoorbeeld gebruikt in dimmers voor thuisverlichting.
LED - Dit is een klein lampje dat gaat branden wanneer er elektrische stroom doorheen gaat. In dit geval gebruiken we een veelkleurige LED met 3 pinnen, een aarde (midden) en twee pinnen die respectievelijk groen en rood zijn wanneer ze worden geactiveerd.
ATTINY85 - dit is een kleine goedkope microchip die je kunt programmeren als een Arduino.
Overzicht - De uitgang van de POT is verbonden met de ATTINY85. Als de POT-schroef wordt gedraaid, wordt een verschilweerstand weergegeven als een getal tussen 0 en 255. De ATTINY kan dit meten en verschillende acties ondernemen, afhankelijk van de waarde van de POT-weerstand. In dit geval hebben we het als volgt geprogrammeerd om verbinding te maken met de LED.
Als het aantal groter is dan 170, schakelt u de LED naar GROEN.
Als het aantal kleiner is dan 170 maar groter dan 85, schakelt u de LED op ROOD.
als het aantal kleiner is dan 85, schakelt u LED GROEN EN ROOD in, wat ORANJE oplevert.
stuklijst
1 x 3-pins LED1 x ATTINY 85
1 x POT (B100K)
1 x breadboard en kabels
1 voeding.
Stap 1: Programmeren van de ATTINY85
Raadpleeg mijn vorige instructable voor het programmeren van de ATTINY85 -
De code wordt hieronder getoond. Enkele aandachtspunten zijn dat twee ATTINY-pinnen, PB3, fysieke pin 2, PB2, fysieke pin 7, in digitale modus zijn aangesloten op de LED om kleurverandering te bewerkstelligen. ATTINY pin PB4, fysieke pin 3, is in analoge modus verbonden met de POT, wat betekent dat het waarden tussen 0 en 254 kan lezen. Ik heb de code aangepast die ik op internet heb gevonden, dus ik erken dat werk. -
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 - ingang voor POT //pb3 led pin 1 //pb2 led pin 3 // ATTINY 85 frequentie ingesteld op intern 8 MHz /* deze functie initialiseert de ADC
ADC Prescaler Opmerkingen:
ADC Prescaler moet zo worden ingesteld dat de ADC-ingangsfrequentie tussen 50 - 200 kHz ligt.
Voor meer informatie, zie tabel 17.5 "ADC Prescaler Selections" in hoofdstuk 17.13.2 "ADCSRA – ADC Control and Status Register A" (pagina's 140 en 141 op de volledige ATtiny25/45/85 datasheet, Rev. 2586M–AVR–07/ 10)
Geldige prescaler-waarden voor verschillende kloksnelheden
Klok Beschikbare prescaler-waarden --------------------------------------- 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)
Stel in onderstaand voorbeeld prescaler in op 128 voor mcu die draait op 8MHz
(controleer de datasheet voor de juiste bitwaarden om de prescaler in te stellen) */
// 8-bits resolutie
// stel ADLAR in op 1 om het resultaat van de linkerverschuiving in te schakelen (alleen bits ADC9.. ADC2 zijn beschikbaar) // dan is alleen het lezen van ADCH voldoende voor 8-bits resultaten (256 waarden) DDRB |= (1 << PB3); //Pin is ingesteld als uitvoer. DDRB |= (1 << PB2); //Pin is ingesteld als uitvoer. ADMUX = (1 << ADLAR) | // linker shift resultaat (0 << REFS1) | // Sets ref. spanning naar VCC, bit 1 (0 << REFS0) | // Sets ref. spanning naar VCC, bit 0 (0 << MUX3) | // gebruik ADC2 voor invoer (PB4), MUX bit 3 (0 << MUX2) | // gebruik ADC2 voor invoer (PB4), MUX bit 2 (1 << MUX1) | // gebruik ADC2 voor invoer (PB4), MUX bit 1 (0 << MUX0); // gebruik ADC2 voor invoer (PB4), MUX bit 0
ADCSRA =
(1 << ADEN) | // ADC inschakelen (1 << ADPS2) | // stel prescaler in op 64, bit 2 (1 << ADPS1) | // stel prescaler in op 64, bit 1 (0 << ADPS0); // stel prescaler in op 64, bit 0}
int hoofd(void)
{ initADC();
terwijl(1)
{
ADCSRA |= (1 << ADSC); // start ADC-meting terwijl (ADCSRA & (1 << ADSC)); // wacht tot de conversie is voltooid
indien (ADCH > 170)
{ PORTB |= (1 << PB3); //Pin ingesteld op HOOG. PORTB |= (1 << PB2); //Pin ingesteld op HOOG. } else if (ADCH 85) { PORTB |= (1 << PB3); //Pin ingesteld op HOOG. PORTB &= ~(1 << PB2); //Pin ingesteld op LAAG
} anders {
PORTB |= (1 << PB2); //Pin ingesteld op HOOG. PORTB &= ~(1 << PB3); //Pin ingesteld op LAAG
}
}
retourneer 0;
}
Stap 2: Circuit
ATTINY pinnen
PB3, fysieke pin 2 - aangesloten LED pin 1
PB4, fysieke pin 3, is verbonden met de middelste pin POT
GND, fysieke pin 4, is verbonden met de negatieve rail - voeding
PB2, fysieke pin 7 - aangesloten LED pin 3
VCC, fysieke pin 8, is verbonden met de positieve rail - voeding
POT
pos en neg pin aangesloten op respectievelijke rails - voeding.
LED
middelste pin aangesloten op de negatieve rail - voeding
Ik heb geëxperimenteerd met een voeding van 3 en 3,3 volt en beide werkten.
Stap 3: Conclusie
Het vermogen van de ATTINY85 om te schakelen tussen analoge en digitale modus is zeer krachtig en kan in een aantal verschillende toepassingen worden gebruikt, b.v. het besturen van motoren met variabele snelheid en het maken van muzieknoten. Ik zal dit in toekomstige instructables onderzoeken. Ik hoop dat je dit nuttig vond.
Aanbevolen:
Een Halloween Scare Machine met behulp van een PIR, een 3D-geprinte pompoen en de Troll Arduino Compatible Audio Pranker/praktische Joke Board.: 5 stappen
Een Halloween Scare Machine met behulp van een PIR, een 3D-geprinte pompoen en het Troll Arduino-compatibele audio-pranker/praktische grapbord.: Het Troll-bord gemaakt door Patrick Thomas Mitchell van EngineeringShock Electronics, en niet zo lang geleden volledig gefinancierd op Kickstarter. Ik kreeg mijn beloning een paar weken te vroeg om te helpen bij het schrijven van enkele gebruiksvoorbeelden en het bouwen van een Arduino-bibliotheek in een po
Verander een gewone videoprojector in een model met korte projectieafstand voor ~ 40 $: 6 stappen (met afbeeldingen)
Verander een gewone videoprojector in een short-throw-model voor ~40$: als videokunstenaar voer ik videoprojecties graag rechtstreeks vanaf het podium uit. Ik waardeer deze aanpak omdat het gemakkelijker en sneller te installeren is dan videoprojectoren op een grill-top te hangen of minder gecompliceerd dan andere installaties. Goed gedaan
Voorlopig* SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter met behulp van een Raspberry Pi: 10 stappen
Voorlopig* SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter Een Raspberry Pi gebruiken: stapsgewijze handleiding voor het instellen van Raspbian en communiceren met een SPI-apparaat met behulp van de bcm2835 SPI-bibliotheek (NIET bit-banged!) Dit is nog steeds heel voorlopig… Ik moet betere foto's van de fysieke aansluiting toevoegen en een aantal lastige code doornemen
Hoe een omvormer met LCD-achtergrondverlichting te repareren Met behulp van een Fujiplus FP-988D. voor $0.: 9 stappen
Hoe een omvormer met LCD-achtergrondverlichting te repareren Met behulp van een Fujiplus FP-988D. voor $ 0.: In deze instructie zal ik je helpen bij het repareren van een dode lcd-backlight-omvormer met behulp van de onderdelen die je hebt. U kunt zien of u een dode achtergrondverlichting heeft door eerst andere mogelijkheden te elimineren. Controleer de monitor op meerdere computers. Zorg ervoor dat d
Maak een webverbonden robot (voor ongeveer $ 500) (met behulp van een Arduino en netbook): 6 stappen (met afbeeldingen)
Maak een webverbonden robot (voor ongeveer $ 500) (met behulp van een Arduino en netbook): deze Instructable laat u zien hoe u uw eigen webverbonden robot kunt bouwen (met behulp van een Arduino-microcontroller en Asus eee pc). Waarom zou u een web willen Verbonden robot? Om mee te spelen natuurlijk. Rij met je robot van de andere kant van de kamer of over de tel