95
Welcome to Workshop 88’s Arduino 301: Control the World! Please have your Arduino, IDE, and breadboard fired up and ready to go. ver 1.0 2/2/14

Welcome to Workshop 88’s

  • Upload
    kelli

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

Welcome to Workshop 88’s. Arduino 301: Control the World!. Please have your Arduino, IDE, and breadboard fired up and ready to go. ver 1.0 2/2/14. What we’re going to cover. Arduino pins: What you can connect directly For more muscle: Relays, Transistors - PowerPoint PPT Presentation

Citation preview

Page 1: Welcome to Workshop 88’s

Welcome to Workshop 88’s

Arduino 301:Control the World!

Please have your Arduino, IDE,and breadboard fired up and ready to go.

ver 1.0 2/2/14

Page 2: Welcome to Workshop 88’s

What we’re going to cover

• Arduino pins: What you can connect directly• For more muscle: Relays, Transistors• Solid state relays and 120VAC control• Movers: Servos, DC motors, Solenoids, Steppers• Bonus demo: BLDC motor intro

Some of this is Arduino, some basic electronics.

Page 3: Welcome to Workshop 88’s

Please Introduce Yourself!

• Name, job, school etc• Why you’re here• Programming in general, and with

Arduino in particular• Electronics experience: Digital?

Analog? AC house wiring?• Hobby stuff: Robots? RC vehicles?

Page 4: Welcome to Workshop 88’s

What we’re going to cover

• Arduino pins: What you can connect directly• For more muscle: Relays, Transistors• Solid state relays and 120VAC control• Movers: Servos, DC motors, Solenoids, Steppers

Some of this is Arduino, some basic electronics.

Page 5: Welcome to Workshop 88’s

Direct connect

• Arduino I/O pin hardware capabilities

Page 6: Welcome to Workshop 88’s

Direct connect

• Arduino I/O pin hardware capabilitiesAtmel AVR processor

Page 7: Welcome to Workshop 88’s

Direct connect

• Arduino I/O pin hardware capabilities

• 4 states– Output: HIGH: ~5V, source ~20 mA– Output: LOW: ~0V, sink ~20 mA– Input: Hi-Z, no pullup– Input: 38KΩ pullup to Vcc (5V often)

• Absolute Max V: Vcc + 0.5V

Atmel AVR processor

Page 8: Welcome to Workshop 88’s

Atmel AVR Pins: Output

Page 9: Welcome to Workshop 88’s

Atmel AVR Pins: Output

Page 10: Welcome to Workshop 88’s

Atmel AVR Pins: Input - Normal

Page 11: Welcome to Workshop 88’s

Atmel AVR Pins: Input - Pullup

Page 12: Welcome to Workshop 88’s

Atmel AVR Pins: Input - Button

Page 13: Welcome to Workshop 88’s

How do you know the details?

Look at the datasheet!

Page 14: Welcome to Workshop 88’s

Direct connect (Output!)

• LED (with resistor!)• Some input expecting a “logic level”• Opto isolator (looks just like an LED!)

Page 15: Welcome to Workshop 88’s

Direct connect: PWM

Digital output are either ON or OFF but a computer can turn them ON and OFF really fast.

If fast enough you get an effect in between ON and OFF.

Works great for LED brightness control.

Page 16: Welcome to Workshop 88’s

Direct connect: PWM

• The usual approach is called Pulse Width Modulation

• AVR chips support PWM only on certain pins.• Arduino does PWM by

analogWrite(pin,value).• Must do pinMode(pin, OUTPUT);• analogWrite() accepts 8-bit values (0-255).

Page 17: Welcome to Workshop 88’s

Direct connect: PWM

Page 18: Welcome to Workshop 88’s

Direct connect: PWM

(demo with scope)

Page 19: Welcome to Workshop 88’s

Direct connect: PWM LED lab

Run up 2 LEDs, fading up/down, 180° out of phase.

Page 20: Welcome to Workshop 88’s

Direct connect: PWM and LEDs

PWM is especially good for dimming LEDs since brightness is directly related to current.

Varying voltage to an LED+resistor doesn’t work well at low levels.

Page 21: Welcome to Workshop 88’s

Direct connect: PWM and LEDs

(demo LED with PWM v varied voltage using scope meters)

Page 22: Welcome to Workshop 88’s

Direct connect: logic level input

• “TTL” standard• Servos (we’ll cover those later)• Serial communication• Any device with I2C or SPI interface

Page 23: Welcome to Workshop 88’s

Direct connect: logic level input

Page 24: Welcome to Workshop 88’s

Direct connect: opto isolator

Page 25: Welcome to Workshop 88’s

What we’re going to cover

• Arduino pins: What you can connect directly• For more muscle: Relays, Transistors• Solid state relays and 120VAC control• Movers: Servos, DC motors, Solenoids, Steppers• Bonus demo: BLDC motor intro

This is all basic electronics.

Page 26: Welcome to Workshop 88’s

More muscle: Relays & Transistors

•Let us control higher CURRENT•Let us control higher VOLTAGE•Sometimes provide ISOLATION

Page 27: Welcome to Workshop 88’s

More muscle: Relays

Classic open-frame relay

Page 28: Welcome to Workshop 88’s

More muscle : Relays

What you’re likely to use: a reed relay

Page 29: Welcome to Workshop 88’s

More muscle : Relays

Inside a reed relay

Page 30: Welcome to Workshop 88’s

Relays: Snubber!

• Snubber, clamp, flyback, suppressor, free-wheeling, catch diode

• Do some kind of demo

Page 31: Welcome to Workshop 88’s

Snubber/Freewheel/Clamp Diode

Page 32: Welcome to Workshop 88’s

More muscle : Transistors

We can use transistors as electronically controlled switches.

(Sort of like a relay, but often better.)

Page 33: Welcome to Workshop 88’s

More muscle : Transistors

•Lots of kinds of transistors•We’ll use two:•Common bipolar•Metal Oxide Field Effect (MOSFET)

Page 34: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

This is the most common type of bipolar transistor, and is the one we’ll use here.

Page 35: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Think of it as this:In general, transistors can be considered amplifiers, but

Page 36: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Page 37: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Point iN Place

Page 38: Welcome to Workshop 88’s

More muscle : Transistors

Page 39: Welcome to Workshop 88’s

More muscle : Transistors

Switching terms:

“HIGHSIDE”

“LOWSIDE”

Page 40: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Page 41: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

How?

Page 42: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Inject small currentinto BASEto EMITTERto turntransistor ON

Maincurrentflow

Page 43: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Page 44: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Page 45: Welcome to Workshop 88’s

More muscle : Transistor Lab 1

2N2222

Page 46: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

What part numbers?–NPN: 2N2222(A), 2N3904–PNP: 2N2907, 2N3906

What’s important?–Max collector voltage–Max collector current

Page 47: Welcome to Workshop 88’s

More muscle : Transistors: Bipolar

Page 48: Welcome to Workshop 88’s

More muscle : Transistors: MOSFET

These are great!• Voltage controlled• VERY low ON

resistance

Insulated Gate!

Page 49: Welcome to Workshop 88’s

More muscle : Transistors: MOSFET

Think of it as this:

Page 50: Welcome to Workshop 88’s

More muscle : Transistors: MOSFET

Page 51: Welcome to Workshop 88’s

More muscle : Transistors: MOSFET

Page 52: Welcome to Workshop 88’s

More muscle : Transistors: MOSFET

How?

Page 53: Welcome to Workshop 88’s

More muscle : Transistors: MOSFET

Page 54: Welcome to Workshop 88’s

More muscle : Transistor Lab 2

IRF630

Page 55: Welcome to Workshop 88’s

What we’re going to cover

• Arduino pins: What you can connect directly• For more muscle: Relays, Transistors• Solid state relays and 120VAC control• Movers: Servos, DC motors, Solenoids, Steppers• Bonus demo: BLDC motor intro

This is all basic electronics.

Page 56: Welcome to Workshop 88’s

Optos: Solid State Relay

PWM does NOT work with these!

Page 57: Welcome to Workshop 88’s

Optos: Solid State Relay

Page 58: Welcome to Workshop 88’s

Optos: SSR Lab

Warning:We’re not in Kansas any more, Toto. In

addition to 5V toys that couldn’t hurt you if they tried, there’s exposed 120 volts AC here that can kill you.

Be careful out there.

Page 59: Welcome to Workshop 88’s

Optos: SSR Lab

• Set up a “blink” sketch on your Arduino• Use I/O pin of your choice• Wire the AC side of the SSR in series with AC

plug and socket. Have your setup checked BEFORE you plug it in!

• Wire the LED side of the SSR to your Arduino.• Plug in and try it out!

Page 60: Welcome to Workshop 88’s

What we’re going to cover

• Arduino pins: What you can connect directly• For more muscle: Relays, Transistors• Solid state relays and 120VAC control• Movers: Servos, DC motors, Solenoids, Steppers• Bonus demo: BLDC motor intro

Some of this is Arduino, some basic electronics.

Page 61: Welcome to Workshop 88’s

Movers

We’ll talk about these:• Servos• DC motors• Solenoids• Stepper motors• Brushless DC motors

Page 62: Welcome to Workshop 88’s

Movers: Servos

Page 63: Welcome to Workshop 88’s

Movers: Servos

• Use feedback to control position• Hobby/RC servos use logic level pulse input• Continuous rotation servos are like motors• Other kinds exist

Page 64: Welcome to Workshop 88’s

Movers: Servo feedback

Page 65: Welcome to Workshop 88’s

Movers: Servo input

Page 66: Welcome to Workshop 88’s

Movers: Servo libraryArduino controls PWM specifically to drive servos with the SERVO library. Initialize like this:

#include <Servo.h>

Servo fred; // “myservo” would be better!#define SERVOPIN 9

void setup() fred.attach(SERVOPIN);

void loop()

Page 67: Welcome to Workshop 88’s

Movers: Servo library

Telling servo where to go with Servo.write():

void loop()

fred.write(90); // go to midpoint delay(1000);

fred.write(0); // go to one end of travel delay(1000);

fred.write(180); // go to OTHER end of travel delay(1000);

//end loop()

Page 68: Welcome to Workshop 88’s

Movers: Servo library

Other functions in Servo library:

• Specify pulse width for 0, 180 in microseconds fred.attach(pin, min, max); // default 544,2400 • Read back latest position written with servo.write() int angle = fred.read(); • Specify pulse width in microseconds fred.writeMicroseconds(value);

Page 69: Welcome to Workshop 88’s

Movers: Servo Lab

• Load the Sweep example• Do NOT use the default pin• Modify so that it:– Sweeps twice as fast–Pauses at each end of each sweep

• Predict what you’ll see with an LED on the servo input pin (and check it out!)

Page 70: Welcome to Workshop 88’s

Movers: Servo: RC transmitter

Page 71: Welcome to Workshop 88’s

Movers: Servo: RC receiver

Page 72: Welcome to Workshop 88’s

Movers: Continuous rotation servos

Page 73: Welcome to Workshop 88’s

Movers: DC motors

• Always only 2 wires• Reverse by reversing polarity

Page 74: Welcome to Workshop 88’s

Movers: DC motors

Regular “brushed” motors controlled by:• Relays (old school!)• FETs• Use PWM for speed control• “H-bridges” for reversing direction

Page 75: Welcome to Workshop 88’s

Movers: DC motors

Try this paper lab:

How can you arrange some switches to connect a battery

and a DC motor so you can control the motor direction?

Page 76: Welcome to Workshop 88’s

Movers: H-bridge

Page 77: Welcome to Workshop 88’s

Movers: H-bridge

Page 78: Welcome to Workshop 88’s

Movers: H-bridge

A B

Page 79: Welcome to Workshop 88’s

Movers: H-bridge

Page 80: Welcome to Workshop 88’s

Movers: H-bridge Lab

• Your board has 2 full H-bridges• Each H-bridge has separate inputs for each

side (each “half H-bridge”). – HIGH input connects that side to GND– LOW input connects to VCC

• Hook a yellow motor across the MOTOR terms• GND and VCC go to Arduino GND, +5V• Inputs go to 2 Arduino output pins.

Page 81: Welcome to Workshop 88’s

Movers: H-bridge Lab

• Use one input as direction control• Use other input as PWM speed control• Write code to demonstrate running forward

and reverse, with low and high speed for each direction.

Page 82: Welcome to Workshop 88’s

Movers: Robot Lab

1. Make robot.2. Write code to:– Drive forward in a gentle right

hand curve for ~1 second, Pause– Turn 180° in place, Pause– Return to start along same path– Optionally do victory dance at end

Page 83: Welcome to Workshop 88’s

Movers: Robot Lab

Special H-bridge cable

Page 84: Welcome to Workshop 88’s

Movers: Solenoids

It’s an INDUCTIVE load. That means you must _______.

Page 85: Welcome to Workshop 88’s

Movers: Steppers

Page 86: Welcome to Workshop 88’s

What we’re going to cover

• Arduino pins: What you can connect directly• For more muscle: Relays, Transistors• Solid state relays and 120VAC control• Movers: Servos, DC motors, Solenoids, Steppers• Bonus demo: BLDC motor intro

This is basic hobby electronics.

Page 87: Welcome to Workshop 88’s

Movers: BLDC motors

“Brushless DC” motors:• ARE brushless• ARE NOT DC. They’re 3 phase AC

motors!• Must use special 3 phase inverter, often

called an Electronic Speed Control to run from DC supply

• Are often very light and efficient

Page 88: Welcome to Workshop 88’s

Movers: BLDC motors: Quadcopter

Page 89: Welcome to Workshop 88’s

Movers: BLDC motors

The interesting part is the ESC• Has an embedded processor• Uses PWM on the 3 phase AC for

speed control• Speed control input is servo pulse train• Hobby ESCs often provide 5V to run

the RC receiver. That’s called Battery Eliminator Circuit.

Page 90: Welcome to Workshop 88’s

Movers: Servo: RC receiver

Page 91: Welcome to Workshop 88’s

Movers: ESC/BEC

ESC has to connect to receiver anyway (for throttle info), so it provides power to the receiver on the same cable.

Page 92: Welcome to Workshop 88’s

Movers: BLDC demo

Page 93: Welcome to Workshop 88’s

ESC programming 1

Page 94: Welcome to Workshop 88’s

ESC

prog

ram

min

g 2

Page 95: Welcome to Workshop 88’s

Thanks for coming!