I am working on a project that takes a line of characters typed on a computer and displays them on a 50x8 LED Matrix controlled by an arduino. I am having trouble with the scrolling part.
This is how I would like to do it:
Have two bitmaps a msgbitmap and a bitmap. The msgbitmap is sent to the arduino via serial (I know how to make the msgbitmap, but have not written the code for the serial communications yet). The bitmap would be what is actually displayed on the Matrix at any "point" in time. I am not sure how to shift the msgbitmap gradually into the bitmap.
I know it has to go like this:
1st shift:
bitmap[0][49] = msgbitmap [0][0]
bitmap[1][49] = msgbitmap [1][0]
bitmap[2][49] = msgbitmap [2][0]
bitmap[3][49] = msgbitmap [3][0]
bitmap[4][49] = msgbitmap [4][0]
bitmap[5][49] = msgbitmap [5][0]
bitmap[6][49] = msgbitmap [6][0]
bitmap[7][49] = msgbitmap [7][0]
//set rest to 0?
2nd Shift:
bitmap[0][49] = msgbitmap [0][1]
bitmap[1][49] = msgbitmap [1][1]
bitmap[2][49] = msgbitmap [2][1]
bitmap[3][49] = msgbitmap [3][1]
bitmap[4][49] = msgbitmap [4][1]
bitmap[5][49] = msgbitmap [5][1]
bitmap[6][49] = msgbitmap [6][1]
bitmap[7][49] = msgbitmap [7][1]
bitmap[0][48] = msgbitmap [0][0]
bitmap[1][48] = msgbitmap [1][0]
bitmap[2][48] = msgbitmap [2][0]
bitmap[3][48] = msgbitmap [3][0]
bitmap[4][48] = msgbitmap [4][0]
bitmap[5][48] = msgbitmap [5][0]
bitmap[6][48] = msgbitmap [6][0]
bitmap[7][48] = msgbitmap [7][0]
//set rest to 0?
3rd shift:
bitmap[0][49] = msgbitmap [0][2]
bitmap[1][49] = msgbitmap [1][2]
bitmap[2][49] = msgbitmap [2][2]
bitmap[3][49] = msgbitmap [3][2]
bitmap[4][49] = msgbitmap [4][2]
bitmap[5][49] = msgbitmap [5][2]
bitmap[6][49] = msgbitmap [6][2]
bitmap[7][49] = msgbitmap [7][2]
bitmap[0][48] = msgbitmap [0][1]
bitmap[1][48] = msgbitmap [1][1]
bitmap[2][48] = msgbitmap [2][1]
bitmap[3][48] = msgbitmap [3][1]
bitmap[4][48] = msgbitmap [4][1]
bitmap[5][48] = msgbitmap [5][1]
bitmap[6][48] = msgbitmap [6][1]
bitmap[7][48] = msgbitmap [7][1]
bitmap[0][47] = msgbitmap [0][0]
bitmap[1][47] = msgbitmap [1][0]
bitmap[2][47] = msgbitmap [2][0]
bitmap[3][47] = msgbitmap [3][0]
bitmap[4][47] = msgbitmap [4][0]
bitmap[5][47] = msgbitmap [5][0]
bitmap[6][47] = msgbitmap [6][0]
bitmap[7][47] = msgbitmap [7][0]
//set rest to 0?
............
I know this can be done in a forloop, but I just can't seem to figure it out.
This is how I would like to do it:
Have two bitmaps a msgbitmap and a bitmap. The msgbitmap is sent to the arduino via serial (I know how to make the msgbitmap, but have not written the code for the serial communications yet). The bitmap would be what is actually displayed on the Matrix at any "point" in time. I am not sure how to shift the msgbitmap gradually into the bitmap.
I know it has to go like this:
1st shift:
bitmap[0][49] = msgbitmap [0][0]
bitmap[1][49] = msgbitmap [1][0]
bitmap[2][49] = msgbitmap [2][0]
bitmap[3][49] = msgbitmap [3][0]
bitmap[4][49] = msgbitmap [4][0]
bitmap[5][49] = msgbitmap [5][0]
bitmap[6][49] = msgbitmap [6][0]
bitmap[7][49] = msgbitmap [7][0]
//set rest to 0?
2nd Shift:
bitmap[0][49] = msgbitmap [0][1]
bitmap[1][49] = msgbitmap [1][1]
bitmap[2][49] = msgbitmap [2][1]
bitmap[3][49] = msgbitmap [3][1]
bitmap[4][49] = msgbitmap [4][1]
bitmap[5][49] = msgbitmap [5][1]
bitmap[6][49] = msgbitmap [6][1]
bitmap[7][49] = msgbitmap [7][1]
bitmap[0][48] = msgbitmap [0][0]
bitmap[1][48] = msgbitmap [1][0]
bitmap[2][48] = msgbitmap [2][0]
bitmap[3][48] = msgbitmap [3][0]
bitmap[4][48] = msgbitmap [4][0]
bitmap[5][48] = msgbitmap [5][0]
bitmap[6][48] = msgbitmap [6][0]
bitmap[7][48] = msgbitmap [7][0]
//set rest to 0?
3rd shift:
bitmap[0][49] = msgbitmap [0][2]
bitmap[1][49] = msgbitmap [1][2]
bitmap[2][49] = msgbitmap [2][2]
bitmap[3][49] = msgbitmap [3][2]
bitmap[4][49] = msgbitmap [4][2]
bitmap[5][49] = msgbitmap [5][2]
bitmap[6][49] = msgbitmap [6][2]
bitmap[7][49] = msgbitmap [7][2]
bitmap[0][48] = msgbitmap [0][1]
bitmap[1][48] = msgbitmap [1][1]
bitmap[2][48] = msgbitmap [2][1]
bitmap[3][48] = msgbitmap [3][1]
bitmap[4][48] = msgbitmap [4][1]
bitmap[5][48] = msgbitmap [5][1]
bitmap[6][48] = msgbitmap [6][1]
bitmap[7][48] = msgbitmap [7][1]
bitmap[0][47] = msgbitmap [0][0]
bitmap[1][47] = msgbitmap [1][0]
bitmap[2][47] = msgbitmap [2][0]
bitmap[3][47] = msgbitmap [3][0]
bitmap[4][47] = msgbitmap [4][0]
bitmap[5][47] = msgbitmap [5][0]
bitmap[6][47] = msgbitmap [6][0]
bitmap[7][47] = msgbitmap [7][0]
//set rest to 0?
............
I know this can be done in a forloop, but I just can't seem to figure it out.