3 Beginner Arduino Mistakes

60,331

282

40

Introduction: 3 Beginner Arduino Mistakes

About: Making and sharing are my two biggest passions! In total I've published hundreds of tutorials about everything from microcontrollers to knitting. I'm a New York City motorcyclist and unrepentant dog mom. My wo…

In my decade of experience building with and teaching Arduino, I see three mistakes more often than any others. Beginners typically:

  1. bite off more than they can chew by attempting to build a project with too many elements at once,
  2. make incorrect assumptions during prototyping,
  3. and underutilize the resources available to them online.

Read more about each one in the Instructable that follows, including how to avoid making these mistakes yourself.

If you're just starting out in Arduino, try my free Instructables Arduino Class! It'll bring you up to speed on the basics and best practices, further enhancing your Arduino fun-to-frustrating ratio.

If you've got tips for beginners, we'd all love to hear about them in the comments!

To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter.

Step 1: Sensible Bites

The most common beginner Arduino mistake is biting off more than you can chew by attempting to build a project with too many elements at once. You get frustrated and overwhelmed, and the project never gets finished. If you want to build a quadcopter, you need to break it down into simpler systems first. Quadcopters have GPS, inertial measurement units with accelerometers and gyroscopes, not to mention variable speed motor control. You should honestly reflect on your abilities, and then look up examples and tutorials for each component of your project, and build them successfully before attempting to combine them.

Step 2: Don't Assume It's Right

The second mistake I see frequently is making assumptions during prototyping. I know it can be really tough to learn all the things that possibly could go wrong, whether it be your wiring, or your code, or your software settings-- but when you're circuit's not behaving like you expect, don't just assume your wiring is right without checking. Double check the pin number you specified in software is the same pin connected to your LED, or sensor, etc. Double check power and ground, especially. Get into a detective mindset, hunt for missing semicolons, get out your multimeter, add in some serial debugging to your code to help figure out what's going on.

Prototyping resources:

Step 3: Look It Up

The last mistake I see a lot with Arduino beginners is underutilizing the resources available to you online. The Arduino site has a reference section that breaks down the whole programming language by groups of commands with simple samples demonstrating each one. I look up stuff all the time, like how modulo works. But there're also community resources you should be taking advantage of as well, like researching your questions in forums online, and posting Instructables about your projects!

Thanks for reading. Don't forget to check out my free Instructables Arduino Class, IoT Class, and my other projects, too. I look forward to reading your feedback in the comments!

To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and Snapchat.

1 Person Made This Project!

Recommendations

  • Make It Bridge

    Make It Bridge
  • Big and Small Contest

    Big and Small Contest
  • Game Design: Student Design Challenge

    Game Design: Student Design Challenge

40 Comments

1
LarryF29
LarryF29

5 years ago

For me it is the coding, cannot make heads or tails about it. Seems very technical and unless I can visualize and actually do it hands on it don’t make sense. Writing the code I see as very difficult, copy someone else’s work is not an issue but to take an idea and put it to code is a whole different story

0
IRC_80
IRC_80

Reply 1 year ago

That's the exact same issue I have. I just started using other peoples code and it eventually became somewhat familiar. I thought there was a book or something that you could start with, but I personally don't think that's the case. I think it's more of a dive-into-the-deep-end kind of approach approach. But that's just me.

0
jeff.verive
jeff.verive

Reply 4 years ago

Coding can be a hurdle for lots of hobbyists, especially when it comes to the use of libraries (most of which IMHO are poorly documented).

My usual recommendation when starting to learn how to code is to start small and take baby steps.

0
ProfessorPi
ProfessorPi

Reply 5 years ago

This thread is a little old, but for anyone else who has problems, I recommend using tinkercad. They have a block code editor, and sometimes it's easier to understand things when you are clicking blocks together instead of typing code. So there's that. https://www.tinkercad.com/

0
ny_rebel
ny_rebel

Reply 5 years ago

Larry,

I'm no expert but an easy way to learn coding is to take a known working sketch and then "play around" with it. Use a simple sketch such as moving single servo and make changes to the code and observe the result. Do the same with a LED. These are easy to manipulate and the visual feedback will help you to get a "feel" for the code.

0
LarryF29
LarryF29

Reply 5 years ago

Thanks for your comment,I guess I am just intimidated by writing the code and getting any understanding of all the wording and concepts of the code. This may sound crazy but I can take an IC chip and understand if I put and input on a pin weather it is voltage or current and get the resulting output but to incorporate any coding to this is confusing to me anyway.

0
TGit-Tech
TGit-Tech

Reply 5 years ago

I don't know if this will help in your confusion - but when you say, "if I put and input on a pin weather it is voltage or current and get the resulting output" - ask yourself, "is this the 'resulting output'" I expected to get and how did I know what I expected to get ( datasheet )?

Code is just a matter of creating the datasheet. Defining what you expect a 'resulting output' to be and thus it also requires testing ( as you mentioned doing ) that the actual is what you expected as defined by your code.

0
nb109
nb109

Reply 5 years ago

Might be of interest to you:

The gist of the article is about how we limit our potential to get our head around a subject well within our reach because we have this bias-based assumption that the subject is difficult:
http://lesswrong.com/lw/5a9/learned_blankness/

0
bekathwia
bekathwia

Reply 5 years ago

Interesting article!

0
The_Good_Dev
The_Good_Dev

1 year ago

Cool! I might get into circuts because of you amazing posts.

0
jeff.verive
jeff.verive

4 years ago on Introduction

These are definitely common mistakes, and your suggestions are excellent. I’d like to add that the process is frequently iterative; just because a schematic is available online doesn’t mean that the circuit is robust. Luckily there are fairly knowledgeable people in most of the major forums, and these folks can be very helpful if/when a circuit doesn’t work as expected.

0
Seo10
Seo10

5 years ago

I have a couple of projects I would love todo. On the surface they do not look that complicated. I am however 75 and I also know, as you said, if I get into it and I get overwhelmed If 'lol set it aside and never finish it. Sometimes It's think old dogs can't learn. New tricks.

0
tdolan001
tdolan001

Reply 5 years ago

I agree Paul W. is an excellent YouTuber. I have gone most of all his Arduino shows.

0
Basho317
Basho317

5 years ago

As a recent retiree, I decided to learn a new skill. Electronics. I bought heaps of sensors, I'm embarrassed to mention how many different stepper motors I have bought, soldering systems, adjustable power sources and on and on.

I have yet to make anything work. I really appreciate your instructable, I'm off to the hall of mirrors.

0
NeilM29
NeilM29

5 years ago

My method is to keep things simple and build it up in stages. Start with a basic arrangement that works then save it. You can then add the next stage and if it all goes horribly wrong you can always go back to your previous design and work from there. Keep adding stages until you have something amazing! Also don't be afraid to copy or adapt someone elses ideas.

0
JohnW51
JohnW51

Reply 5 years ago

I'm a retired electronics engineer with 40+ years of experience in system design and some programming. What you describe is EXACTLY how engineers go about designing and developing a project. It would be next to impossible to design an entire complicated piece of machinery and test it in final form without making the "building blocks" one at a time and testing each, then going on to gradually link them together into the final working product. This can literally take years for a very large, complex project.

0
TGit-Tech
TGit-Tech

Reply 5 years ago

GRADUALLY link them together into the final working product. I still struggle with this and do a lot of refactoring in an effort to create a more perfect model. Can't seem to find the ideal "flowchart" without many refactor attempts. If theirs a secret to this - please share.

0
AndrewA167
AndrewA167

Reply 5 years ago

I want to add here that even for small development like embedded programming of 8-bit microcontrollers, using git or some other version control system should be embraced for projects; that way, you can always branch and/or roll back as needed.

0
aeroman2010
aeroman2010

5 years ago

Thanks for these points