Inhaltsverzeichnis:

Ändern Sie die LED-Farben mit einem POT und ATTINY85 - Gunook
Ändern Sie die LED-Farben mit einem POT und ATTINY85 - Gunook

Video: Ändern Sie die LED-Farben mit einem POT und ATTINY85 - Gunook

Video: Ändern Sie die LED-Farben mit einem POT und ATTINY85 - Gunook
Video: Signale und Lichtzeichen steuern mit dem ATtiny und Arduino Uno - Märklin Modellbahn H0 2024, November
Anonim
Ändern Sie die LED-Farben mit einem POT und ATTINY85
Ändern Sie die LED-Farben mit einem POT und ATTINY85
Ändern Sie die LED-Farben mit einem POT und ATTINY85
Ändern Sie die LED-Farben mit einem POT und ATTINY85
Ändern Sie die LED-Farben mit einem POT und ATTINY85
Ändern Sie die LED-Farben mit einem POT und ATTINY85

In diesem Projekt verwenden wir ein Potentiometer (POT), um die Farben in einer LED mit einem ATTINY85 zu ändern.

Einige Definitionen -

Ein Potentiometer ist ein Gerät mit einem kleinen Schrauben-/Drehmechanismus, der beim Drehen unterschiedliche elektrische Widerstände ausgibt. Sie können aus dem kommentierten Bild oben sehen, dass der POT 3 Pins hat, nämlich +, - und Ausgang. Der POT wird mit Strom versorgt, indem die + und - Pins mit vcc bzw. Masse an einer Stromversorgung verbunden werden. Wenn die POT-Schraube gedreht wird, ändert sich der Ausgangswiderstand und bewirkt, dass die LED-Intensität abnimmt oder ansteigt.. Mit anderen Worten, es ist ein variabler Widerstand. Sie werden beispielsweise in Heimlichtdimmern verwendet.

LED - Dies ist ein kleines Licht, das aufleuchtet, wenn elektrischer Strom durch sie fließt. In diesem Fall verwenden wir eine mehrfarbige LED mit 3 Pins, einer Masse (Mitte) und zwei Pins, die beim Auslösen grün bzw. rot leuchten.

ATTINY85 - Dies ist ein kleiner kostengünstiger Mikrochip, den Sie wie ein Arduino programmieren können.

Übersicht - Der Ausgang des POT ist mit dem ATTINY85 verbunden. Beim Drehen der POT-Schraube wird ein Differenzwiderstand als Zahl zwischen 0 und 255 ausgegeben. Der ATTINY kann dies messen und je nach Wert des POT-Widerstands unterschiedliche Maßnahmen ergreifen. In diesem Fall haben wir es so programmiert, dass es wie folgt mit der LED verbunden wird.

Wenn die Zahl größer als 170 ist, schalten Sie die LED auf GRÜN.

Wenn die Zahl kleiner als 170, aber größer als 85 ist, schalten Sie die LED auf ROT.

wenn die Zahl kleiner als 85 ist, schalten Sie die LED GRÜN UND ROT ein, was ORANGE ergibt.

Stückliste

1 x 3-polige LED1 x ATTINY 85

1 x POT (B100K)

1 x Steckbrett und Kabel

1 Netzteil.

Schritt 1: Programmierung des ATTINY85

In Bezug auf die Programmierung des ATTINY85 beziehen Sie sich bitte auf meine vorherige instructable -

Der Code wird unten angezeigt. Einige zu beachtende Punkte sind, dass zwei ATTINY-Pins, PB3, physischer Pin 2, PB2, physischer Pin 7 im digitalen Modus mit der LED verbunden sind, um einen Farbwechsel zu bewirken. ATTINY Pin PB4, physikalischer Pin 3, ist im analogen Modus mit dem POT verbunden, was bedeutet, dass er Werte zwischen 0 und 254 lesen kann. Ich habe Code angepasst, den ich im Internet gefunden habe, damit ich diese Arbeit anerkenne. -

void initADC(){ // *** // *** Pinbelegung 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 - Eingang für POT //pb3 LED Pin 1 //pb2 LED Pin 3 // ATTINY 85 Frequenz auf interne 8 MHz eingestellt /* diese Funktion initialisiert den ADC

Hinweise zum ADC-Prescaler:

Der ADC Prescaler muss so eingestellt werden, dass die ADC-Eingangsfrequenz zwischen 50 - 200 kHz liegt.

Weitere Informationen finden Sie in Tabelle 17.5 „ADC Prescaler Selections“in Kapitel 17.13.2 „ADCSRA – ADC Control and Status Register A“(Seiten 140 und 141 im vollständigen ATtiny25/45/85 Datenblatt, Rev. 2586M–AVR–07/ 10)

Gültige Prescaler-Werte für verschiedene Taktraten

Takt Verfügbare Prescaler-Werte -------------------------------------- 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)

Beispiel unten: Prescaler auf 128 für mcu mit 8MHz einstellen

(Überprüfen Sie das Datenblatt für die richtigen Bitwerte, um den Vorteiler einzustellen) */

// 8-Bit-Auflösung

// setze ADLAR auf 1, um das Left-Shift-Ergebnis zu aktivieren (nur Bits ADC9.. ADC2 sind verfügbar) // dann reicht nur das Lesen von ADCH für 8-Bit-Ergebnisse (256 Werte) DDRB |= (1 << PB3); //Pin wird als Ausgang gesetzt. DDRB |= (1 << PB2); //Pin wird als Ausgang gesetzt. ADMUX = (1 << ADLAR) | // Ergebnis der Linksverschiebung (0 << REFS1) | // Setzt Ref.-Nr. Spannung an VCC, Bit 1 (0 << REFS0) | // Setzt Ref.-Nr. Spannung an VCC, Bit 0 (0 << MUX3) | // ADC2 für Eingang verwenden (PB4), MUX Bit 3 (0 << MUX2) | // ADC2 für Eingang (PB4) verwenden, MUX Bit 2 (1 << MUX1) | // ADC2 für Eingang (PB4) verwenden, MUX-Bit 1 (0 << MUX0); // ADC2 für Eingang (PB4) verwenden, MUX-Bit 0

ADCSRA =

(1 << ADEN) | // ADC aktivieren (1 << ADPS2) | // Prescaler auf 64 setzen, Bit 2 (1 << ADPS1) | // Prescaler auf 64 setzen, Bit 1 (0 << ADPS0); // Prescaler auf 64 setzen, Bit 0 }

int main(void)

{ initADC();

während(1)

{

ADCSRA |= (1 << ADSC); // ADC-Messung starten, während (ADCSRA & (1 << ADSC)); // warten bis die Konvertierung abgeschlossen ist

wenn (ADCH > 170)

{ PORTB |= (1 << PB3); // Pin auf HIGH gesetzt. PORTB |= (1 << PB2); // Pin auf HIGH gesetzt. aufrechtzuerhalten. Sonst if (ADCH 85) { PORTB |= (1 << PB3); // Pin auf HIGH gesetzt. PORTB &= ~(1 << PB2); // Pin auf LOW gesetzt

} anders {

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

}

}

0 zurückgeben;

}

Schritt 2: Schaltung

Schaltkreis
Schaltkreis

ATTINY-Pins

PB3, physikalischer Pin 2 - verbundener LED-Pin 1

PB4, physikalischer Pin 3, ist mit dem mittleren Pin POT. verbunden

GND, physikalischer Pin 4, ist mit der negativen Schiene verbunden - Stromversorgung

PB2, physikalischer Pin 7 - verbundener LED-Pin 3

VCC, physikalischer Pin 8, ist mit der positiven Schiene verbunden - Stromversorgung

TOPF

pos und neg Pin mit entsprechenden Schienen verbunden - Stromversorgung.

LED

mittlerer Pin mit der negativen Schiene verbunden - Stromversorgung

Ich experimentierte mit einem 3 und 3,3 Volt Netzteil und beide funktionierten.

Schritt 3: Fazit

Abschluss
Abschluss

Die Fähigkeit des ATTINY85, zwischen analogem und digitalem Modus zu wechseln, ist sehr leistungsstark und kann in einer Reihe von verschiedenen Anwendungen verwendet werden, z. Antreiben von Motoren mit variabler Geschwindigkeit und Erstellen von Musiknoten. Ich werde dies in zukünftigen instructables erforschen. Ich hoffe, Sie fanden dies nützlich.

Empfohlen: