Tip for beginners: Avoiding demotivation in the first step with Arduino [stub]

You heard about Arduino and got excited to it. You ordered one and started to play with it. You can not make it run as expected for the first time. You feel frustrated, got demotivated.
That is what many beginners met when getting started with Arduino.

Below are tips that help you avoid the above scenario:

Let's see reasons why. Before that, I would like to clarify that: everything exists for one or some reasons. it is not useless in every cases. The scope of this post is for beginners who are going to get started with Arduino.

Use the official Arduino board
There is no concept "fake Arduino board", "clone Arduino board". That is because Arduino is open-source. However, there is concept "official Arduino board" and "unofficial Arduino board".
You may be lured by unofficial Arduino board because it is cheaper. That is problem. To make it cheaper, some electronic components is replaced. This may cause the following problems:

  • It is not supported by Arduino IDE. To use it, you have to install external driver. This frustrates you, takes your time and may not work
  • It may not fully function

Spending extra small amount money on an official Arduino board can save you from frustration.

Another reason to use official Arduino boards: The Arduino team has been spending a lot of time and effort to maintain the many things related to Arduino open-source. Buy official Arduino board to support Arduino team, Motivate them to create more great things.

Use LCD I2C instead of bare LCD
Arduino IDE comes with an example of LCD display. However, the example is for bare LCD, which you need to do a lot of wiring with breadboard. You may got the following mistakes with wiring:

  • Wrong pin position
  • Wrong pin order
  • Unstable connection on breadboard

Fortunately, LCD I2C can make it easier. With just 4 wires, you can connect it to Arduino easily, even without breadboard. Arduino IDE does not provide example code for LCD I2C. However, you can learn it on Arduino - LCD I2C tutorial

Do NOT start with big project. Start with something small
If the project you want to do is big, divide it to small projects, do one by one, and then combine them.
I highly recommend you get started by the simplest program Hello World. program that print "Hello World" to Serial Monitor.

If any readers know other tips, please comment, I will add it to the list

2 Likes

I would suggest that you modify that LCD tutorial or make a different one that uses the hd44780 library. The hd44780 library will automatically detect the backpack I2C address and the backpack to LCD pin mapping. That makes it much easier to get the LCD to work out of the box. The hd44780 library is available via the Arduino IDE library manager.

3 Likes

Thank you, I noted it!

Hi, @IoT_hobbyist
I gather that

is your site.
Looks very nice, easy to read, keep up that format of line spacing and not too garish colours, the "pastel" colours work well.

Tom.. :smiley: :+1: :+1: :+1: :coffee: :australia:
PS, What I would add is a standard schematic with each Fritzy type diagram, this free online magazine does a great job with it.

1 Like

Dear @TomGeorge
Yes, It is my site.
Thank you and @groundFungus very much for your all valuable suggestions.
I had plan to update all site with your suggestions. It will take time.

My tip:
Start by using Strings for text processing as per the Arduino Documentation.
Can use more memory, but won't crash your UNO even if you run out of memory.

It's a fact of life on this forum that there will be at least one post each day where a beginner is having an issue with timing. This then resolves to the use of delay() and the numerous follow-on admonitions not to use it. Very often the poster has written many many lines of code for their project - which then need to be redone using millis() timing.

Suggest that the new user go ahead and run the standard blink sketch, just to prove that the Arduino can indeed do things on a timed basis, then duplicate that using millis(). You could include your own take on using millis() or any selection of links to the myriad examples and tutorials online.

Getting comfortable with the millis() approach at this early stage will avoid much frustration and wastage of time later, and, it's always useful.

IMHO

3 Likes

Do you guarantee that? :slight_smile:

See https://www.forward.com.au/pfod/ArduinoProgramming/ArduinoStrings/index.html for the example outOfMemory test sketches

In my opinion you should add a warning to post #6. You need to know what you are doing. The Arduino reference does not tell you how do use Strings safely.

From the linked page:

  1. Do not use the String + operator at all,

Is the first thing that new users do. And they do it a lot.

1 Like

Your link is useful, but do not contains something new.

If the code run out of memory - perhaps it won't crash, but anyway it won't work as intended. And using the String class you more likely faced with memory shortage rather than using the char arrays.

Not crashing means beginners can use print to debug.
That is not an option when you mis-code with char arrays.

amen

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.