Author Topic: Led Pixel WS1812 mit einem Attiny84 ansteuern  (Read 19548 times)

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Led Pixel WS1812 mit einem Attiny84 ansteuern
« on: April 27, 2014, 11:14:28 PM »
Hallo Zusammen,

gemäss diesem Beispiel wollte ich die LED Pixel mit dem Attiny84 statt wie im Beispiel beschrieben mit dem Attiny85 ansteuern. http://www.instructables.com/id/Use-a-1-ATTiny-to-drive-addressable-RGB-LEDs/?ALLSTEPS

Leider bringe ich es nicht zum laufen, den Attiny84 habe ich extern mit einem 16MHz Quarz in Betrieb. Beim Attiny85 benutzen Sie im Beispiel den BP4. Beim Attiny84 habe ich mir den BP2 ausgesucht.

Gemäss Spezifikationen sollte das Signal mit 800KHz an die Led Pixel gesendet werden.

Mit dem DSO kann ich das Signal auch sehen, nur wenn ich es anschaue bin ich bei 5us und nicht bei 0.35us wie gemäss Spezifikationen nötig sind.

Jetzt frage ich mich läuft mein Attiny nicht richtig oder ist die Library nicht dafür gemacht oder verwende ich den falschen Pin?

Hat jemand einen Tipp?

Danke und Gruss Reto

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #1 on: April 28, 2014, 09:58:33 AM »
Hallo Zusammen,

mittlerweile habe ich herausgefunden, dass mein Attiny84 nicht mit den 16Mhz läuft sondern mit 1Mhz weil
wenn ich ein Signal mit 1ms mache, dann hat das in Wirklichkeit 16ms. Hat jemand eine Idee ob der Fehler eher in
der Hardware ( Quarz, Kond.) liegt oder eher an der Programmierung vom Attiny?

Danke und Gruss
Reto

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #2 on: April 28, 2014, 04:04:52 PM »
@Reto

mit welcher Betriebsspannung betreibst du deinen ATtiny84?

Gruss
Thomas

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #3 on: April 28, 2014, 04:41:51 PM »
Hallo Reto,

Ich habe kurz eine Testschaltung mit ATtiny84 aufgebaut.

-ATtiny84
-Tiny Core (ATtiny84 @8MH (internal oscillator, BOD disabled)
-Neopixel 3 LEDs
-Library Neopixel Adafruit (https://github.com/adafruit/Adafruit_NeoPixel/archive/master.zip
-Betriebsspannung 5V

Ich habe Beispiel Strandtest hochgeladen und es funktioniert einwandfrei.

Hast du diese Variante auch ausprobiert?

Gruss
Thomas

boxtec_admin

  • Administrator
  • Newbie
  • *****
  • Posts: 37
  • Karma: +0/-0
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #4 on: April 28, 2014, 05:15:29 PM »
@Reto: Du musst sicherstellen, dass in der IDE das Board mit der gewünschten Frequenz UND externem Oszillator gewählt ist. Soweit ich weiss, sind die zeitbezogenen Funktionen alle auf 8MHz berechnet, d.h. sämtliche delay() etc. Funktionen arbeiten nur ohne Anpassung sauber mit 8MHz. (Einfach mal eine LED anhängen und einen Blink Sketch mit 1s delay hochladen, dann siehst Du sofort obs mit dem gewählten Board/Chip passt).

Grüsse - Christoph


dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #5 on: April 28, 2014, 05:46:25 PM »
@ Hallo Thomas,

ja genau das versuche schon seit Tagen, Spannung habe ich 5V. Hast du ein WS2812B? Welchen Pin nutzt Du für das Signal?
Was hast Du für eine Zeile eingegeben:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

@ Hallo Christoph,

ja danke das mit Delay(1) habe ich gemacht und hat eben nicht gepasst. Jetzt muss ich nochmals prüfen.

Danke und Gruss
Reto

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #6 on: April 28, 2014, 07:31:47 PM »
@Reto

Quote
ja genau das versuche schon seit Tagen, Spannung habe ich 5V
Ich habs in 5 Min. geschafft  ;)

Quote
Hast du ein WS2812B? Welchen Pin nutzt Du für das Signal?
Ja, ich habe einen WS2818B Streifen mit 3 LED. Ich benutze D0 vom ATTin84, das ist an Pin 2.

Meine Codezeilen sieht so aus:
Code: [Select]
#define PIN 0

Adafruit_NeoPixel strip = Adafruit_NeoPixel(3, PIN, NEO_GRB + NEO_KHZ800);

Ich hoffe mit diesen Angaben schaffst du die Inbetriebnahme deines LED-Streifens.
Wenn es nicht funktioniert empfehle ich dir die Schaltung nochmals auf dem Steckbrett aufzubauen. VCC an Pin1, GND an Pin 14 und Signal an Pin 2

Gruss
Thomas
« Last Edit: April 28, 2014, 07:38:32 PM by arduinopraxis »

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #7 on: April 29, 2014, 09:15:43 AM »
Hallo Thomas,

ja den Rekord von 5 Min werde ich nicht mehr schaffen  :D

Danke für die Info's, ich versuche dann wieder.

Evtl. könntest Du das Signal mal noch mit einem DSO anschauen und prüfen welche Signallänge Du hast. Ob es 5us sind oder eher bei 0.35us

Danke und Gruss
Reto

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #8 on: April 29, 2014, 08:51:02 PM »
Quote
Evtl. könntest Du das Signal mal noch mit einem DSO anschauen und prüfen welche Signallänge Du hast. Ob es 5us sind oder eher bei 0.35us
Die Signale liegen bei 0.35us.

Gruss
Thomas

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #9 on: April 29, 2014, 08:54:04 PM »
Quote
@Reto: Du musst sicherstellen, dass in der IDE das Board mit der gewünschten Frequenz UND externem Oszillator gewählt ist. Soweit ich weiss, sind die zeitbezogenen Funktionen alle auf 8MHz berechnet, d.h. sämtliche delay() etc. Funktionen arbeiten nur ohne Anpassung sauber mit 8MHz. (Einfach mal eine LED anhängen und einen Blink Sketch mit 1s delay hochladen, dann siehst Du sofort obs mit dem gewählten Board/Chip passt).

Hast Du mal den Punkt "Bootloader uploaden" angewählt? Beim Sketch hochladen werden die Fuses nicht gesetzt, das wird nur beim Bootloader gemacht. Einen Bootloader für die Tinies gibt's ja eigentlich nicht, beim Anwählen dieses Punkts wird eigentlich nur der korrekte Setup eingestellt. Also beim Board Deinen ATtiny mit 16MHz auswählen und dann Bootloader uploaden (bei mir im Englischen heisst das "Burn Bootloader") wählen, nach kurzer Zeit sollte das erledigt sein. Danach würde ich den Testsketch nochmals hochladen und schauen, ob nun der Takt stimmt.

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #10 on: April 29, 2014, 09:02:04 PM »
Quote
Hast Du mal den Punkt "Bootloader uploaden" angewählt? Beim Sketch hochladen werden die Fuses nicht gesetzt, das wird nur beim Bootloader gemacht. Einen Bootloader für die Tinies gibt's ja eigentlich nicht, beim Anwählen dieses Punkts wird eigentlich nur der korrekte Setup eingestellt. Also beim Board Deinen ATtiny mit 16MHz auswählen und dann Bootloader uploaden (bei mir im Englischen heisst das "Burn Bootloader") wählen, nach kurzer Zeit sollte das erledigt sein. Danach würde ich den Testsketch nochmals hochladen und schauen, ob nun der Takt stimmt.
Davon ging ich aus dass Reto das gemacht hat. Aber die Vermutung liegt nah dass hier der Fehler liegt.

Gruss Thomas

dinoi

  • freakyfriday
  • Sr. Member
  • *
  • Posts: 441
  • Karma: +7/-0
    • Dinoi
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #11 on: April 29, 2014, 10:22:11 PM »
Ja juhu yes #@%.....  ;D ;D ;D

DAS WAR ES, das habe ich bis jetzt nie gebraucht weil ich bis jetzt immer mit 1Mhz ausgekommen bin.

Vielen Dank Pylon, Thomas und Christoph für Eure Unterstützung.

@Thomas ich habe zwar mehrere Stunden investiert aber ich habe mich dafür mehr gefreut als es funktioniert hat als Du.  ;)

Hier ein Bild von dem Helvetiny und den schönen Farben, und der Externe Quarz funktioniert auch bestens.

Vielen Dank und Gruss
Reto
« Last Edit: April 29, 2014, 10:23:53 PM by dinoi »

arduinopraxis

  • freakyfriday
  • Hero Member
  • *
  • Posts: 553
  • Karma: +11/-0
  • Arduino Praxiseinstieg (4.Auflage)
    • Arduino Praxiseinstieg, 4. Auflage
Re: Led Pixel WS1812 mit einem Attiny84 ansteuern
« Reply #12 on: April 30, 2014, 08:43:38 AM »
Hallo Reto,

Gratulation zur erfolgreichen Inbetriebnahme deines ATtiny84.

Neben der Freude hast du auch noch was gelernt und wirst es nie mehr vergessen  ;)

Somit ist auch der Test vom Helvetiny-Board erfolgreich.

Gruss
Thomas