Arduino projects for kids + scratch

Hello there. My kid is very interested in programming and loves scratch so I decided to buy an Arduino starting kit for her.

I've done my research but some information is a bit confusing/contradicting to me. I would like to know what are the best options for using scratch with arduino (seems to be s4a or mblock....any considerations regarding those)?

Also if anyone has suggestions on easiest projects to start with for a young kid that would be great! I have found some that are totally doable but because she's young and still starting, the simpler the better.

Thanks in advance!

You can use those, but if your kid is young, the I don’t recommend an Arduino. I am fifteen, and I have always loved to code. However, a simple mistake in wiring can lead to fires and smoke (something we really do not want). I learned to code using Scratch, so just try teaching her that first.
If you and your child really want to do something like Arduino right now, get yourself a Lego Mindstorms EV3 kit (My parents got me the one with the set number 31313 a couple of years back). Those are easy for kids to learn and can be programmed with Scratch!

Look at projects which are evolved with lights, motors, timers, etc.

There are sketches in the IDE examples that expose the basics of working with code and electronics.

There quite a few YouTube videos re. Arduino.

Arduino links of interest.

How to use this forum:

Getting started:

Listing of downloadable 'Arduino PDFs' :
Either Google >>>- - - - > arduino filetype: pdf
[url=]arduino filetype: pdf - Google Search

Listing of downloadable 'C++ PDFs' :
Either Google >>>- - - - > C++ filetype: pdf
[url=]c++ filetype: pdf - Google Search

Arduino cheat sheet:

Watch these:
Arduino programming syntax:

Arduino arithmetic operators:

Arduino control flow:

Arduino data types:

Understanding Destructive LC Voltage Spikes:

Why MOSFET gate resistors:

Some things to read

LCD information:

Reading a schematic:

Language Reference:


How and Why to avoid delay():
[url=]Arduino Playground - HomePage

Demonstration code for several things at the same time.
[url=]Demonstration code for several things at the same time - Project Guidance - Arduino Forum

Part 1:

Part 2:

Part 3:

Sparkfun Tutorials:

Micro Controllers:

Useful links:
[url=]Useful links - check here for reference posts / tutorials - Programming Questions - Arduino Forum

Arduino programming traps, tips and style guide:
[url=]Gammon Forum

Arduino programming course:

Jeremy Blume:

Arduino products:


Making a library


Share tips you have come across, 700+ posts:

Debug discussion:

Frequently Asked Questions:

SMD soldering:
SMD soldering

Number 'type's.

  • boolean (8 bit) - simple logical true/false, Arduino does not use single bits for bool
  • byte (8 bit) - unsigned number from 0 to 255
  • char (8 bit) - signed number from -128 to 127. The compiler will attempt to interpret this data type as a character in some circumstances, which may yield unexpected results
  • unsigned char (8 bit) - same as 'byte'; if this is what you're after, you should use 'byte' instead, for reasons of clarity
  • word (16 bit) - unsigned number from 0 to 65535
  • unsigned int (16 bit)- the same as 'word'. Use 'word' instead for clarity and brevity
  • int (16 bit) - signed number from -32768 to 32767. This is most commonly what you see used for general purpose variables in Arduino example code provided with the IDE
  • unsigned long (32 bit) - unsigned number from 0 to 4,294,967,295. The most common usage of this is to store the result of the millis() function, which returns the number of milliseconds the current code has been running
  • long (32 bit) - signed number from -2,147,483,648 to 2,147,483,647
    float (32 bit) - signed number from -3.4028235E38 to 3.4028235E38. Floating point on the Arduino is not native; the compiler has to jump through hoops to make it work. If you can avoid it, you should. We'll touch on this later. Sparkfun.

You select the 'type' best suited for your variables.


  • your variable does not change and it defines a pin on the Arduino. const byte limitSwitchPin = 34;
  • since an analog variable can be 0 to 1023, a byte will not do, you can select 'int'. int temperature;
  • if your variable needs to be within -64 to +64 a 'char' will do nicely. char joystick;
  • if your variable is used for ASCII then you need type 'char', char myText[ ] = {"Raspberry Pie Smells"};
  • if your variable enables some code then boolean can be used. boolean enableFlag = false;
  • millis() returns the time in ms since rebooting, unsigned long currentTime = millis();

Oh, and have fun too :slight_smile: !

1 Like

Oh, it's not that bad. You have to do something pretty extreme (probably involving motors and battery packs) to get smoke.

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