SparkFun Forums 

Where electronics enthusiasts find answers.

Have questions about a SparkFun product or board? This is the place to be.
By thisisjaye
#127062
**check out the 9th post, I revised my question**



Hello,

This is my first time on here. I make props for a living and have often ran into issues such as this and was wondering if any one could help.

I'm trying to program a 7 segment display to light up in a series of numbers to indicate "time travel" kind of like what was used in "Back to the future" in the Delorean. I have very little technical knowledge in this field but have done a lot of small electronics that do not require programing. I'm either looking for a controller that has a workable interface for me to manipulate or a list of the hardware and software I will need to program a chip myself. Or a company that does small specialty projects for an individual like me. If any one could help out it would be greatly appreciated.

-Jaye
Last edited by thisisjaye on Sat May 14, 2011 12:06 pm, edited 2 times in total.
By dext3r
#127069
i tried to vote but it wouldnt let me. :lol:

You could get this:
http://www.sparkfun.com/products/9622

and and some flavor of Arduino. Have it randomly pick numbers and then spit out the info over the SPI to the chip. that chip can drive up to 8 segments, so you should have no problem there.

if that might be too complex, there are simpler decoder chips you can use. check out this site: http://www.thelearningpit.com/lp/doc/7seg/7seg.html.

4 of those chips (im assuimg you are time traveling between 0000 and 9999) and 4 displays and you should be golden.
#127074
i would like to have the freedom of choosing how many digits and also the ability to program any combination of numbers. you mentioned the Arduino and having it randomly picking the numbers. is there a particular software that would go along with that or would i have to program in the numbers individually and then find a way to make them cycle? upon starting this responce i realized i have not checked ou tthe second link you have sent me. ill take a closer look and see what i can come up with.

thanks a bunch

-Jaye
By sloprest
#127122
There are quite a few ways to do what you are asking but I have a few questions before you go and spend 100 dollars for an Arduino and serial 7 segments when you can do the whole thing for 10 dollars worth of IC's.

What is your user interface for this? Do you want to use a simple button to select up or down, a rotary encoder, a keypad? All three of these make a huge difference in the components you need so I suggest you chose your interface first. Buttons will make changing the year pretty annoying if its over 10 years, a Rotary encoder will be a little better, and a keypad has complete freedom. Does this prop even to interacted by the actors?

When you say you want to indicate time travel do you want the numbers to be dynamically changing as you are going through time or are they just for indicating the time travel data?

Because of SparkFun's large community and code base for most of the parts they sell I do not see the need for you to have someone code this for you. It will be fairly basic and C++ programing is a simple language to learn.
#127131
any of the interface's would work. the actor will be typing on a key board but it can be a prop key board and the controller can be operated off camera (if need be). i would prefer to have a certain set of numbers pop up, then cycle randomly, then end on another certain set of numbers. i have a lot of freedom with this project and im sure the director will be happy with whatever he gets, so whatever solutions you have would be great. im looking at the http://www.sparkfun.com/products/9622 and would like to operate 4 of them (all with different read outs) i noticed that each digit only has 2 prongs, does the c++ programming have presets in it to light 7 segments with 2 prongs? i would love to take this opportunity to learn a little C++ programming so i can apply it in the future (i do a lot with blink/chasing leds such as video game and movie replicas). also if someone could point me in the direction of software to do the programming of seven segment displays that would be tremendously helpful.

*you said this could be a 10 dollar project? what hardware are you referring to?

If you believe im putting to much thought into this, perhaps i am and all i need to do is order some parts and work it out. if this is the case what would you recommend ordering?
By sloprest
#127133
The product you posted is for a LED driver witch does not apply to what you are doing. However I believe you are referring to 7-Segement Serial Display. That would indeed work. The reason It has 2 wires is simply that is all that is needed to communicate the display. The display has a microcontroller built in. When using another microcontroller you can communicate with the display and tell it what you want it to do.

The reason I said it could be a 10 dollar project is because the IC's used to control a single 7 segment delay can be bought around 2 dollars. However I do not know how to make your prop function without a microcontoller because my knowledge of discrete circuits is limited but that is no to say it is impossible.

I would need to do a bit more research into functionality but I don't know what your price point is. With an Arduino, usb cable, and the 4 displays you are closing in on 90 dollars for electronics alone. This is the bare minimum you would need.

As far as programming you can grab a copy of the Arduino IDE development enviroment for free over at http://www.arduino.cc. It is a C++ based language and all the reference and tutorials are available on the site.
By dext3r
#127137
sloprest wrote:The product you posted is for a LED driver witch does not apply to what you are doing.
Except that it totally does...

You can drive 64 LEDs with this chip. 8 segments (7 + dot point) per display means you can drive 8 7seg displays from one chip. How does this not apply?
sloprest wrote:With an Arduino, usb cable, and the 4 displays you are closing in on 90 dollars for electronics alone. This is the bare minimum you would need.
I don't think he wants FOUR serially controlled displays. I think he wants 4 digits - which one serially controlled display would do. he is time traveling. from like from 1939 - then random numbers flash - then 2059.

I think these are your options:
  • Hard: Arduino + MAX7219 + 4 displays
  • Medium: Arduino + serially controlled 7 seg display
  • Easy: Arduino + 4 IC drivers + 4 displays
Using the MAX7219 will give you the most flexibility - you can make the displays show whatever want. Random garbage, letters, animations, whatever. But for a beginner, its probably not a good place to start.

Using the SFE serial controlled display will give you less flexibility - you can only display what is supported by the onboard micro. But it shoule be easier to set up than the 7219 and a couple Arduino people have them working. (check arduino forum)

Using the IC drivers gives you least flexibility - only can display numbers. but its the easiest to set up.

IMHO, I would do the IC drivers personally for this project - its easier that way because you dont need to worry about getting SPI comms working or anything.
just drive a 4 pins to the desired state. and add a latch per display. so 8 total pins needed.

this project should not cost anywhere near $90-$100.
#127166
I am infact looking for around 24 digits total. That is day month year hour second and mil second. And 2 displays of that. Price isn't much of an issue this is a rather small protion of a much larger project. Im going to place an order of parts later today based on everyones input and a bit of my own research. Ill let you guys know what I came up with. Thanks for every ones help
Last edited by thisisjaye on Sat May 14, 2011 12:36 pm, edited 1 time in total.
#127175
ok , wow. so now that i have taken some time to look this over a little more i now can ask my question with more specifics. So i think i will be using 6 of these http://www.sparkfun.com/products/9766 and having 3 of them in line to create 2 different displays to be operated either off the same controller or a different one. they only have 2 wires which i have been told means that they have a micro controller in them. can i run them in series to minimize the controls for them. also what do they need to plug into? straight to an Arduino? if so, which one is recommended. or perhaps i need another micro controller, if so, which one? i found the software for programming the arduino but is there literature i might want to read up on to be able to program the features i want in them? they will solely be displaying numbers. and i want to have the numbers change at an inconsistent rate, perhaps from 03.05.2011.13:45:08 for 3 seconds then to 20.07.1986.04:04:92 taking 2 seconds to get to the new number and holding the new number for 3 seconds, then to 11.10.1992.20:33:41 in another 2 seconds. and if possible i would like a transition between the numbers, whether it be counting up/down at a fast rate or the screen going to 0's and then filling back up with the numbers.

thanks for every thing, i feel im getting closer to under standing.
if im online and you would like to pm me please do :)

-Jaye
#127194
thisisjaye wrote:ok , wow. so now that i have taken some time to look this over a little more i now can ask my question with more specifics. So i think i will be using 6 of these http://www.sparkfun.com/products/9766 and having 3 of them in line to create 2 different displays to be operated either off the same controller or a different one.
-Jaye
My first thought is that the displays are awefully small for stage props. My second thought is to ask how the sequence you mention is to be triggered and whether you want it to be the same each time ? Embedding the sequence in a microcontroller will make it a bit of a PITA to change if you're not up to speed doing such things. What I'm thinking of is a PC running a script to send times to the display(s) over a USB line (perhaps using a USB -> serial converter if the distance, PC to display, is "long"). This might not be hugely different hardware-wise from your present course but the time to figure it out is now. I note that the display you've listed has a TTL level serial (UART) control/input. Conceivably all you'd need is a USB->serial converter and a RS232 receiver to talk to it from a PC.

The BttF display ...

Image
#127203
its a film prop so size isnt an issue. and your saying that the displays i specified are capable of running straight off a pc? what software would i need for that? its not necessary but will the units be able to store programming so i can operate it without a pc attached? if all i need are thoes displays and a usb ill be a happy man.

-Jaye
#127222
thisisjaye wrote:its a film prop so size isnt an issue. and your saying that the displays i specified are capable of running straight off a pc? what software would i need for that? its not necessary but will the units be able to store programming so i can operate it without a pc attached? if all i need are thoes displays and a usb ill be a happy man.

-Jaye
The display you linked to can be "talked to" via SPI, which requires a microcontroller, or via a serial TTL level link. If you use the latter then you don't have to have a microcontroller, just a PC (which you'd have to have to program the micro anyway) and some other interface circuitry. Let's assume your PC only has USB ports, no old time serial (RS232) ports. To talk serially to the display you need to get a USB-to-serial converter. The output of these devices is an RS232 level, not TTl level, serial signal so you need to do 2 things to interface to a display. First convert the voltages to TTL levels and then invert the logic levels. This is most easily done with something like a MAXIM IC. You'd need 3 receivers (perhaps all in a single chip) for each of the 2 displays you want. But there's a catch in that you'd need a USB port for each 4 digit display and I'm not sure a USB hub will suffice to exapnd your PCs number of USB ports. Then again perhaps you have a PC with 6 free USB ports.

But here's an idea. You could get a UBW and use it to do the above (I think). It could drive multiple 4 digit displays and do the USB-to-serial conversion as well. I'm not sure what software has to be done to fan out multiple serial ports off the UBW, you'll have to investigate that. But that would be a 1 time softare engineering effort to have the UBW become the interface circuitry you need. After that you could send any display you want, not having to know what it was ahead of time.

In either case the PC is needed to run the show all the time. Basically you run a script on it sending display data to a "com" port. The data and the time interval (however short or long) between display changes are controlled by this script.
Last edited by Mee_n_Mac on Sun May 15, 2011 9:02 am, edited 5 times in total.
By Chagrin
#127230
With an Arduino Uno or similar and a script like below (which is untested and full of bugs) you could connect the six serial displays to the Arduino and then communicate to the Arduino via Hyperterminal or such as to what you want to show on each display. The messages would be as simple as "A1234" to show "1234" on the first display ("A").

You're going to have to do programming to make this work; there's no way of getting around that. You could do all of the programming in the Arduino but I suspect you're trying to avoid that. Fortunately, using the serial port on the Arduino, you can use pretty much any language out there to do it. Visual Basic, C#, Perl, PHP... pretty much anything.

Your requirements would be:
1) Your six, seven-segment displays with RX/TX connected to pins 2/3, 4/5, etc. and the power lines connected to 5V/GND.
2) One Arduino
3) A USB cable and computer
4) A buncha wires, a breadboard to make it easier to connect everything, soldering iron/etc.
5) A script/program running on the host computer to control what will be displayed.

The script would look like:
Code: Select all
#include <SoftwareSerial.h>

SoftwareSerial DisplayA = SoftwareSerial(2. 3);
SoftwareSerial DisplayB = SoftwareSerial(4, 5);
SoftwareSerial DisplayC = SoftwareSerial(6, 7);
SoftwareSerial DisplayD = SoftwareSerial(8. 9);
SoftwareSerial DisplayE = SoftwareSerial(10, 11);
SoftwareSerial DisplayF = SoftwareSerial(12, 13);

void setup() {
  // Activate the hardware serial (via the USB connection)
  Serial.begin(9600);
  
  // Activate the Displays
  pinMode(2, INPUT);
  pinMode(3, OUTPUT);
  DisplayA.begin(9600);
  // Fill the display with 8s so we know it's OK, or in production, send a "v" to blank it.
  DisplayA.print("8888"); 
  // Add code here to repeat for displays B through F
}

int inByte;
int activeDisplay = 65; // ASCII 65 is "A"

void loop(void) {
  while (inByte = Serial.read()) {
    if (inByte >= 65 && inByte <= 70) {
      // We've received a letter A through F so we change the active display accordingly.
      activeDisplay = inByte;
    } else {
      // We've received a number/character to push to the active display
      switch (activeDisplay) {
        65:
          DisplayA.print(inByte);
        66:
          DisplayB.print(inByte);
        67:
          DisplayC.print(inByte);
        68:
          DisplayD.print(inByte);
        69:
          DisplayE.print(inByte);
        70:
          DisplayF.print(inByte);
      }
    }
  }
}