SlideShare a Scribd company logo
Re-programming the Simon Says
with Arduino
Linz Craig, Brian Huang
arduinoSimon.ppt
Agenda
• About us / Introductions
• Software Installation
• What can it do? Who cares?
• Blink Sketch  Disco Lights
• Using Variables
• If() statement  reading buttonPress
• Analog Sensors  Fading
• Making Sound
About Us
SparkFun Electronics is all about creation,
innovation and sharing information. We
want to get you excited about cutting edge
electronics technology with our hands on
educational kits.
Arduino Board
“Strong Friend” Created in Ivrea, Italy
in 2005 by Massimo Banzi & David Cuartielles
Open Source Hardware
Atmel Processor
Coding is accessible (C++, Processing, ModKit and MiniBloq)
Arduino Software Installation
Open Source
Free
Available on-line with resources at:
www.arduino.cc
What can it do?
•Great for prototyping ideas
•Access to multiple I/O
•Drive motors, turn on lights,
trigger controls.
•Low Power requirements
•Flexible / Open-source
Who cares?
Hackers / Makers
Engineers
Artists
Musicians
Kids!
Teachers!!
You!!!
Setup Board Type
Tools → Board → Arduino Uno
Setup Serial COM Port
Tools → Serial Port →
Notes:
PC –
Highest COM #
Mac –
/dev/tty.usbserial-A####xxx
Analog and Digital
• All Arduino signals are either Analog or
Digital
• All computers including Arduino, only
understand Digital
• It is important to understand the difference
between Analog and Digital signals since
Analog signals require an Analog to Digital
conversion
Input vs. Output
Everything is referenced from the perspective of the
microcontroller.
Inputs is a signal going into the board.
Output is any signal exiting an electrical system
• Almost all systems that use physical computing will
have some form of output
• Often – Outputs include LEDs, a motor, a servo, a
piezo element, a relay and an RGB LED
Basic Program
Two required routines /
methods / functions:
void setup()
{
// runs once
}
void loop()
{
// repeats forever!!!
}
upload
Let’s get to hacking…
Project #1 – Blink
“Hello World” of Physical Computing
Psuedo-code – how should this work?
Turn
LED ON
Wait
Turn
LED
OFF
Wait
Rinse &
Repeat
Three commands to know…
pinMode(pin, INPUT/OUTPUT);
ex: pinMode(13, OUTPUT);
digitalWrite(pin, HIGH/LOW);
ex: digitalWrite(13, HIGH);
delay(time_ms);
ex: delay(2500);
LED1 = ~3;
LED2 = ~5;
LED3 = ~10;
LED4 = 13;
Can you figure out which LED is tied to
which pin? Write down a few notes in your
notebook!
3
5
13
LED Pin Configurations
10
Output is always Digital
To output a signal that pretends to be Analog
use this code:
analogWrite (pinNumber, value );
Where pin is one of the analog output pins: 3,
5, 6, 9, 10, 11
Where value is a number ranging from: 0 –
255.
Output is always Digital
(ON or OFF)
Using a Digital signal that pretends to be an Analog
signal is called Pulse Width Modulation (PWM)
By varying the duty cycle, we can “fake” an analog
signal output.
PWM is available on Arduino pins # 3, 5, 6, 9, 10, and
11
P.W.M. Signal @ 25% P.W.M. Signal @ 75% P.W.M. Signal rising
SIMON_2b_BLINK
Using Variables
To clean-up code, for read-ability, and flexibility
– we can create placeholders in code.
Example:
int ledPin = 3;
void setup(){
pinMode(ledPin, OUTPUT);
}
void loop(){
digitalWrite(ledPin, HIGH);
}
Digital Input
int button_state = digitalRead(ButtonPin);
Value will be either: HIGH or LOW
Reading a button press
Button Input is normally
HIGH – when you press
it, you pull it LOW.
The Code:
int buttonPress = digitalRead(2);
Activating the Internal Pull-up
Resistor
pinMode(pin, INPUT_PULLUP);
ex: pinMode(2, INPUT_PULLUP);
Notes:
BUTTON1 = 2;
BUTTON2 = 6;
BUTTON3 = 9;
BUTTON4 = 12;
BUTTON1 = 2;
BUTTON2 = 6;
BUTTON3 = 9;
BUTTON4 = 12;
Can you figure out which Button is tied to
which pin? Write down a few notes in your
notebook!
2
6
12
Button Pin Configurations
9
Conditional Statements
If…
General Use
if(condition)
{
// do this
}
Example
if(button_State==HIGH)
{
digitalWrite(ledPin,
HIGH);
delay(300);
digitalWrite(ledPin,
LOW);
delay(300);
}
Digital Input
• To connect digital input to your Arduino use Digital
Pins # 0 – 13 (Although pins # 0 & 1 are also used
for serial)
• Digital Input needs a pinMode command:
pinMode ( pinNumber, INPUT );
Make sure to use caps for INPUT
• To get a digital reading: digitalRead ( pinNumber );
• Digital Input values are only HIGH (On) or LOW (Off)
Last bit… the buzzer
SIMON_3_BUZZER
Final command to know:
tone(pin, freq, duration);
pin – the OUTPUT pin the buzzer is
connected to.
freq – unsigned int (0 … 65,535)
duration – unsigned long (0 … 2^32 - 1)
Buzzer Pins
The Buzzer is connected between pins D4
and D7.
You must set both pins as OUTPUTs –
pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
Use tone(4, 440); to generate a 440 Hz
sound.
Musical Notes / Frequencies
Note Frequency (Hz)
C4 261
C#
4/Db
4 277
D4 293
D#
4/Eb
4 311
E4 329
F4 349
F#
4/Gb
4 369
G4 392
G#
4/Ab
4 415
A4 440
A#
4/Bb
4 466
B4 493
Note Frequency (Hz)
C5 523
C#
5/Db
5 554
D5 587
D#
5/Eb
5 622
E5 659
F5 698
F#
5/Gb
5 739
G5 783
G#
5/Ab
5 830
A5 880
A#
5/Bb
5 932
B5 987
Simon DiscoMode
• Array variables
• custom functions
• buzz(tone_id);
• change_led();
Questions?
www.sparkfun.com
6175 Longbow Drive, Suite 200
Boulder, Colorado 80301
Ad

More Related Content

Similar to arduinoSimon.ppt (20)

Intro to Arduino Revision #2
Intro to Arduino Revision #2Intro to Arduino Revision #2
Intro to Arduino Revision #2
Qtechknow
 
Arduino اردوينو
Arduino اردوينوArduino اردوينو
Arduino اردوينو
salih mahmod
 
Arduino intro.pptx
Arduino intro.pptxArduino intro.pptx
Arduino intro.pptx
SanthanaMari11
 
Powerful Electronics with Arduino
Powerful Electronics with ArduinoPowerful Electronics with Arduino
Powerful Electronics with Arduino
Abdallah Hodieb
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Luki B. Subekti
 
Arduino slides
Arduino slidesArduino slides
Arduino slides
sdcharle
 
Arduino Workshop Slides
Arduino Workshop SlidesArduino Workshop Slides
Arduino Workshop Slides
mkarlin14
 
Aurdino presentation
Aurdino presentationAurdino presentation
Aurdino presentation
C.Vamsi Krishna
 
Arduino-workshop.computer engineering.pdf
Arduino-workshop.computer engineering.pdfArduino-workshop.computer engineering.pdf
Arduino-workshop.computer engineering.pdf
AbhishekGiri933736
 
Cassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshopCassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshop
tomtobback
 
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and ArduinoNSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
Brian Huang
 
Arduino course
Arduino courseArduino course
Arduino course
Ahmed Shelbaya
 
arduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdfarduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdf
ssusere5db05
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Green Moon Solutions
 
teststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptxteststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptx
ethannguyen1618
 
Arduino Programming Basic
Arduino Programming BasicArduino Programming Basic
Arduino Programming Basic
LITS IT Ltd,LASRC.SPACE,SAWDAGOR BD,FREELANCE BD,iREV,BD LAW ACADEMY,SMART AVI,HEA,HFSAC LTD.
 
Arduino and Circuits.docx
Arduino and Circuits.docxArduino and Circuits.docx
Arduino and Circuits.docx
Ajay578679
 
Introduction to Arduino Microcontroller
Introduction to Arduino MicrocontrollerIntroduction to Arduino Microcontroller
Introduction to Arduino Microcontroller
Mujahid Hussain
 
Arduino Introduction PPT for school students
Arduino Introduction PPT for school studentsArduino Introduction PPT for school students
Arduino Introduction PPT for school students
stusanthosh5195
 
IOTC08 The Arduino Platform
IOTC08 The Arduino PlatformIOTC08 The Arduino Platform
IOTC08 The Arduino Platform
Eoin Brazil
 
Intro to Arduino Revision #2
Intro to Arduino Revision #2Intro to Arduino Revision #2
Intro to Arduino Revision #2
Qtechknow
 
Arduino اردوينو
Arduino اردوينوArduino اردوينو
Arduino اردوينو
salih mahmod
 
Powerful Electronics with Arduino
Powerful Electronics with ArduinoPowerful Electronics with Arduino
Powerful Electronics with Arduino
Abdallah Hodieb
 
Arduino slides
Arduino slidesArduino slides
Arduino slides
sdcharle
 
Arduino Workshop Slides
Arduino Workshop SlidesArduino Workshop Slides
Arduino Workshop Slides
mkarlin14
 
Arduino-workshop.computer engineering.pdf
Arduino-workshop.computer engineering.pdfArduino-workshop.computer engineering.pdf
Arduino-workshop.computer engineering.pdf
AbhishekGiri933736
 
Cassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshopCassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshop
tomtobback
 
NSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and ArduinoNSTA 2013 Denver - ArduBlock and Arduino
NSTA 2013 Denver - ArduBlock and Arduino
Brian Huang
 
arduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdfarduinocourse-180308074529 (1).pdf
arduinocourse-180308074529 (1).pdf
ssusere5db05
 
teststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptxteststststststLecture_3_2022_Arduino.pptx
teststststststLecture_3_2022_Arduino.pptx
ethannguyen1618
 
Arduino and Circuits.docx
Arduino and Circuits.docxArduino and Circuits.docx
Arduino and Circuits.docx
Ajay578679
 
Introduction to Arduino Microcontroller
Introduction to Arduino MicrocontrollerIntroduction to Arduino Microcontroller
Introduction to Arduino Microcontroller
Mujahid Hussain
 
Arduino Introduction PPT for school students
Arduino Introduction PPT for school studentsArduino Introduction PPT for school students
Arduino Introduction PPT for school students
stusanthosh5195
 
IOTC08 The Arduino Platform
IOTC08 The Arduino PlatformIOTC08 The Arduino Platform
IOTC08 The Arduino Platform
Eoin Brazil
 

Recently uploaded (20)

Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Building Connected Agents:  An Overview of Google's ADK and A2A ProtocolBuilding Connected Agents:  An Overview of Google's ADK and A2A Protocol
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Suresh Peiris
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
HusseinMalikMammadli
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
accessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electricaccessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electric
UXPA Boston
 
AI and Gender: Decoding the Sociological Impact
AI and Gender: Decoding the Sociological ImpactAI and Gender: Decoding the Sociological Impact
AI and Gender: Decoding the Sociological Impact
SaikatBasu37
 
Top Hyper-Casual Game Studio Services
Top  Hyper-Casual  Game  Studio ServicesTop  Hyper-Casual  Game  Studio Services
Top Hyper-Casual Game Studio Services
Nova Carter
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdfICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
Eryk Budi Pratama
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
Best 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat PlatformsBest 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat Platforms
Soulmaite
 
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdfGoogle DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
derrickjswork
 
DNF 2.0 Implementations Challenges in Nepal
DNF 2.0 Implementations Challenges in NepalDNF 2.0 Implementations Challenges in Nepal
DNF 2.0 Implementations Challenges in Nepal
ICT Frame Magazine Pvt. Ltd.
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Who's choice? Making decisions with and about Artificial Intelligence, Keele ...
Alan Dix
 
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Building Connected Agents:  An Overview of Google's ADK and A2A ProtocolBuilding Connected Agents:  An Overview of Google's ADK and A2A Protocol
Building Connected Agents: An Overview of Google's ADK and A2A Protocol
Suresh Peiris
 
Building the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdfBuilding the Customer Identity Community, Together.pdf
Building the Customer Identity Community, Together.pdf
Cheryl Hung
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
Multi-Agent AI Systems: Architectures & Communication (MCP and A2A)
HusseinMalikMammadli
 
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
論文紹介:"InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning" ...
Toru Tamaki
 
accessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electricaccessibility Considerations during Design by Rick Blair, Schneider Electric
accessibility Considerations during Design by Rick Blair, Schneider Electric
UXPA Boston
 
AI and Gender: Decoding the Sociological Impact
AI and Gender: Decoding the Sociological ImpactAI and Gender: Decoding the Sociological Impact
AI and Gender: Decoding the Sociological Impact
SaikatBasu37
 
Top Hyper-Casual Game Studio Services
Top  Hyper-Casual  Game  Studio ServicesTop  Hyper-Casual  Game  Studio Services
Top Hyper-Casual Game Studio Services
Nova Carter
 
Cybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and MitigationCybersecurity Threat Vectors and Mitigation
Cybersecurity Threat Vectors and Mitigation
VICTOR MAESTRE RAMIREZ
 
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdfICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
ICDCC 2025: Securing Agentic AI - Eryk Budi Pratama.pdf
Eryk Budi Pratama
 
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Kit-Works Team Study_아직도 Dockefile.pdf_김성호
Wonjun Hwang
 
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdfComputer Systems Quiz Presentation in Purple Bold Style (4).pdf
Computer Systems Quiz Presentation in Purple Bold Style (4).pdf
fizarcse
 
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptxIn-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
In-App Guidance_ Save Enterprises Millions in Training & IT Costs.pptx
aptyai
 
Best 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat PlatformsBest 10 Free AI Character Chat Platforms
Best 10 Free AI Character Chat Platforms
Soulmaite
 
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdfGoogle DeepMind’s New AI Coding Agent AlphaEvolve.pdf
Google DeepMind’s New AI Coding Agent AlphaEvolve.pdf
derrickjswork
 
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
MULTI-STAKEHOLDER CONSULTATION PROGRAM On Implementation of DNF 2.0 and Way F...
ICT Frame Magazine Pvt. Ltd.
 
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier VroomAI x Accessibility UXPA by Stew Smith and Olivier Vroom
AI x Accessibility UXPA by Stew Smith and Olivier Vroom
UXPA Boston
 
Ad

arduinoSimon.ppt

  • 1. Re-programming the Simon Says with Arduino Linz Craig, Brian Huang
  • 3. Agenda • About us / Introductions • Software Installation • What can it do? Who cares? • Blink Sketch  Disco Lights • Using Variables • If() statement  reading buttonPress • Analog Sensors  Fading • Making Sound
  • 4. About Us SparkFun Electronics is all about creation, innovation and sharing information. We want to get you excited about cutting edge electronics technology with our hands on educational kits.
  • 5. Arduino Board “Strong Friend” Created in Ivrea, Italy in 2005 by Massimo Banzi & David Cuartielles Open Source Hardware Atmel Processor Coding is accessible (C++, Processing, ModKit and MiniBloq)
  • 6. Arduino Software Installation Open Source Free Available on-line with resources at: www.arduino.cc
  • 7. What can it do? •Great for prototyping ideas •Access to multiple I/O •Drive motors, turn on lights, trigger controls. •Low Power requirements •Flexible / Open-source
  • 8. Who cares? Hackers / Makers Engineers Artists Musicians Kids! Teachers!! You!!!
  • 9. Setup Board Type Tools → Board → Arduino Uno
  • 10. Setup Serial COM Port Tools → Serial Port → Notes: PC – Highest COM # Mac – /dev/tty.usbserial-A####xxx
  • 11. Analog and Digital • All Arduino signals are either Analog or Digital • All computers including Arduino, only understand Digital • It is important to understand the difference between Analog and Digital signals since Analog signals require an Analog to Digital conversion
  • 12. Input vs. Output Everything is referenced from the perspective of the microcontroller. Inputs is a signal going into the board. Output is any signal exiting an electrical system • Almost all systems that use physical computing will have some form of output • Often – Outputs include LEDs, a motor, a servo, a piezo element, a relay and an RGB LED
  • 13. Basic Program Two required routines / methods / functions: void setup() { // runs once } void loop() { // repeats forever!!! } upload
  • 14. Let’s get to hacking… Project #1 – Blink “Hello World” of Physical Computing Psuedo-code – how should this work? Turn LED ON Wait Turn LED OFF Wait Rinse & Repeat
  • 15. Three commands to know… pinMode(pin, INPUT/OUTPUT); ex: pinMode(13, OUTPUT); digitalWrite(pin, HIGH/LOW); ex: digitalWrite(13, HIGH); delay(time_ms); ex: delay(2500);
  • 16. LED1 = ~3; LED2 = ~5; LED3 = ~10; LED4 = 13; Can you figure out which LED is tied to which pin? Write down a few notes in your notebook! 3 5 13 LED Pin Configurations 10
  • 17. Output is always Digital To output a signal that pretends to be Analog use this code: analogWrite (pinNumber, value ); Where pin is one of the analog output pins: 3, 5, 6, 9, 10, 11 Where value is a number ranging from: 0 – 255.
  • 18. Output is always Digital (ON or OFF) Using a Digital signal that pretends to be an Analog signal is called Pulse Width Modulation (PWM) By varying the duty cycle, we can “fake” an analog signal output. PWM is available on Arduino pins # 3, 5, 6, 9, 10, and 11 P.W.M. Signal @ 25% P.W.M. Signal @ 75% P.W.M. Signal rising SIMON_2b_BLINK
  • 19. Using Variables To clean-up code, for read-ability, and flexibility – we can create placeholders in code. Example: int ledPin = 3; void setup(){ pinMode(ledPin, OUTPUT); } void loop(){ digitalWrite(ledPin, HIGH); }
  • 20. Digital Input int button_state = digitalRead(ButtonPin); Value will be either: HIGH or LOW
  • 21. Reading a button press Button Input is normally HIGH – when you press it, you pull it LOW. The Code: int buttonPress = digitalRead(2);
  • 22. Activating the Internal Pull-up Resistor pinMode(pin, INPUT_PULLUP); ex: pinMode(2, INPUT_PULLUP); Notes: BUTTON1 = 2; BUTTON2 = 6; BUTTON3 = 9; BUTTON4 = 12;
  • 23. BUTTON1 = 2; BUTTON2 = 6; BUTTON3 = 9; BUTTON4 = 12; Can you figure out which Button is tied to which pin? Write down a few notes in your notebook! 2 6 12 Button Pin Configurations 9
  • 24. Conditional Statements If… General Use if(condition) { // do this } Example if(button_State==HIGH) { digitalWrite(ledPin, HIGH); delay(300); digitalWrite(ledPin, LOW); delay(300); }
  • 25. Digital Input • To connect digital input to your Arduino use Digital Pins # 0 – 13 (Although pins # 0 & 1 are also used for serial) • Digital Input needs a pinMode command: pinMode ( pinNumber, INPUT ); Make sure to use caps for INPUT • To get a digital reading: digitalRead ( pinNumber ); • Digital Input values are only HIGH (On) or LOW (Off)
  • 26. Last bit… the buzzer SIMON_3_BUZZER Final command to know: tone(pin, freq, duration); pin – the OUTPUT pin the buzzer is connected to. freq – unsigned int (0 … 65,535) duration – unsigned long (0 … 2^32 - 1)
  • 27. Buzzer Pins The Buzzer is connected between pins D4 and D7. You must set both pins as OUTPUTs – pinMode(4, OUTPUT); pinMode(7, OUTPUT); Use tone(4, 440); to generate a 440 Hz sound.
  • 28. Musical Notes / Frequencies Note Frequency (Hz) C4 261 C# 4/Db 4 277 D4 293 D# 4/Eb 4 311 E4 329 F4 349 F# 4/Gb 4 369 G4 392 G# 4/Ab 4 415 A4 440 A# 4/Bb 4 466 B4 493 Note Frequency (Hz) C5 523 C# 5/Db 5 554 D5 587 D# 5/Eb 5 622 E5 659 F5 698 F# 5/Gb 5 739 G5 783 G# 5/Ab 5 830 A5 880 A# 5/Bb 5 932 B5 987
  • 29. Simon DiscoMode • Array variables • custom functions • buzz(tone_id); • change_led();
  • 31. www.sparkfun.com 6175 Longbow Drive, Suite 200 Boulder, Colorado 80301
  翻译: