Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Hardware Hacking  and ArduinosHoward Mao and Mason Silber
Downloading the Arduino IDE● Go to www.arduino.cc/en/main/software  ○ Download whichever software fits your Operating    S...
What you have in front of you:●   Arduino Duemilanove●   USB Cable●   Breadboard●   Box of jumper wires●   4 1k-ohm resist...
LED● Light-emitting Diode● Produces light when current flows through● Current can only flow one way
Rules for LEDs● Always use inline resistor● Make sure direction is right (long pin is +)
Digital OutputVoltage can be HIGH (+5 V) or LOW (0 V)pinMode(pin, OUTPUT) sets pin to outputdigitalWrite(pin, HIGH) sets v...
Breadboards              ● Red channel for power              ● Blue channel for ground              ● Slots on horizontal...
Basic Arduino Program Structurevoid setup(){   //All initial settings go here}void loop(){   //Runs indefinitely after set...
Lab 1: LED sweep● Connect LEDs to Arduino pins 8, 9, 10, 11● Turn only one on at a time● Sweep left and then right
"Analog Output" : PWM● Higher voltage gives brighter LED● Use PWM to approximate lower voltages● More time spent high (dut...
Lab 2: Analog LED Sweep● Sweep left and right as before● But keep a trail of dimmer LEDs behind● Divide the level of secon...
Voltage Division         Vout = R2 / (R1 + R2) * Vin
Analog Input●   Arduino has an Analog-to-Digital Converter●   Pins A0 - A5●   Use analogRead(pin) to get voltage level●   ...
Lab 3: Variable Speed● Use potentiometer (variable resistor) and  resistor to form variable voltage divider● Connect outpu...
Buttons and Switches● Two kinds of switches  ○ Single Throw - open or closed  ○ Double Throw - one branch or another● Clos...
Pull-up Resistors● Open switch with no voltage driver is an  antenna, not necessarily ground● Use pull-up resistors when c...
Interrupts● Tell the Arduino that a digital input has  changed● attachInterrupt(interrupt, function, mode)  sets function ...
Lab 4: Pause Button● Connect push button to Arduino pin 2● Set pin mode to INPUT_PULLUP● Attach interrupt for pin 2● When ...
Congratulations! You did it!
Some safety rules to remember● Do not use very high voltages  ○ microcontrollers like Arduino use either 5 V or 3.3 V● Do ...
Learning More● Arduino website (http://arduino.cc) has many  good tutorials and resources
The EndHave fun at HackNY
Upcoming SlideShare
Loading in …5
×

Hardware Hacking and Arduinos

513 views

Published on

Presentation from ADI's pre-HackNY hardware-hacking workshop

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Hardware Hacking and Arduinos

  1. 1. Hardware Hacking and ArduinosHoward Mao and Mason Silber
  2. 2. Downloading the Arduino IDE● Go to www.arduino.cc/en/main/software ○ Download whichever software fits your Operating System● Linux users: find the "arduino" package in your distros repository● OSX users: make sure to also install USB FTDI drivers ○ http://www.ftdichip.com/Drivers/VCP.htm
  3. 3. What you have in front of you:● Arduino Duemilanove● USB Cable● Breadboard● Box of jumper wires● 4 1k-ohm resistors (Brown-Black-Red)● 1 100k-ohm resistor (Brown-Black-Yellow)● 1 100k-ohm potentiometer● 4 Light Emitting Diodes (LEDs)● 1 push button switch
  4. 4. LED● Light-emitting Diode● Produces light when current flows through● Current can only flow one way
  5. 5. Rules for LEDs● Always use inline resistor● Make sure direction is right (long pin is +)
  6. 6. Digital OutputVoltage can be HIGH (+5 V) or LOW (0 V)pinMode(pin, OUTPUT) sets pin to outputdigitalWrite(pin, HIGH) sets voltage highdigitalWrite(pin, LOW) sets voltage low
  7. 7. Breadboards ● Red channel for power ● Blue channel for ground ● Slots on horizontal channels all connected together internally ● Except break in middle of board ● Bridge two unconnected lines of breadboard to build your circuit
  8. 8. Basic Arduino Program Structurevoid setup(){ //All initial settings go here}void loop(){ //Runs indefinitely after setup has completed}
  9. 9. Lab 1: LED sweep● Connect LEDs to Arduino pins 8, 9, 10, 11● Turn only one on at a time● Sweep left and then right
  10. 10. "Analog Output" : PWM● Higher voltage gives brighter LED● Use PWM to approximate lower voltages● More time spent high (duty cycle) means higher average voltage● analogWrite(pin, level) sets PWM duty cycle● Levels are from 0 to 255 (8 bits) Duty Cycle = th / T th T
  11. 11. Lab 2: Analog LED Sweep● Sweep left and right as before● But keep a trail of dimmer LEDs behind● Divide the level of secondary LEDs down by two after each step
  12. 12. Voltage Division Vout = R2 / (R1 + R2) * Vin
  13. 13. Analog Input● Arduino has an Analog-to-Digital Converter● Pins A0 - A5● Use analogRead(pin) to get voltage level● Levels go from 0 to 1023 (10 bits)
  14. 14. Lab 3: Variable Speed● Use potentiometer (variable resistor) and resistor to form variable voltage divider● Connect output of voltage divider to pin A0● Read output voltage and use it to control delay time
  15. 15. Buttons and Switches● Two kinds of switches ○ Single Throw - open or closed ○ Double Throw - one branch or another● Closed switch has 0 resistance ○ Acts as a wire● Open switch has infinite resistance ○ No current can flow
  16. 16. Pull-up Resistors● Open switch with no voltage driver is an antenna, not necessarily ground● Use pull-up resistors when combining single- throw switches and digital logic
  17. 17. Interrupts● Tell the Arduino that a digital input has changed● attachInterrupt(interrupt, function, mode) sets function to be run on interrupts● Interrupt 0 -> pin 2, Interrupt 1 -> pin 3● Modes are CHANGE, RISING, FALLING, LOW
  18. 18. Lab 4: Pause Button● Connect push button to Arduino pin 2● Set pin mode to INPUT_PULLUP● Attach interrupt for pin 2● When button pressed (switch closed), pause the sweeping● When button released (switch open), resume the sweeping
  19. 19. Congratulations! You did it!
  20. 20. Some safety rules to remember● Do not use very high voltages ○ microcontrollers like Arduino use either 5 V or 3.3 V● Do not short power to ground● Do not touch small resistor (< 100 Ohm) after voltage is applied ○ power is inversely proportional to resistance ○ power in resistor is dissipated as heat ○ small resistor + normal voltage = hot! hot! hot!● Make sure directional components are in right direction
  21. 21. Learning More● Arduino website (http://arduino.cc) has many good tutorials and resources
  22. 22. The EndHave fun at HackNY

×