CR101 Tutorial – Class 1

Welcome to the first lesson of CR101. In this tutorial, we’ll be introducing CarduBlock and how to program with LEDs and buttons.

What is Electricity?

A diagram of a simple electrical circuit.

Electricity is the flow of electrons – negatively charged particles – around a closed circuit. A circuit must have a power source and a load – the power source is exactly that, while the load is what actually uses the electricity. A load can be anything from an LED light to a buzzer – anything that converts the circuit’s electrical energy into another form like light or sound is a load. A circuit can have multiple loads. Meanwhile, the circuit itself serves as a path for the electrons to take.

A picture of the Arduino board.

Your Arduino board can serve as a power source, allowing us to provide power to whatever components you might be using.



The CAROBOT SwissCHEESE is the piece of equipment that you are going to be using for this course – and no, it’s not edible, so don’t even try it.

The SwissCHEESE is an add-on board for the Arduino Uno which features eight output ports, 6 input ports, and two motor drivers, which make adding modules a lot easier. To make things even simpler, we’ll be using the CarduBlock graphical programming software for Arduino – a simplified version of Arduino’s ArduBlock, optimized for the SwissCHEESE.

The board has a port for the included USB connector cable – the USB end goes into the computer, and the other goes into the SwissCHEESE. You must connect the board to the computer if you want to upload any of your programs. Always remember to unplug the USB cable before plugging anything into the board, to eliminate the risk of being shocked.

Tip: Input pins are for anything sending signals into the board (eg. buttons, sensors), and output pins are for anything that the board sends signals to (eg. LEDs, motors). Don’t mix them up!

A diagram labelling the input and output pins on the CAROBOT SwissCHEESE.

Using CarduBlock

First of all, plug in your board. There are two things that you absolutely must do before trying to upload your code to Arduino .

A screenshot of how to find the Port option in the Tools menu.
  1. Go to the Tools menu at the top of the screen and select Board. Ensure that your board is set to Arduino/Genuino Uno.
  2. Go to the Port option in the Tools menu. There should be a COM_# option (the number doesn’t matter). Make sure it’s selected before you try uploading your code.

If either of these have not been done, your programs won’t upload. On the flip side, if your programs are having upload errors, you now know the first place to look.

To open CarduBlock, go to the Tools menu and click on the CarduBlock Edu option. It should take you to a (mostly) blank screen.

A screenshot labelling the bins and sketch area of the CarduBlock interface.

The left side of the interface has several “bins” in it. From these bins, you can drag and drop blocks into the right side of the interface, which is your actual sketch/program. By attaching blocks together, you can create programs. If you need to delete blocks, drag and drop them back into the bins section.

Tip: You can right click blocks to select a “Clone” option. This helps a lot when doing repetitive code, like for blinking lights.

Project 1: Blinking LED

Always disconnect the power (USB cable) when wiring electronics!

1. Use one of the blue/black/red cables to connect an LED to the O0 pin on your board.

2. Check if your sketch has a loop block. Your code needs one to function, but also can’t have more than one. If you don’t have one, open the Control bin and find it.

The CarduBlock "loop" block.

3. From the red CAROBOT SwissCHEESE bin, drag and connect an LED block into the loop. Make sure the pin number on the block is the same as the pin you plugged your LED into!

Adding an LED block into the loop.

4. From the control bin, drag and drop a delay MILLIS below the LED block. This tells our LED how long to turn on for, in milliseconds. The delay is 1000 ms (1 second) by default, and you can leave it at that for now.

Adding a "delay MILLIS" block below the LED block.

5. Repeat the above process, putting the new LED and delay blocks underneath the ones that are already there. This time, set the status of the new LED block to OFF.

A repeat of the code from above, this time with the LED block status set to OFF.

6. Connect the USB cable to your board.

7. Go to the top of the CarduBlock interface and hit Upload to Arduino. If you’ve done it correctly, the LED should turn on for one second, turn off for one second, and repeat that indefinitely.

The Upload to Arduino button.

CHALLENGE: Try to make your LED signal “SOS” in Morse code!
(Hints: S is three short blinks, and O is three long blinks. Your blinks should be 100 ms for a short blink, 300 ms for a long blink. Letters should be 300 ms apart and blinks should be 100 ms apart.)

Morse code for the letters "S" and "O".

Project 2: Multiple LEDS

CR101 Tutorial - Class 1

Always disconnect the power (USB cable) when wiring electronics!

The CarduBlock code required for Project 2.

1. Use more wires to attach two more LEDs to pins O1 and O2.

2. Repeat the steps used for project 1. You should have 6 LED blocks and 6 delays after you finish this.

3. For the third and fourth LED blocks, set the pin number to O1. For the fifth and sixth ones, set the pin number to 02.

4. Plug in the board and upload the sketch to Arduino. If done right, the three LEDs should blink one after another.

5. Don’t delete the code – you’ll need it for the next project.

CHALLENGE: Try to make three LEDs blink like a traffic light! The red light should be on for a while, before turning to green for a short time. Once the green light’s time is up, it should turn yellow for a few seconds, then turn back to red.

A visual of a traffic light.

Project 3: Buttons and if statements

Decision making is an extremely important part of programming. After all, how else is your program going to know how to react in situations where you want it to? If statements are the first step to programming decision making – essentially, they ask your program a yes/no question, and if that question’s answer is yes, it’ll perform a task. If/else blocks take this a step further by telling your program to perform a different task if the question’s answer is no, but that’s for a later time.

For now, you’ll be learning how to program a button to work with your LEDs.

CR101 Tutorial - Class 1

Always disconnect the power (USB cable) when wiring electronics!

1. Use a wire and connect a button to the I0 pin on your board. Remember that a button is an input, so it has to be plugged into an input pin and not an output pin.

2. From the yellow Control bin, find the if block and drag it into the loop.

The CarduBlock "if" block.

3. From the red CAROBOT SwissCHEESE bin, drag a Button block into the test slot of the if statement. This is the condition that the block will be testing for – whether or not the button is pressed.

Adding a Button block into the test slot of the "if" block.

4. Take the code from project 2 and put it into the then slot of the if statement.

The code from Project 2 inserted into the then slot of the "if" statement.

5. Plug in your board and upload it to Arduino. The LEDs should be off at first, but will flash in sequence when you press the button.


  1. Change your code so the green LED will normally be ON, but once you press the button, the LEDs will blink in some order.
  2. Change your code one more time so that the red LED will normally be ON, but once you press the button, it changes to the green LED, then after a while it changes to the yellow LED, and then back to red .

That’s all for this tutorial! Stay tuned for more online course materials coming soon!