I just purchased my first arduino uno and I'm eager to learn as much as possible.

I just put 4 LEDs on pin 2-5 and they share a ground on the board. What I want to do is have these 4 LED's chase each other at varying speeds that can be written in the code.

ie. the LEDs chase each other at the rate of 50 cycles per minute and then gradually go from 50 to 2000 cycles per minute at the rate of 10 cycles a second, and then back down to any variable lets say 500 cycles per minute.

Here is the code that I have right now, It's a varition of this code as you can see I can change the speed manually by changing int timer = but I want to have it all programmed and watch it do it automatically:

Awesome thanks for the help. I played with changing some of the values and I get the lowering the delay by 10 every cycle (sorry for the lack of lingo) and it works well until the cycle times speed up then it cascades to max speed rather quickly.

Is there an easy way to have it increase based on time and not cycles? for instance: have it increase by 10 every second instead of cycle?

Oh, and yes I have resistors in line of my LEDs.Here's what I have so far:

Ok, just as I expected, it makes zero sense to me. Let me say that I don't know how to write or read code, I learn best by taking something and changing values to see what I changed, then things me more sense.

how would I apply millis() to my current project.

I'm going to need you guys to hold my hand before I feel comfortable with doing things myself.

Note that you can use multiple timing variables. In your situation, you need one "delay" (actually a "time reference" rather than a delay) for the chase speed, and another time reference for the speed-change rate (i.e . 10 per second).

It would be a good idea to review the entire Language Reference to get an idea of what you can do. You don't have to memorize the whole thing. But, try to understand if-statements & loops. If-statements (and other conditional logic) are the way that computers "make decisions". Along with loops (doing things over& over, perhaps changing variable-values each time through the loop) these are the two most important things in programming... They are the things that make programming useful.

Quote

Let me say that I don't know how to write or read code, I learn best by taking something and changing values to see what I changed, then things me more sense.

That's not a bad approach... When you are modifying code, it's a good idea to change a little at a time. When something goes-wrong, it's not always easy to figure-out what's wrong and it you change one or two things at at time, at least you know where the problem is.

The BEST way to learn programming is to take a class. The 2nd best way would be to get a book. But, I don't know if you can find a class or book that teaches beginning programming concepts as well as Arduino programming. So, unless you want to work through a general-purpose C/C++ programming book (unrelated to the Arduino), you might just have to struggle-through.

The same goes for writing code from scratch. Professional programmers don't write the whole program before trying it out... They write and tests one thing at a time. Beginners should try to write and test one or two lines at a time, except where you need to add more to make the program comple & run.

Just FIY - Programming is NOT easy, and it's probably different than anything you've done before. People who are good at math & logic tend to make good programmers. Just as an indication of how difficult programming can be, professional programmers make mistakes (create bugs) every day! If doctors or bridge designers made as many mistakes they would be fired! (Most of these bugs are fixed before anyone sees them.)

I've been programmed (part-time for work and as a hobby for many years in several different programming languages... I'm still not an expert!

I guess what i'm looking for is someone to take what I have... or scrap it all together and help me with cycling 4 leds from 30 cycles per minute to 2000 cycles per minute at the rate of 1 cycle per second.

Lets use what I have as example and move from there. All these links are great but I would much rather understand it at a pace that I can see results with what I have.

I know it requires less work for me and more work for the arduino community, but the "more work" part for you is easy because you understand it, I don't. if it were more work for me I would have to devote more time than I have to doing thisThanks Guys