Home > Technologie > ATtiny85 Mini RGB-Stimmungs-Licht!

ATtiny85 Mini RGB-Stimmungs-Licht!

Advertisement

ATtiny85 Mini RGB-Stimmungs-Licht!

ATtiny85 Mini RGB-Stimmungs-Licht!

ATtiny85 Mini RGB-Stimmungs-Licht!

ATtiny85 Mini RGB-Stimmungs-Licht!

ATtiny85 Mini RGB-Stimmungs-Licht!

Ich habe gesehen, RGB-Stimmung leuchtet mit Arduino, PIC und größere AVR-Chips, aber nie ein mit der ATtiny85. Deshalb habe ich beschlossen, einen zu machen.

Diese Stimmung Licht ist super einfach zu machen und alle Teile können online für ca. $ 5,00 insgesamt gekauft werden (ohne die Arduino verwendet, um den Chip zu programmieren).

Dies ist ein Wettbewerb Eintrag in der LED-Wettbewerb mit Elemental LED und der Hurricane Lasers Wettbewerb, so dass, wenn Sie es mögen, vote!

EDIT: Ich habe diese instructable so geändert, dass es eine NIGHT LED Mood Lamp ist. Es leuchtet nur dann auf, wenn das Umgebungslicht im Raum sehr niedrig ist (nachts bei ausgeschaltetem Licht). Sie benötigen einen LDR und einen 10K Ohm Widerstand, um diesen Teil hinzuzufügen. Wenn Sie diese Funktion nicht benötigen, entfernen Sie einfach das LDR / 10K-Widerstandsteil und schließen Sie den Analogeingang 3 des ATtiny (Pin 2) direkt an Masse an.

Schritt 1: Wie funktioniert es?

Die ATtiny85 hat nur 2 PWM-Pins, so dass Sie offensichtlich nicht alle 3 Farben der RGB-LED ein- und ausblenden können reibungslos, nicht wahr? Falsch.

Die Art, wie ich bekam, war dies mit Software PWM. Dies bedeutet, dass ich in und aus allen 3 Farben mit einem der Pins auf der ATtiny verblassen kann.

Wie Software PWM funktioniert ist, indem Sie den Pin HIGH und dann LOW mit verschiedenen Raten, so dass die LED sieht aus wie es Dimmen. Dies nennt man Persistence of Vision oder POV (für mehr über POV, siehe mein instructable hier). Die LED blinkt so schnell, dass das menschliche Auge nicht erkennen kann, dass es überhaupt blinkt, und es sieht stattdessen, dass die LED zu dimmen scheint.

Schritt 2: Stückliste

ATtiny85 Mini RGB-Stimmungs-Licht!

Du wirst brauchen:

1x gemeinsame Kathode RGB LED
3x 220 Ohm Widerstände
1x ATtiny85 Mikrocontroller

Für das Lichtsensor:

1x LDR (lichtabhängiger Widerstand)
1x 10K Ohm Widerstand

Und um die ATtiny zu programmieren:

1x Arduino Uno oder gleichwertig
1x A bis B USB-Kabel für Arduino

Schritt 3: Programmieren Sie den Chip

ATtiny85 Mini RGB-Stimmungs-Licht!

Gehen Sie hier und es wird Ihnen zeigen, wie die ATtiny85 an den Arduino anschließen und programmieren. Sobald Sie bereit sind, den Code auf den ATtiny85 hochzuladen, fügen Sie ihn in die Arduino IDE ein und klicken Sie auf Upload.

// ATtiny85 RGB-Farbe verblassend Stimmungs-Licht JETZT MIT HELLEN SENSING-FÄHIGKEITEN !!!

Const int redPin = 2;
Const int grnPin = 1;
Const int bluPin = 0;
Const int Sensor = 3;

Void setup ()
{
PinMode (redPin, OUTPUT);
PinMode (grnPin, OUTPUT);
PinMode (bluPin, OUTPUT);
PinMode (Sensor, INPUT);
aufrechtzuerhalten.

Void Schleife () {
Wenn (analogRead (Sensor) <= 200)
{
Redtoyellow ();
Yellowtogreen ();
Greentocyan ();
Cyantoblue ();
Bluetomagenta ();
Magentatoriert ();
aufrechtzuerhalten.
Sonst wenn (analogRead (Sensor)> = 201)
{
DigitalWrite (redPin, LOW);
DigitalWrite (grnPin, LOW);
DigitalWrite (bluPin, LOW);
aufrechtzuerhalten.
aufrechtzuerhalten.

Void redtoyellow ()
{
DigitalWrite (redPin, HIGH);
DigitalWrite (bluPin, LOW);

// fade up grün
Für (Byte i = 1; i <100; i ++) {
Byte ein = i;
Byte aus = 100-on;
Für (Byte a = 0; a <100; a ++) {
DigitalWrite (grnPin, HIGH);
DelayMicroseconds (ein);
DigitalWrite (grnPin, LOW);
DelayMicroseconds (aus);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Void yellowtogreen ()
{
DigitalWrite (grnPin, HIGH);
DigitalWrite (bluPin, LOW);

// fade down rot
Für (Byte i = 1; i <100; i ++) {
Byte an = 100-i;
Byte aus = i;
Für (Byte a = 0; a <100; a ++) {
DigitalWrite (redPin, HIGH);
DelayMicroseconds (ein);
DigitalWrite (redPin, LOW);
DelayMicroseconds (aus);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Void greentocyan ()
{
DigitalWrite (grnPin, HIGH);
DigitalWrite (redPin, LOW);

// fade up blau
Für (Byte i = 1; i <100; i ++) {
Byte ein = i;
Byte aus = 100-on;
Für (Byte a = 0; a <100; a ++) {
DigitalWrite (bluPin, HIGH);
DelayMicroseconds (ein);
DigitalWrite (bluPin, LOW);
DelayMicroseconds (aus);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Leere Cyantoblue ()
{
DigitalWrite (bluPin, HIGH);
DigitalWrite (redPin, LOW);

// Fade down grün
Für (Byte i = 1; i <100; i ++) {
Byte an = 100-i;
Byte aus = i;
Für (Byte a = 0; a <100; a ++) {
DigitalWrite (grnPin, HIGH);
DelayMicroseconds (ein);
DigitalWrite (grnPin, LOW);
DelayMicroseconds (aus);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Void bluetomagenta ()
{
DigitalWrite (bluPin, HIGH);
DigitalWrite (grnPin, LOW);

// Fade up rot
Für (Byte i = 1, i <100; i ++) {
Byte ein = i;
Byte aus = 100-on;
Für (Byte a = 0; a <100; a ++) {
DigitalWrite (redPin, HIGH);
DelayMicroseconds (ein);
DigitalWrite (redPin, LOW);
DelayMicroseconds (aus);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Void magentatoriert ()
{
DigitalWrite (redPin, HIGH);
DigitalWrite (grnPin, LOW);

// Blau verblassen
Für (Byte i = 1; i <100; i ++) {
Byte an = 100-i;
Byte aus = i;
Für (Byte a = 0; a <100; a ++) {
DigitalWrite (bluPin, HIGH);
DelayMicroseconds (ein);
DigitalWrite (bluPin, LOW);
DelayMicroseconds (aus);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Schritt 4: Verbinden

ATtiny85 Mini RGB-Stimmungs-Licht!

Verbinden Sie die ATtiny mit den LEDs und 3V wie im Schema gezeigt, und das wars!

Wenn der Stromkreis nicht auf Licht ansprechen und konstant an- und ausgeschaltet werden soll, entfernen Sie einfach den LDR- und den 10K-Widerstand und schließen Sie Analogeingang 3 (Pin 2) direkt an Masse an.

Schritt 5: Sie sind fertig!

ATtiny85 Mini RGB-Stimmungs-Licht!

Gut gemacht! Wenn Sie 3 Volt anwenden, sollte es beginnen, durch die verschiedenen Farben zu verblassen.

Related Reading