Project Guidance

I am very new to all of this. I have some limited understanding of circuitry in AC homes, and a little less in DC circuits so getting from A (where I'm at) to B (where I want to take this) is somewhat ambiguous.

Currently I have an Uno r3 (genuine) and a Mega 2650 and Ethernet Shield (chinese clones) in the mail. I have a generalized idea of what all I want my Arduino project to do in the end, and the creation of this project is what motivates me to learn Arduino and the language used in the code.

I've been through all the tutorials on YouTube and will likely revisit most, but I have a very hard time applying my mind to focusing on lighting up LEDs because let's face it, not a one of you just wanted to learn how to make LEDs blink at selected times and sequences. With that said, I am undertaking to learn that which is most relevant and applicable to my desired end project, and of course I will need you all to point me in the right direction (as many already have) ((thank you for that BTW)) on how to learn as quickly as possible how to make my desired end project a reality.

Now to the meat and potatoes. Is there a thread or set of guidelines I can use to generally layout all the various functions I would want to have performed by my Arduino, that I could keep on hand and add to so that I can include in my queries that would essentially empower you (my teachers) to quickly understand what I have, what I seek to do and possibly where I went wrong in that journey?

I don't yet know how to draw out a circuit, nor do I have an extensive knowledge of all the electrical components I can use to make my desired project a reality, but I am slowly chipping away at that. I guess what I'm trying to ask is if there is an elementary approach I can use to quickly learn and plot out what I will need to build my desired end project circuit? I expect you will be so much better equipped to assist me especially in code writing if I could first have the circuit mapped out properly.

I'm kinda old and not getting younger, so if I can skirt having to learn all the basic LED examples, I think my Arduino experience would be more fruitful and knowledge I expect I will have to fight to digest would be more absorbed by my brain if I can solely focus on processes that are important to me and the whole reason I got into Arduino in the first place. Can learning be streamlined?

While project-oriented learning is usually a good way to go (keeps you focused and motivated), it is still important to master the basics. Think of the silly LED games as a sandbox, where you will acquire necessary skills towards the real thing. Without them, you are prone to make silly mistakes and spend more time figuring them out than you would have invested in LEDs in the first place.

myggle:
Is there a thread or set of guidelines I can use to generally layout all the various functions I would want to have performed by my Arduino,

Have you seen the Thread planning and implementing a program ?

...R

Actually, the sequencing of leds is not just about sequencing leds. It's about state machines, and state machines are an underpining concept in embedded systems. The main thing to take away from sequencing leds, is to time things without resorting to blocking code: ie, blink-without-delay as distinct to using delay().

Embrace millis() for timing things and you're halfway there (wherever "there" may be).

On a similar note, reading switches and keeping track of their state is crucial: it's not enough to know that a switch is closed, you need to know that it just became closed since the last time you looked.

Those two concepts are fundamental, and are taught in a number of exercises. Alas, so is the use of delay().

Thanks y'all, I figured this would be the answer, was just hoping to circumvent having to learn some things that I know won't be directly applicable save for me learning to know why some things won't be applicable.

I once studied law and had read plenty of unapplicable stuff, and the only benefit of doing that was to be able to say, "that aint gonna work".

Thanks for the link Robin, I did start to read that thread to about the 4th or 5th lesson before jumping to a new tangent of thought. I will likely revisit though as you covered doing multiple things simultaneously and that is definitely a coding skill I seek.

Thank you

myggle:
Thanks for the link Robin, ... doing multiple things simultaneously and that is definitely a coding skill I seek.

I would also like people to take from that Thread the concept of compartmentalizing code into short functions that each can be tested separately, and only using loop() to string them together.

...R

Could you at least give me a spoiler by answering this?

Let's say I gain the needed coding skills and begin building my project. So long as my arduino has the IO pins to support additions, can I graft new code into a master sketch as I acquire new components and circuits? The project I seek to build may be a bit too involved as I hope I can add about 4-8 relays, 8 temp/RH sensors, 4co2 sensors, about 8 EC meters, 8 PH probes, likely 4 fan speed controllers, about 10 solenoids and 7 peristaltic pumps. this is very similar to Billies Hydroponic Controller, but geared more towards indoor gardening.

However, being so new to microelectronics and coding, I am not aware of a Mega 2650's ability to handle all of this, let alone the size of the sketch needed to control it all. In your opinion, is it possible? I am approaching Arduino as if the answer is yes. If it is no, I got some thinking to do.

myggle:
The project I seek to build may be a bit too involved as I hope I can add about 4-8 relays, 8 temp/RH sensors, 4co2 sensors, about 8 EC meters, 8 PH probes, likely 4 fan speed controllers, about 10 solenoids and 7 peristaltic pumps. this is very similar to Billies Hydroponic Controller, but geared more towards indoor gardening.

However, being so new to microelectronics and coding, I am not aware of a Mega 2650's ability to handle all of this, let alone the size of the sketch needed to control it all. In your opinion, is it possible? I am approaching Arduino as if the answer is yes. If it is no, I got some thinking to do.

Oh all that long wait and you finally spilled it! I thought you were going to build a meat grinder that tweets or maybe an automated lawn mower with bad attitudes. Arduino will fall short showing bad attitude part but should handle a lot of stuff in general. Your project involves a lot of components and likely very long programs. A Mega should be able to handle all those given the logic is not too complicated or requires too much memory.

You listed a whole bunch of components. How do they all relate to each other? Some general remark of your operation is needed. If you ask me, I know nothing about hydroponics. But if you ask me about running some motors and pumps, that I do. You can't assume everyone knows what you know.

myggle:
Let's say I gain the needed coding skills and begin building my project. So long as my arduino has the IO pins to support additions, can I graft new code into a master sketch as I acquire new components and circuits?

Yes - that is the whole point of the approach in planning and implementing a program

I am not aware of a Mega 2650's ability to handle all of this, let alone the size of the sketch needed to control it all. In your opinion, is it possible? I am approaching Arduino as if the answer is yes. If it is no, I got some thinking to do.

How long is a piece of string?

I don't see any alternative to buying an Arduino (Uno or Mega) and starting the learning process. You can't cover all the possibilities from your present level of knowledge.

The pieces you want to do are not complex in themselves and the collection of them is unlikely to need more processing power than a Mega. If you run out of I/O pins you can use simple external ICs to expand them.

...R

Thank you Robin. Though I am wanting to cut corners regarding how I learn, I am realizing (through your explanations) that this takes hands on to learn which means I have to go through all the motions the same as everyone else. I just needed an advanced opinion to confirm that all of this was even possible, so once again thank you much for the help and insight.

I can now proceed knowing my desired end project is achievable with Arduino.