Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raspberry Pi Zero W + SN74AHCT125N + ws2812b #314

Open
Piero87 opened this issue Aug 23, 2018 · 1 comment
Open

Raspberry Pi Zero W + SN74AHCT125N + ws2812b #314

Piero87 opened this issue Aug 23, 2018 · 1 comment

Comments

@Piero87
Copy link

Piero87 commented Aug 23, 2018

Hi,
I have follow the Adafruit Guide to wire my led strip ws2812b (of 10 led) to Raspberry Pi Zero W using the SN74AHCT125N as level converter, i have a power supply for the led strip of 5V 500ma, the strandtest.py give me a bad result the colors are not what they should be. So I try this simple test:

from neopixel import *
strip = Adafruit_NeoPixel(10, 18, 800000, 5, False, 255)
strip.begin()
strip.setPixelColorRGB(0, 127, 127, 127)
strip.setPixelColorRGB(1, 127, 127, 127)
strip.setPixelColorRGB(5, 127, 127, 127)
strip.show()

The 127,127,127 should be a white color, the result of this code is this:

LED0 = RED
LED1 = OFF
LED5 = WHITE

This code:

from neopixel import *
strip = Adafruit_NeoPixel(10, 18, 800000, 5, False, 255)
strip.begin()
strip.setPixelColorRGB(7, 127, 127, 127)
strip.setPixelColorRGB(8, 127, 127, 127)
strip.setPixelColorRGB(9, 127, 127, 127)
strip.show()

Result:

LED5 = Blue (That is not in the code and should be off)
LED6 = White (That is not in the code and should be off)
LED7 = White (correct)
LED8 = GREEN (wrong)
LED9 = Off (should be on)

I can't understand why i get this result, i have tried also to edit the strandtest example:

#!/usr/bin/env python3
# NeoPixel library strandtest example
# Author: Tony DiCola ([email protected])
#
# Direct port of the Arduino NeoPixel library strandtest example.  Showcases
# various animations on a strip of NeoPixels.

import time
from neopixel import *
import argparse

# LED strip configuration:
LED_COUNT      = 10      # Number of LED pixels.
LED_PIN        = 18      # GPIO pin connected to the pixels (18 uses PWM!).
#LED_PIN        = 10      # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0).
LED_FREQ_HZ    = 800000  # LED signal frequency in hertz (usually 800khz)
LED_DMA        = 10      # DMA channel to use for generating signal (try 10)
LED_BRIGHTNESS = 255     # Set to 0 for darkest and 255 for brightest
LED_INVERT     = False   # True to invert the signal (when using NPN transistor level shift)
LED_CHANNEL    = 0       # set to '1' for GPIOs 13, 19, 41, 45 or 53



# Define functions which animate LEDs in various ways.
def colorWipe(strip, color, wait_ms=50):
    """Wipe color across display a pixel at a time."""
    for i in range(strip.numPixels()):
        strip.setPixelColor(i, color)
        strip.show()
        time.sleep(wait_ms/1000.0)

# Main program logic follows:
if __name__ == '__main__':
    # Process arguments
    parser = argparse.ArgumentParser()
    parser.add_argument('-c', '--clear', action='store_true', help='clear the display on exit')
    args = parser.parse_args()

    # Create NeoPixel object with appropriate configuration.
    strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
    # Intialize the library (must be called once before other functions).
    strip.begin()

    print ('Press Ctrl-C to quit.')
    if not args.clear:
        print('Use "-c" argument to clear LEDs on exit')

    try:

        while True:
                # Color wipe animations.
                colorWipe(strip, Color(127, 127, 127), 0)  # Composite White wipe
    except KeyboardInterrupt:
        if args.clear:
            colorWipe(strip, Color(0,0,0), 10)

And with this example all the led are white but the light is flickering, I made a video: https://www.youtube.com/watch?v=biANv3kYmsI&feature=youtu.be

Anyone can help me?


I want add also another thing that I can't understand, my led strip is of 10 led, if I print this:

print(strip.numPixels())

the output is 10, if I print this:

for i in range(strip.numPixels()):
  print(i)

The output is this:

0
1
2
3
4
5
6
7
8
9
10

so seems to be 11 led, why?

@jtkDvlp
Copy link

jtkDvlp commented Jan 4, 2019

Two ideas, maybe it will help:

  1. try a more powerfull power supply with more A. 10 leds a 60ma is more than 500ma a 5V this could be the reason for flickering
  2. do you connect led´s ground to the power supply AND your controller?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants