Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Rugge
Inlägg: 38
Blev medlem: 1 december 2015, 19:53:12

Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Rugge »

Jag har en Adafruit Trinket 3,3v modell http://www.electrokit.com/adafruit-trin ... 3-3v.52802 och 4st APA-106-F8 LEDs som fungerar som Neopixel WS2812 kontrollerbara leds.

Men det fungerar inte.. Jag har extern matning Micro USB (telefon laddare 2A) som går in på +BAT & GND på trinket och direkt matar LEDs sedan har jag en styrtråd från #2 på trinket till DIN på första LED och självklart DOUT -> DIN på resterande leds.

Men det händer ingenting, lysdioderna bara lyser jag får ingen respons alls från min kod. Ända tills igår när jag tog fram min multimeter (minns ej märke, ej hemma nu) jag skulle använda den för att mäta hur mycket spänning jag fick in. För att säkerställa att det inte var för lite, men eftersom dom lyser borde det inte varit det. Som jag trodde så hade jag aningens mer än +5V vilket ska räcka då det står min +4,5V för matning till dioderna.
Av någon anledning fick jag för mig att mäta spänning på styrpinnen #2 från trinketen, eftersom den skickar snabba pulser borde jag inte få något vettigt värde. Men jag tänkte kontrollera så den inte låg konstant på 0V eller konstant +3,3v. Så fort jag stoppade dit mina mätpinnar från multimetern på GND och pinne #2 på trinketen började dioderna fungera precis som dom ska. VARFÖR?

Dioderna fungerar oavsett om jag mäter mellan +3,3v & pinne #2 eller GND & pinne #2. Det måste betyda att utgången kräver pullup/pulldown för att kunna skicka 0 och 1 med korrekta tider, pga. störningar eller något? Det fungerar inte med 10k ohm pullup/pulldown, som brukar användas på input.

Varför fungerar dioderna när jag har min multimeter ansluten? men inte annars?

Kod: Markera allt

#include <Adafruit_NeoPixel.h>
#incldue <avr/power.h>

Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, 2, NEO_RGB + NEO_KHZ800);

void setup() {
  strip.begin();
}

void loop() {
  strip.setPixelColor(0, strip.Color(255,0,0)); // Set color
  strip.setPixelColor(1, strip.Color(0,0,0)); // Set color to black => turn off
  strip.setPixelColor(2, strip.Color(0,0,0));
  strip.setPixelColor(3, strip.Color(0,0,0));
  strip.show(); // this sends the timing codes to the leds
  delay(50);
  strip.setPixelColor(0, strip.Color(0,0,0));
  strip.setPixelColor(1, strip.Color(255,0,0));
  strip.setPixelColor(2, strip.Color(0,0,0));
  strip.setPixelColor(3, strip.Color(0,0,0));
  strip.show();
  delay(50);
  strip.setPixelColor(0, strip.Color(0,0,0));
  strip.setPixelColor(1, strip.Color(0,0,0));
  strip.setPixelColor(2, strip.Color(255,0,0));
  strip.setPixelColor(3, strip.Color(0,0,0));
  strip.show();
  delay(50);
  strip.setPixelColor(0, strip.Color(0,0,0));
  strip.setPixelColor(1, strip.Color(0,0,0));
  strip.setPixelColor(2, strip.Color(0,0,0));
  strip.setPixelColor(3, strip.Color(255,0,0));
  strip.show();
  delay(50);
}
Användarvisningsbild
matsadona
Inlägg: 759
Blev medlem: 28 februari 2010, 23:05:17

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av matsadona »

Varför valde du 3.3V modellen för en 5V applikation?
Nu spekulerar jag lite villt, men kan det inte vara så att datasignalen behöver vara 5V och därför fungerar det inte nu då du kör 3.3V.

Att det fungerar med voltmeter kopplad kanske beror på att det går någon fulström genom den... vad vet jag :humm:
Användarvisningsbild
FormerMazda
Inlägg: 6510
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av FormerMazda »

Spontant känns det som en trolig felkälla att du skickar data på 3,3v till en kontroller som gissningsvis är byggd på 5v-logik.
Det som stärker det argumentet är att du faktiskt får det att fungera = kod och inkoppling ok.
Men varför det funkar med multimetern i kretsen kan jag inte svara på.

Med befintliga prylar och så som du beskriver det, testa med ett högohmigt motstånd mellan pinne #2 och GND eller +3,3v. Funkar det så är väl allt frid och fröjd då?
Rugge
Inlägg: 38
Blev medlem: 1 december 2015, 19:53:12

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Rugge »

Jag valde 3,3v modellen eftersom den kan drivas av en Raspberry PI, det går inte med 5V modellen. Men eftersom jag förändrat hur jag kopplar in alltihopa så skulle en 5v modell fungera.

Jag har inte läst något om att DIN skulle behöva vara 5V endast att externa strömförsörjningen ska vara minst +4,5V

Dioderna fungerar som dom ska även fast multimetern inte är påslagen.
Användarvisningsbild
matsadona
Inlägg: 759
Blev medlem: 28 februari 2010, 23:05:17

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av matsadona »

Behöver du gå via en Arduino? Kan du inte mata dioderna med datasignal direkt från en GPIO?
Rugge
Inlägg: 38
Blev medlem: 1 december 2015, 19:53:12

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Rugge »

Arduinon kommer att agera IR mottagare för att starta Rasperrby PI, därför tänkte jag använda den till att visa att PI:n bootar genom att "animera" LEDS, för att sedan konstant lysa när den är igång samt lite andra funktioner.
Användarvisningsbild
matsadona
Inlägg: 759
Blev medlem: 28 februari 2010, 23:05:17

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av matsadona »

Aha, då är jag med. Nu vet ju inte jag hur du har tänkt, men ett tips är annars dessa vilket skulle kunna bli riktigt snyggt:
http://www.kjell.com/se/sortiment/el/el ... Auaa8P8HAQ
Rugge
Inlägg: 38
Blev medlem: 1 december 2015, 19:53:12

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Rugge »

Ja det är samma typ, en annan liten krets som styr dioderna. Men dom kör med samma timings som NeoPixel (har kollat på den raka tidigare) så det går att använda samma Arduino bibliotek för APA-106 dioderna som NeoPixel (WS2812)
Användarvisningsbild
matsadona
Inlägg: 759
Blev medlem: 28 februari 2010, 23:05:17

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av matsadona »

Tänkte mest på formfaktorn, dvs en cirkel/ring. Vilket man naturligtvis kan uppnå själv med lösa dioder och en borrmaskin... :)
Rugge
Inlägg: 38
Blev medlem: 1 december 2015, 19:53:12

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Rugge »

Dom ska sitta på en rak linje och lyser genom "frostat" plexiglas för lite mer diffust ljus.

Men åter till saken, WS2812 behöver endast 0,7V på DIN signalen enligt något datablad jag läste.
olof_n
Inlägg: 116
Blev medlem: 23 februari 2011, 21:36:46

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av olof_n »

Hej!

På Adafruits sida står det att leverantören rekommenderar att signalen är minst 70% av matningsspänningen.
Så 3.3V kan vara för lite.

Testa att antingen sänka matningsspänningen på dina WS2812 eller omvandla datasignalen.

Se längst ned på följande sida: https://learn.adafruit.com/adafruit-neo ... uide/power
Rugge
Inlägg: 38
Blev medlem: 1 december 2015, 19:53:12

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Rugge »

Äntligen ett svar till varför det inte fungerar :)

Jag googlade tidigare idag och såg rubriken på den där texten, men blind som man är så såg jag inte texten när jag väl var inne på sidan.

Så då borde alltså allting fungera korrekt om jag bara byter till +5V trinket modellen. Måste först dubbelkolla så IR mottagaren tål 5v

Fast det förklarar inte varför det fungerar när jag "mäter" med multimetern..

EDIT: Skulle det fungera om jag styr +5V signalen med +3,3v via en optokopplare (4N35 har jag liggandes)? eller är den för långsam? (ljus borde inte vara långsamt..)
olof_n
Inlägg: 116
Blev medlem: 23 februari 2011, 21:36:46

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av olof_n »

Ett tips,köp en Arduino Nano istället för 16:- http://www.ebay.com/itm/Mini-USB-Nano-V ... SwaNBUbGvI
Då får du en Atmega328 istället för Attiny85, betydligt mer MCU för pengarna och tar marginellt större plats.

Men du kan lösa problemet på många sätt:

1. Byta till 5V MCU

2. Omvandla 3.3V till 5V som du är inne på.
Borde väl fungerar med två transistorer?
http://blog.sunyday.net/?p=36

3. Sänka spänningen till typ 4.5V
Användarvisningsbild
matsadona
Inlägg: 759
Blev medlem: 28 februari 2010, 23:05:17

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av matsadona »

Arduino Nano har ju både 5V och 3.3V. Jag använder den tillsammans med en mikrofonmodul som går på 3.3V och WS2812 som går på 5V.
Mindre än 20:- fraktad om du köper av slumpmässig Kines på Ebay...
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Problem: "Arduino" Trinket + APA 106 "Neopixel" LED

Inlägg av Magnus_K »

En vild gissning till varför det blir som det blir:

En multimeter har en viss ingångskapacitans och denna påverkar timingen i dataströmmen. Flankerna kan både ändra stil och timingen ändras.
Kika runt lite på nätet och det verkar som du har lite olika ingångskapacitans beroende på vilken DC-range du har valt så det kanske vore intressant att testa? Dvs att ändra mätområde och se om man kan se ett mönster.
Har du lite olika kondingar på 20-500pF liggandes så testa med lite olika värden och avkoppla datalinan.
Skriv svar