Forum: PC-Programmierung LED color cycling


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von phyton newbi (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hello currently this is my phyton function for cycling through a led 
stripe with all colors:
def cycleLights(self):
                t = threading.currentThread()
                head  = 0               # Index of first 'on' pixel
                tail  = -10             # Index of last 'off' pixel
                color = 0xFF0000        # 'On' color (starts red)

                while getattr(t, "do_run", True):
                        self.strip.setPixelColor(head, color) # Turn on 'head' pixel
                        self.strip.setPixelColor(tail, 0)     # Turn off 'tail'
                        self.strip.show()                     # Refresh strip
                        time.sleep(1.0 / 80)             # Pause 20 milliseconds (~50 fps)

                        head += 1                        # Advance head position
                        if(head >= self.numpixels):           # Off end of strip?
                                head    = 0              # Reset to start
                                color >>= 1              # Red->green->blue->black
                                if(color == 0): color = 0xFF0000 # If black, reset to red

                        tail += 1                        # Advance tail position
                        if(tail >= self.numpixels): tail = 0  # Off end? Reset



But i didn't get all colors how can I achiev to circly through the whole 
spectrum???

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
That is much simpler to calculate in HSV color space, since you only 
change the hue value.

So select a color in hsv by changing hue, then translate back to RGB in 
order to control the LEDs.

von guest (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thin about that line:
color >>= 1
and what color values it produce.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.