![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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/1.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/2.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/3.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/4.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/5.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/6.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/7.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/8.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/9.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/10.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/11.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/12.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/13.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/14.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/15.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/16.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/17.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/18.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/19.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/20.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/21.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/22.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/23.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/24.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/25.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/26.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/27.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/28.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/29.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/30.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/31.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/32.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/33.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/34.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/35.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/36.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/37.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/38.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/39.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/40.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022042809/5f8d184ea7969b0c617ff862/html5/thumbnails/41.jpg)
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.