element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
#badass Online Film Festival
  • Challenges & Projects
  • element14 presents
  • #badass Online Film Festival
  • More
  • Cancel
#badass Online Film Festival
Documents #badass Woman Project Entry - Roxana Bucina
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join #badass Online Film Festival to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: kellyhensen
  • Date Created: 13 May 2020 6:50 PM Date Created
  • Last Updated Last Updated: 22 May 2020 1:39 PM
  • Views 2349 views
  • Likes 8 likes
  • Comments 14 comments
Related
Recommended

#badass Woman Project Entry - Roxana Bucina

Name:

Roxana Bucina

 

Current home town:

Bucharest, Romania

 

Did you attend university?

Institutul Politehnic Bucuresti, BS EE

Michigan Technological University, MS EE

 

Current Job:

English Teacher

 

Favorite projects from element14 presents or youtube:

https://www.youtube.com/watch?v=LtoBzOMwlRQ

 

Tell us about your project:

My project is a Display with LEDs.

Besides scrolling text my project displays rotating borders and images.

All three functions can be accessed using 2 switches, so it is a four-state display.

The images displayed are easily created by using the links given below:

 

My question is: How do I automatically send the *.ino file to Arduino? When I download it to the computer I want Arduino to start running it. Do I need an Ethernet Shield?

 

Are there any links or files you'd like to provide that support your project?  Code snips, 3d print files, etc.

 

Border Display

 

int scrollspeed = 50;

int flag=0;

//Columns

int clockPin1 = 2; //Arduino pin connected to Clock Pin 11 of 74HC595

int latchPin1 = 3; //Arduino pin connected to Latch Pin 12 of 74HC595

int dataPin1 = 4;  //Arduino pin connected to Data Pin 14 of 74HC595

 

 

//Rows

int clockPin2 = 5; //Arduino pin connected to Clock Pin 11 of 74HC595

int latchPin2 = 6; //Arduino pin connected to Latch Pin 12 of 74HC595

int dataPin2 = 7;  //Arduino pin connected to Data Pin 14 of 74HC595

 

 

//BITMAP

 

byte bitmap1[5][3]={

  {170,170,170},

  {0,0,1},

  {128,0,0},

{0,0,1},

  {170,170,170}

};

byte bitmap2[5][3]={

   {73,146, 4},

  {128,0,1},

  {0,0,0},

  {128,0,1},

  {36, 73, 255}

};

byte bitmap3[5][3]={

   {36,73,2},

  {128,0,1},

  {0,0,0},

  {128,0,1},

  {73, 146, 255}

};

void setup() {

  Serial.begin(9600);

  pinMode(latchPin1, OUTPUT);

  pinMode(clockPin1, OUTPUT);

  pinMode(dataPin1, OUTPUT);

 

 

  pinMode(latchPin2, OUTPUT);

  pinMode(clockPin2, OUTPUT);

  pinMode(dataPin2, OUTPUT);

 

 

  //Clear bitmap

  //for (int row = 0; row < 5; row++) {

  //  for (int zone = 0; zone <3; zone++) {

  //    bitmap[row][zone] = 0;

  //  }

//  }

}

//FUNCTIONS

// Displays bitmap array in the matrix

void RefreshDisplay()

{

  for (int row = 0; row < 5; row++) {

    int rowbit = 1 << row;

    digitalWrite(latchPin2, LOW);//Hold latchPin LOW for transmitting data

    shiftOut(dataPin2, clockPin2, MSBFIRST, rowbit);   //Transmit data

 

 

    //Start sending column bytes

    digitalWrite(latchPin1, LOW);//Hold latchPin LOW for transmitting data

 

 

    //Shift out to each matrix

    for (int zone = 0; zone < 3; zone++)

    {

      switch (flag){

        case 0:

      shiftOut(dataPin1, clockPin1, MSBFIRST, bitmap1[row][zone]);

      break;

      case 1:

      shiftOut(dataPin1, clockPin1, MSBFIRST, bitmap2[row][zone]);

      break;

      case 2:

      shiftOut(dataPin1, clockPin1, MSBFIRST, bitmap3[row][zone]);

      break;

      }

    }

   //flip both latches at once to eliminate flicker

    digitalWrite(latchPin1, HIGH);//Return the latch pin 1 high to signal chip

    digitalWrite(latchPin2, HIGH);//Return the latch pin 2 high to signal chip

    //Wait

    delayMicroseconds(50);

  }

}

// Plot each character of the message one column at a time, updated the display, shift bitmap left.

void XProcess()

{

 

      for (int refreshCount = 0; refreshCount < scrollspeed; refreshCount++)

      {

        RefreshDisplay();

 

          }

        }

 

void loop() {

  flag=(flag+1)%3;

  XProcess();

}

 

http://grafitgroup.ro/arduino.php

http://grafitgroup.ro/arduino3.php

 

Project video:

https://www.youtube.com/watch?v=lXalK3yUjXg&feature=youtu.be

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Attachments:
roxana-files.zip
  • badass
  • badass women makers and engineers
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • roccsi
    roccsi over 5 years ago in reply to davedarko +2
    Thank you I hope so too. This is the first time that I take part in element14 presents, next time I will be more attuned to the community and hopefully not in lockdown. This is a product that I am still…
  • rocits
    rocits over 5 years ago +1
    Can you enable playlists on your video so there is no viewing errors. I've added the video to a YouTube playlist here to keep track of channels/videos: https://www.youtube.com/watch?v=CFDZhLtOt5g&list…
  • roccsi
    roccsi over 5 years ago +1
    Thank you for your great advice! Yes there are so many things I can add! I have to see what webgl/threejs is all about. I've seen some examples and documents, I just hope it doesn't break an image into…
Parents
  • beacon_dave
    beacon_dave over 5 years ago

    I think that this the project that you keep referring to at the start ?

     

       Prasanth K Subash - 48 x 8 LED Matrix using Arduino - Part 1

       https://www.youtube.com/watch?v=UeCKvJZpWeY

     

     

    'Time multiplexing' is the common term used for addressing a LED matrix one column at a time, which you were also describing at the start.

     

     

    I'm not sure I fully understand what you are asking here ?

    "My question is: How do I automatically send the *.ino file to Arduino? When I download it to the computer I want Arduino to start running it. Do I need an Ethernet Shield?"

    It sounds though like you are generating the .ino in your external graphic design program, then loading it into the Arduino IDE, compiling it then downloading a new binary program file into the Arduino microcontroller every time you want to change the display text display ?

     

    If that is the case you may want to separate the data to be displayed from the display program itself. You could perhaps use the on-chip EEPROM to hold this graphical data separately (or an external EEPROM if you need more space). You could then download the graphics data update via a Bluetooth UART device or Wi-Fi and store it in the EEPROM, without having to reprogram the microcontroller every time.

     

    Have you looked at the 'Processing' language at all ? It was designed with graphical applications in mind with an IDE that looks very similar to the Arduino IDE. It also can be used to communicate with Arduino devices over a serial or Telnet connection which would allow you to send the updated graphics to the display device.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • roccsi
    roccsi over 5 years ago in reply to beacon_dave

    Yes, I have used processing.

    I didn't present it here though.

    When I use processing I have to start Arduino first, so it didn't help much.

    This is what I had in mind:

    I want to connect the display to the computer and have the user start an Arduino executable. The executable should download the file created on the webpage and run it so that Arduino will store the new image for the display (without losing all of it's other saved states (>4). So the final product shouldn't require any manual download from the website (that's what I meant by automatic). The executable is on the user's computer.

     

    What you are saying, doesn't it have to be added to the computer? I don't want external devices added for it to work. Does the Bluetooth connect directly to Arduino?

     

    I'm glad time multiplexing is well-known. I felt obligated to cite my source, that's what I was taught.

     

    By the way, I am currently learning C++ so I can create an executable (similar to GIMP) so that there will be no need to go online in the end.

    This project will be grand. Too bad not everybody can see that. And too bad somebody now might finish it before me.

    And although I never worked in C++, I worked for many years (a long time ago) in Visual Basic, and I created many projects there.

     

    Never up to this competition have I heard in software development that a program already exists so why create another. davedarko

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • roccsi
    roccsi over 5 years ago in reply to beacon_dave

    Yes, I have used processing.

    I didn't present it here though.

    When I use processing I have to start Arduino first, so it didn't help much.

    This is what I had in mind:

    I want to connect the display to the computer and have the user start an Arduino executable. The executable should download the file created on the webpage and run it so that Arduino will store the new image for the display (without losing all of it's other saved states (>4). So the final product shouldn't require any manual download from the website (that's what I meant by automatic). The executable is on the user's computer.

     

    What you are saying, doesn't it have to be added to the computer? I don't want external devices added for it to work. Does the Bluetooth connect directly to Arduino?

     

    I'm glad time multiplexing is well-known. I felt obligated to cite my source, that's what I was taught.

     

    By the way, I am currently learning C++ so I can create an executable (similar to GIMP) so that there will be no need to go online in the end.

    This project will be grand. Too bad not everybody can see that. And too bad somebody now might finish it before me.

    And although I never worked in C++, I worked for many years (a long time ago) in Visual Basic, and I created many projects there.

     

    Never up to this competition have I heard in software development that a program already exists so why create another. davedarko

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • beacon_dave
    beacon_dave over 5 years ago in reply to roccsi

    I've seen Processing communicating with microcontroller devices over serial or network connections so you shouldn't need to use the Arduino IDE. However sounds like you are planning on a GIMP style replacement anyway.

     

    EEPROM could work well for this as you could keep adding additional states until the memory was full, without having to delete existing ones. You wouldn't need to recompile and re-flash the program every time either.

     

    There is an example here of how to use EEPROM and also how to update it over the serial terminal after the Arduino microcontroller has been programmed.

     

    18.1 Storing Data in Permanent EEPROM Memory
    https://books.google.co.uk/books?id=nxE245VgtsUC&pg=PA603#v=onepage&q&f=false

    (Arduino Cookbook, by Michael Margolis)

     

    In your case you could perhaps write a program on the host device which connects to the website to do a HTTP download of the new state data and then transfer this over the USB serial connection to the Arduino microcontroller driving the LED display. You would not require the Arduino IDE for this to add the additional states.

     

    Note that the EEPROM in the Arduino Uno is very limited in size (1kbyte) but the likes of the Arduino Mega has more (4kbytes) so it will depend on the size of each of your states as to how much EEPROM memory you would need.

    https://www.arduino.cc/en/Reference/EEPROM

    https://www.microchip.com/wwwproducts/en/ATmega328p

     

    With that in mind you may want to be able to add external EEPROM so as you can store more states for larger display projects.

     

    13.4 Adding External EEPROM Memory
    https://books.google.co.uk/books?id=nxE245VgtsUC&pg=PA437#v=onepage&q&f=false

    (Arduino Cookbook, by Michael Margolis)

     

     

    For Bluetooth you would either need an Arduino device which has a Bluetooth radio built in

    https://www.arduino.cc/en/Main/ArduinoBoardBT

    or you would have to add a Bluetooth module or shield. You would need to look around to see which Arduino microcontrollers best suit your design requirements and are still in production. I only mentioned it as I could potentially see people wanting to be able to update the display using a smartphone device where Bluetooth is more popular.

     

    Yes, citing sources is always good.

     

    Existing designs can always be improved upon.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • roccsi
    roccsi over 5 years ago in reply to beacon_dave

    Thank you for your great input.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube