16. Arduino overview
(Atmega8U2)
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and
software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects
or environments.
The boards can be built by hand or purchased preassembled; the software can be downloaded for free. The
hardware reference designs (CAD files) are available under an open-source license, you are free to adapt
them to your needs.
17. Arduino specification
• Arduino Uno (2011)
• Microcontroller
ATmega328
• DC Current for 3.3V Pin
• Operating Voltage 5V 50 mA
• Input Voltage • Flash Memory 32 KB of
(recommended) 7-12V which 0.5 KB used by
bootloader
• Input Voltage (limits)
• SRAM 2 KB
6-20V
• Digital I/O Pins 14 • EEPROM 1 KB
• Analog Input Pins 6 • Clock Speed 16 MHz
• DC Current per I/O Pin
40 mA
19. Arduino code
• Code in a C-like high-level language (Wiring)
• Inbuilt functions to read and set digital and analog
inputs and outputs
• Includes libraries to perform common hardware
or software tasks
• Sketches
• Many language bindings:
• Flash & Flex, Processing, Python, Ruby, Java,C. C++,
Objective-C, .NET
25. Arduino IDE install
• Install Arduino 22 (http://www.arduino.cc/en/
Guide/HomePage)
• (Install USB driver)
• Select serial port
• Select board
• Examples: Blink
• Compile and upload process
• Write to Serialport
26. Blink modifications
1. Talk to the serial console
2. Experiment with intervals
3. Change 4. Try this!
pins
30. Basic electronics
• Current,Voltage and Power
• Voltage is measured in Volts (V) → V
• Current is measured in Amperes (A) → I
• Power is measured in Watts (W) → P
• Power = Current x Voltage (P = I x V)
• Arduino
• 5V (or 3.3V)
• 40mA (0.04A) output pin
• Direct current (DC) and alternating current (AC)
• Mains is nasty!
31. Basic electronics
• Electricity flow
• Path of least resistance
• All electrical energy must
be used
• Basic electrical circuit
• Components in series
• Same current, decreasing voltage
• Components in parallel
• Different current, same voltage
• Short circuit
33. Basic electronics
• Resistor
• Conductors, insulators and resistance
• Resist the flow of electricity (current)
• Precise control of electrical current
• Measured in Ohm (1Ω - 1MΩ)
• Symbol
• Colour-code
36. Basic electronics
• Resistor and resistance
• Resistors in series
• R = R1 + R2
• Resistors in parallel
• R = R1 x R2 / (R1 + R2)
37. Basic electronics
• Diodes and LEDs
• Diodes are polarised
• Electricity flows in one
direction
• Anode (+), Cathode (-)
• LED (Light-emitting diode)
38. Basic electronics
• Ohm’s law and current limiting
V
I R
Ohm’s triangle
R =V / I
I =V / R
V=IxR
• Data sheets are your friend!
43. Overview
• Digital pins
• Pull-up and pull-down resistors
• Analogue input pins
• Pulse with modulation (PWM)
• Other
• ICSP
• Interrupts
• I2C communication
• Analogue reference
44. Digital pins
• Pins 0-13 (GPIO pins)
• Either input our output (default to input)
• Can output 40 mA
• pinMode
• digitalWrite
45. Digital pins
• digitalRead (http://www.ladyada.net/learn/arduino/
lesson5.html)
46. Digital pins
• digitalRead
/*
* Switch test program
*/
int switchPin = 2; // Switch connected to digital pin 2
void setup() // run once, when the sketch starts
{
Serial.begin(9600); // set up Serial library at 9600 bps
pinMode(switchPin, INPUT); // sets the digital pin as input to read switch
}
void loop() // run over and over again
{
Serial.print("Read switch input: ");
Serial.println(digitalRead(switchPin)); // Read the pin and display the value
delay(100);
}
50. Digital pins
• What happens if we digitalRead a pin that is not connected?
• 20K internal pull-up resistor
• Serial pins 0 (RX) and 1 (TX). Connected to FTDI USB-to-TTL
• Pin 13 is different (input) (RES + LED)
• Analogue pins A0-A5 can be used as digital pins 14-19 (GPIO)
• Read up to 5V. Don’t fry your pin!
51. Analogue input pins
• Pins A0-A5
• 6 channel analog-to-digital (A/D) converter
• 10 bit resolution (from 0-5V to int 0-1023)
• 100 microseconds (0.0001 s) to read an analog input,
maximum reading rate is about 10,000 times a second.
• Pull-up resistor same as digital pins
• Unexpected readings?
• Has pin been set to input?
• Check pull-up resistor [digitalWrite(A0, HIGH); ]?
53. Pulse with modulation
• PWM used to create analogue output on digital pins
• Simulate voltage between 5V and 0V using square waves
(signal switching between on and off)
• Pins 3, 5, 6, 9, 10, and 11
55. Other pins
• ICSP (In Circuit Serial Programming) directly
program AVR micro-controllers
• I2C / TWI (Two-wire interface) communication
• Inter IC control
• Arduino analog input A4 = I2C SDA (serial data line)
• Arduino analog input A5 = I2C SCL (serial clock line)
• External interrupts
• Event-handling without polling
• Interrupt 0 (on digital pin 2) and 1 (on digital pin 3)
• Analogue reference
• Set analogue reference for ADC
58. Activity overview
• Pair up
• Use a switch & LED
• Use a poti & LED
• Design challenges: http://www.ladyada.net/learn/arduino/
lesson5.html
• Draw a circuit diagram
• Fade 2 LEDs
• Use multicolour LED
• http://www.arduino.cc/en/Reference/HomePage
• [Use your digital temperature sensor]