scratch for arduino lesson 2 – dimmer switch€¦ · slide 1 scratch for arduino lesson 2 –...

41
Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to time constraints.

Upload: others

Post on 03-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slide 1

Scratch for ArduinoLesson 2 – Dimmer Switch

Variables, Loops, and Light Shows*

Light Shows may be omitted due to time constraints.

Page 2: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 2

Light Control

● Today we will improve the Basic LED project by introducing dimmer effect

Page 3: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 3

Review LED Circuit

LED

Resistor

(0V)

(PIN)

When PIN is set to LOW (0V), there’s no voltage differential across circuit, so no current.

When PIN is set to HIGH (5V), voltage differential causes current to flow and light LED.

Page 4: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 4

Controlling Brightness

So, how can we control Brightness?

Change Resistor(not really programmable, but let’s revisit in the next lesson!)

Change Power But, all of our Output pins are Digital (On/Off)

We need PWM!!!

Page 5: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 5

What is PWM?

Pulse Width Modulation (PWM)● An efficient method to vary and control power● Used in various electrical systems

– Lights– Motors– Comms & others

Page 6: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 6

Change Power● We can On/Off or HIGH/LOW or 5V/0V

But, what if we wanted %50 power?

● Can’t set digital output to 2.5V….

● So, add Time to the equation!

Page 7: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 7

%50 Duty Cycle● Pick some Interval or Period (1 ms, or 1000 Hz)

● Set signal to HIGH ½ of the period (0.5 ms)

● Set signal to LOW rest of the period (0.5 ms)

● Run signal over and over...

5 V(HIGH)

(LOW)

Page 8: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 8

Duty Cycle

Page 9: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 9

Duty Cycle

Page 10: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 10

PWM Pins

The board usually indicates which pins have PWM built-in

support

In this case Pins 3,5,6,9,10,11

(see ‘~’)

All output pins are digital (LOW/HIGH), so we can only vary

power using something like the PWM method

● Today we’ll work with Pulse Width Modulation (PWM) ● Take note which pins support PWM

Page 11: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slide 11

Let’s Get Hands-On

(The fun part…?)

Page 12: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 12

Physical Connection

This end to computer

This end to Arduino

Some of the LED on the Arduino should light up after connection

Page 13: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 13

Start up mBlock

● Don’t forget mLink

● Then go to https://ide.mblock.cc

● File → New

Get rid of this guy

Add this one instead

Page 14: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 14

Connect with Arduino

● Switch to “Live” mode and click “Connect”

● Select a COM portYou may need to [x] “Show all connectable devices”

● Click “Connect”

Page 15: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 15

Connect with Arduino

● If appears, click on it!

Followed by and “Updates”

Page 16: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slide 16

Exercise 2a

Control LED Brightness

Page 17: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 17

Review LED Circuit

LED

Resistor (330 ohms)

(0V)

(PIN)

When PIN is set to LOW (0V), there’s no voltage differential across circuit, so no current.

When PIN is set to HIGH (5V), voltage differential causes current to flow and light LED.

Page 18: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 18

Set PWM on LED Pin

Find the Set-PWM-Output block under Pin.Set the Pin to the one which you connected your LED Long(+) leg.

(to see the reference for this block, right click “Help”)

Test it out!

Let’s use Keys 0-9 to set Brightness Levels.Find the When-Key-Pressed block under Control.

For starters, let’s deal with our limits – 0 (off) and 9 (full power)

Page 19: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 19

Challenges

0 255

For 3 levels – off, medium, high – we would use this key mapping...

‘0’ ‘1’ ‘2’

Key Pressed

PWM Level

127.5

Page 20: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 20

Set PWM on LED Pin

Test it out!

Let’s add 1 extra level for medium power.

0 for ‘0’

127.5 for ‘5’

255 for 9

LEDShould be lit

but dim

LEDShould be off

LEDShould be lit

brightly

Page 21: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 21

Challenges

0 255

What are the appropriate PWM levels for each Key Press ‘0’ - ‘9’?10 power levels

‘0’ ‘1’ ‘2’ ‘3’ ‘4’ ‘5’ ‘6’ ‘7’ ‘8’ ‘9’

Key Pressed

PWM Level

Page 22: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 22

Challenges

● Add code to control LED brightness levels using all ten digit (0-9) keys

● In your Student Handout– Note down the PWM levels you used for all 10 keys– Note down math formula to generate appropriate

PWM levels for each user input (0-9)● Generalize for N number of inputs

Page 23: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 23

Light Control

● Back to our dimmer effect...

● Can you use your program to create this effect?

Page 24: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 24

Light Control● Sort of...

If we want a smooth dimmer effect we need to run LED through all/many PWM levels 0-255

● But we don’t have enough keys or patience to press all of them, so let’s try something new!

Page 25: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slide 25

Exercise 2b

Create a Dimmer Effect

Page 26: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 26

Variables● First, Let’s create a new Variable.

A variable is a named piece of memory that stores information like numbers or strings. Its value can change, hence it is variable…

● Click on “Make a Variable”Under Variables menu

Page 27: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 27

Pick a meaningful Name

Doesn’t matter much for today, but keep it “For all sprites”

Variables

Page 28: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 28

Now we have a new variable!

These are helper function blocks associated with variables:

“set Var to 0” → “Var = 0”

“change Var by 1” → “Var = Var +1”

We will use those now.

Variables

Page 29: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 29

Let’s play with this variable...

We can change the value in a simple program, and see the Display change

Variables

To test, keep changing this value and clicking space key to change the variable.

Page 30: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 30

Light Control - Variable

We want to use the value in our program to change the PWM output of our LED pin

Any ideas how?

Page 31: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 31

What about the Dimmer Effect?

We Use Loops

Light Control - Loops

Page 32: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 32

For instance, let’s make a simple counter:

Light Control – Loops & Variables

See the variable value change:

Page 33: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 33

Dimmer Effect

● Instead of wait block, set the LED pin to the increasing PWM levels

Waits for a fraction of second..

Page 34: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 34

Dimmer Effect● For smoother effect, change to “Upload” mode

Can only use the When Arduino Starts up event now

Click Upload button when ready

Need a wait now, because local set PWM doesn’t wait.

Try different speeds.

Page 35: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 35

RESET to Restart

Press RESET button to restart Arduino, and rerun the uploaded program

Page 36: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slide 36

Exercise 2b

Create a Dimmer Effect

Page 37: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 37

Challenges● After trying various durations, note the

Wait Time that gave you the best dimmer effect in your Student Handout – You can also vary the PWM Level Step Size

● Extend the program to make dimmer effect run from low to high and back to low again

● Make the program run continuously like this:

Page 38: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 38

Re-Connect with Arduino

● Switch back to “Live” mode and click “Connect”

● Select a COM portYou may need to [x] “Show all connectable devices”

● Click “Connect”

Page 39: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 39

Connect with Arduino

● When appears, click on it!

Followed by and “Updates”

Page 40: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 40

Extra Challenges

● Convert your variable to a Slider and use it as a graphical Variable Dimmer Switch

● Create a Graphical Dashboard to control Lights(on/off buttons, slider dimmers, blink buttons)

● Use a physical button to act as a Toggle Dimmer Switch (on/off)

● Use multiple LEDs to create a Light Show with blinking, dimming, and any other effects you can muster

Page 41: Scratch for Arduino Lesson 2 – Dimmer Switch€¦ · Slide 1 Scratch for Arduino Lesson 2 – Dimmer Switch Variables, Loops, and Light Shows* Light Shows may be omitted due to

Slides available at: http://a9i.sg/huayi

Slide 41

Copyright

● Created by A Posteriori LLP● Visit http://aposteriori.com.sg/ for more

tips and tutorials● This work is licensed under a Creative

Commons Attribution-ShareAlike 4.0 International License.