Microprocessors Tutorial 1: Arduino Basics
Agenda 1. Arduino Hardware 2. Arduino Software 3. MAKE: Blink 4. Electronics 5. MAKE: LED control 6. Analog 7. MAKE: Servo Control 8. MAKE: Volume control 9. Links
Arduino Hardware Reset button 14 Digital Pins (6 PWM) USB ATMega 328 Power USB Voltage Regulator ATMega 328 SDA/SCL 6 Analog Pins Powering the board
Arduino Software Menu bar: set device, port, find examples Code: setup(), set pin direction pinMode(pin, IN/OUTPUT) loop(), set pin value with digitalWrite(led, HIGH/LOW) Or get pin value with digitalRead(pin) Buttons: verify and upload code -set device under tools> boards -set port before uploading (in tools) -sketches r for LATER, write your own code! Code for BLINK uses DIGITAL methods Connect arduino, if windows not found find driver in DEVICE MANAGER, see port, then upload
MAKE: Blink Using built in LED, so no further electronics needed! Connect Arduino Windows driver found? Correct port? Upload code from Example -set device under tools> boards -set port before uploading (in tools) -sketches r for LATER, write your own code! Code for BLINK uses DIGITAL methods Connect arduino, if windows not found find driver in DEVICE MANAGER, see port, then upload
Electronics Breadboard: vertical connections, horizontal buses LEDs: polarized, long == + Resistor: Color-coded. Need one for LED Push Button: completes circuit only while pushed. Use a pull down resistor! LED res: ohms law 5v , 20mA Pulldown: floating when no tpressed
MAKE: LED control Hardware Connect buses to bread board, 5v and GND 2. Connect LED, pin->220ohm -> LED+ ->GND 3. Connect button, 5v ->button ->10kohm ->GND before res ->pin Dont need arduino for this, but for educational purposes
MAKE: LED control Software Declare 2 pins outside and set direction in setup() Read button state If button is on, write desired output to LEDs
MAKE: LED control CHALLENGES: (╯°□°)╯︵ ┻━┻ Ask the user for a natural number between1-6 and then turn that LED on Hint: you can get input via Serial.read() LED’s should flash repeatedly after pressing the button, and should stop after the second press Hint: Boolean Red LEDs start ON, after holding the button for 3 seconds, the green LEDs turn on Ask for two inputs and Make a simple adder Hint: Add the two numbers together Convert the result from integer to binary The largest number you can show with 6 LEDs in binary is 111111 = 63 in decimal
Analog Digital: 0-1, On/Off LEDs, switches digitalRead(), digitalWrite() Analog: 0-1023 Potentiometer, sensor, motors AnalogRead(), analogWrite() to pin +5v Potentiometer: variable resistance
MAKE: Servo Controller Connect the Servo (Don’t forget to import the servo library and make an instance of the Servo class) Connect the Potentiometer Read the Value from the potentiometer Map that value to a number between 0 to 180 Take the new range (0-180) and use it as an input for the servo to rotate it Hint: use attach(), write()
Things to Consider: NEVER connect a motor directly to the Arduino (Why?) Use a switch (transistor) or a relay to control ALWAYS refer to the datasheet of the components When in doubt…..GOOGLE!
MAKE: Volume Indicator Hardware Add more LEDs, each going to a different pin Connect potentiometer, center connection to pin We will b using only 4 leds i think
MAKE: Volume Indicator Software Add LED pin variables and set direction Add pot pin, analog pin don't need direciton Get pot value Scale it using map(number, origStart, origEnd, scaledStart, scaledEnd) If pot level is higher than LED indicator, write desired output to LED We will b using only 4 leds i think Imagine replacing input to a microphone, or headphone jack!
Useful Links Arduino Examples http://arduino.cc/en/Tutorial/HomePage MAKE projects http://makezine.com/arduino/ http://makezine.com/category/electronics/arduino/?post_type=projects Adafruit We will b using only 4 leds i think Imagine replacing input to a microphone, or headphone jack!
academics@ieee.concordia.ca ieee.concordia.ca Questions? Comments? Suggestions? academics@ieee.concordia.ca ieee.concordia.ca