Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
scrolling a text using loop
#1
Hi,

I'm trying to scroll a text on a 7 segment display. The display library doesn't have a scroll option so I made one up via a repetitive code. Because said code looks too awkward, I'd like to shorten it using a loop, but I just cannot get it right.
I appreciate some hints.
TIA

import time from Adafruit_LED_Backpack import SevenSegment brightness = 10 # init display. Must be called once before using the display. seg = SevenSegment.SevenSegment(address=0x70) seg.begin() seg.set_brightness(brightness) btext = {' ': 0x00, '-': 0x40, 'h': 0x76, 'a': 0x77, 'p': 0x73, 'y': 0x6E, 'b': 0x7c, 'i': 0x10, 'r': 0x50, 't': 0x78, 'd': 0x5E, 'n': 0x54} #content: space h a p p y space b i r t h d a y space d a n i arry = [0x00, 0x76, 0x77, 0x73, 0x73, 0x6E, 0x00, 0x7c, 0x10, 0x50, 0x78, 0x76, 0x5E, 0x77, 0x6E,	0x00, 0x5E, 0x77, 0x54, 0x10 ] #this works def scroll_msg_(): ''' displays happy birthday dani from btext''' seg.clear() seg.set_digit_raw(0, btext[' ']) seg.set_digit_raw(1, btext[' ']) seg.set_digit_raw(2, btext[' ']) seg.set_digit_raw(3, btext[' ']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext[' ']) seg.set_digit_raw(1, btext[' ']) seg.set_digit_raw(2, btext[' ']) seg.set_digit_raw(3, btext['h']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext[' ']) seg.set_digit_raw(1, btext[' ']) seg.set_digit_raw(2, btext['h']) seg.set_digit_raw(3, btext['a']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext[' ']) seg.set_digit_raw(1, btext['h']) seg.set_digit_raw(2, btext['a']) seg.set_digit_raw(3, btext['p']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['h']) seg.set_digit_raw(1, btext['a']) seg.set_digit_raw(2, btext['p']) seg.set_digit_raw(3, btext['p']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['a']) seg.set_digit_raw(1, btext['p']) seg.set_digit_raw(2, btext['p']) seg.set_digit_raw(3, btext['y']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['p']) seg.set_digit_raw(1, btext['p']) seg.set_digit_raw(2, btext['y']) seg.set_digit_raw(3, btext[' ']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['p']) seg.set_digit_raw(1, btext['y']) seg.set_digit_raw(2, btext[' ']) seg.set_digit_raw(3, btext['b']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['y']) seg.set_digit_raw(1, btext[' ']) seg.set_digit_raw(2, btext['b']) seg.set_digit_raw(3, btext['i']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext[' ']) seg.set_digit_raw(1, btext['b']) seg.set_digit_raw(2, btext['i']) seg.set_digit_raw(3, btext['r']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['b']) seg.set_digit_raw(1, btext['i']) seg.set_digit_raw(2, btext['r']) seg.set_digit_raw(3, btext['t']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['i']) seg.set_digit_raw(1, btext['r']) seg.set_digit_raw(2, btext['t']) seg.set_digit_raw(3, btext['h']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['r']) seg.set_digit_raw(1, btext['t']) seg.set_digit_raw(2, btext['h']) seg.set_digit_raw(3, btext['d']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['t']) seg.set_digit_raw(1, btext['h']) seg.set_digit_raw(2, btext['d']) seg.set_digit_raw(3, btext['a']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['h']) seg.set_digit_raw(1, btext['d']) seg.set_digit_raw(2, btext['a']) seg.set_digit_raw(3, btext['y']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['d']) seg.set_digit_raw(1, btext['a']) seg.set_digit_raw(2, btext['y']) seg.set_digit_raw(3, btext[' ']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['a']) seg.set_digit_raw(1, btext['y']) seg.set_digit_raw(2, btext[' ']) seg.set_digit_raw(3, btext['d']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['y']) seg.set_digit_raw(1, btext[' ']) seg.set_digit_raw(2, btext['d']) seg.set_digit_raw(3, btext['a']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext[' ']) seg.set_digit_raw(1, btext['d']) seg.set_digit_raw(2, btext['a']) seg.set_digit_raw(3, btext['n']) seg.write_display() time.sleep(.3) seg.clear() seg.set_digit_raw(0, btext['d']) seg.set_digit_raw(1, btext['a']) seg.set_digit_raw(2, btext['n']) seg.set_digit_raw(3, btext['i']) seg.write_display() time.sleep(.5) seg.clear() def scroll_msg(): ''' displays happy birthday dani from array''' seg.clear() for i in range(4): for t in range(len(arry)): seg.set_digit_raw(1, arry[t]) seg.write_display() time.sleep(.5) seg.clear() def main(): scroll_msg() time.sleep(2) if __name__ == '__main__': while(True): main()
Reply
#2
Solved with the following code:

def scroll_msg(): ''' displays happy birthday dani from array''' seg.clear() for i in range(len(arry)): for t in range(len(arry)): seg.set_digit_raw(3, arry[t]) seg.set_digit_raw(2, arry[t-1]) seg.set_digit_raw(1, arry[t-2]) seg.set_digit_raw(0, arry[t-3]) seg.write_display() time.sleep(.3) seg.clear()
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  help with scrolling text on RGB Matrix Foutsy 3 2,558 Apr-09-2024, 09:00 PM
Last Post: deanhystad
  Scrolling in Python newpyt 6 7,189 Nov-23-2023, 09:10 PM
Last Post: newpyt
  while loop not working-I am using sublime text editor mma_python 4 2,876 Feb-05-2023, 06:26 PM
Last Post: deanhystad
  Skipping line in text without Restarting Loop IdMineThat 4 4,198 Apr-05-2022, 04:23 AM
Last Post: deanhystad
  raspberry use scrolling text two lines together fishbone 0 2,334 Sep-06-2021, 03:24 AM
Last Post: fishbone
  Can Python be used to create scrolling credits (as follows) digger 3 5,019 Aug-27-2021, 03:15 PM
Last Post: Larz60+
  How to scrolling Picture in x axis kalihotname 1 3,273 Jun-16-2020, 12:18 PM
Last Post: DeaD_EyE
  20 x 4 Line 2 scrolling text for LCD-I2C Display RoadieMunky 2 6,573 Mar-04-2018, 10:17 AM
Last Post: RoadieMunky
  loop doesn't advance-py3 text game foxtreat 2 4,913 Jun-08-2017, 06:41 AM
Last Post: foxtreat

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.