/elec/propeller-clock

To get this branch, use:
bzr branch http://bzr.ed.am/elec/propeller-clock

« back to all changes in this revision

Viewing changes to electronics-information

  • Committer: Dan
  • Date: 2011-11-03 00:54:13 UTC
  • Revision ID: dan@waxworlds.org-20111103005413-miheyjsrpm3a0r1e
modified notes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Why can't I use a potentiometer to get a different voltage?
2
 
===========================================================
3
 
 
4
 
Suppose that you have 12V and you need 6V.  Why can't you use an
5
 
arrangement like this to get your 6Vs?
6
 
 
7
 
    +12V -------+---------
8
 
                |
9
 
               |¯|
10
 
               |_| R
11
 
                |
12
 
                +--------o  6V, yes?
13
 
                |
14
 
               |¯|
15
 
               |_| R
16
 
                |
17
 
     GND -------+---------
18
 
 
19
 
You *do* get 6V, but it isn't actually practical to do this.  The
20
 
problem is that, when R is suitably high, you've limited the current
21
 
at the 6V pin so much that it isn't really useful.
22
 
 
23
 
And when R is suitably low, there isn't enough resistance between the
24
 
+12V and GND rails to prevent a lot of current flowing.  Lets work
25
 
this out (lets suppose that R is 1 ohm).
26
 
 
27
 
        V = IR, therefore I = V/R
28
 
        P = VI = V(V/R) = (V^2)/R = ( 12 ^ 2 ) / 1 = 144W
29
 
        P = VI, therefore I = P/V = 144/12 = 12A
30
 
 
31
 
That's a lot of current and a lot of power, flowing continuously, just
32
 
to provide 6V!
33
 
 
34
 
Also, fluctuations in resistance and current drawn on the 6V pin would
35
 
actually change the ratio of the potentiometer, so you wouldn't get 6V
36
 
anyway.
37
 
 
38
 
The solution is to use a voltage regulator.  The 7805 will give out 5V
39
 
(so long as you can supply it with at least 7V).  But the arduinos
40
 
already have something similar on-board and they can take an input
41
 
voltage in the range 6-20V (although 7-12V is recommended).
42
 
 
43
 
 
44
 
Wiring up multiple LEDs in series to a single Arduino pin
45
 
=========================================================
46
 
 
47
 
First, lets think about a single LED.
48
 
 
49
 
             |
50
 
    Arduino  |     ___      ,,
51
 
            o-----|___|-----►|---- GND
52
 
             |      R       D
53
 
             |
54
 
 
55
 
The Arduino pin, when raised high, is at 5V and no more than 20mA can
56
 
be taken from it.  The LED will take about 10mA and wants about 1.5V.
57
 
 
58
 
You can think of this as a potentiometer arrangement, with the
59
 
resistance of R and D proportionally splitting the voltage between the
60
 
two components.  We want 1.5V across the LED, so we need 3.5V (that's
61
 
5 - 1.5) across the resistor.  Now, we don't know the resistance of
62
 
the LED, but we don't need to.  If we know that we want 10mA through
63
 
the whole series (the resistor and the diode), then we can use V=IR as
64
 
follows...
65
 
 
66
 
    V=IR, therefore R=V/I
67
 
    R = 3.5 / .01 = 350Ω
68
 
 
69
 
Which is why the standard resistor you'd use with one LED is orange,
70
 
orange, brown (actually, 340 ohms).
71
 
 
72
 
Now lets consider more than one LED in series.
73
 
 
74
 
             |
75
 
    Arduino  |     ___      ,,     ,,
76
 
            o-----|___|-----►|-----►|---- GND
77
 
             |      R       D1     D2
78
 
             |
79
 
 
80
 
Ok, so now you still need 10mA through the whole series, but you want
81
 
1.5V across the first diode and 1.5V across the second as well.  That
82
 
leaves 2V across R, the resistor (5 - 1.5 - 1.5).
83
 
 
84
 
    R = V/I = 2 / .01 = 200Ω
85
 
 
86
 
You can see that beyond three or perhaps, at a push, four LEDs you're
87
 
not going to get the required 1.5V across each LED. So three (or four)
88
 
is the limit to how many LEDs you can drive in series from one pin on
89
 
the Arduino.
90
 
 
91
 
 
92
 
Wiring up multiple LEDs in parallel to a single Arduino pin
93
 
===========================================================
94
 
 
95
 
Imagine we have this
96
 
 
97
 
             |
98
 
    Arduino  |     ___        ,,
99
 
            o-----|___|---+---►|---.
100
 
             |       R    |   D1   |
101
 
             |            |        |
102
 
             |            |   ,,   |
103
 
             |            '---►|---+--- GND
104
 
             |                D2
105
 
 
106
 
This wouldn't work. We can't use one resistor in series with the two
107
 
LEDs because the resistance of the two LEDs wont actually be exactly
108
 
the same.  You'll end up running one brighter than the other and burn
109
 
one out quicker.
110
 
 
111
 
So, imagine we have this instead
112
 
 
113
 
             |
114
 
    Arduino  |        ___     ,,
115
 
            o----+---|___|----►|---.
116
 
             |   |     R1     D1   |
117
 
             |   |                 |
118
 
             |   |    ___     ,,   |
119
 
             |   '---|___|----►|---+--- GND
120
 
             |         R2     D2
121
 
 
122
 
This is OK.  R1 and R2 are just the usual 340 ohms.  But we have to
123
 
bare in mind that each LED requires 10mA.  So the total current drawn
124
 
from the Arduino pin will be 20mA, which is the most you're allowed to
125
 
draw.  So two LEDs is the most that we can drive, in parallel, directly
126
 
from a pin.
127
 
 
128
 
 
129
 
Using a transistor to drive multiple LEDs
130
 
=========================================
131
 
 
132
 
In both of the following diagrams, the resistor on the Arduino pin,
133
 
R1, just needs to be something suitably high to provide a small
134
 
current on the base of the transistor. So, R1 could be 1kΩ.
135
 
 
136
 
Here's an "in series" set up
137
 
 
138
 
                           .----- 12V
139
 
                           |
140
 
                          |¯|
141
 
                          |_| R2
142
 
                           |
143
 
                           |
144
 
                           ▼  D1
145
 
                           ¯``
146
 
                           |
147
 
                           |
148
 
             |             ▼  D2
149
 
             |             ¯``
150
 
             |             |
151
 
             |             |
152
 
             |             ▼  D3
153
 
             |             ¯``
154
 
             |             |
155
 
    Arduino  |    ___    ,-|
156
 
            o----|___|--(|↘ ) T
157
 
             |     R1    `-|
158
 
             |             |
159
 
             |             '----- GND
160
 
 
161
 
This is fine. D1, D2 and D3 will require a total of 4.5V across them
162
 
(1.5V each), leaving plenty of headroom (you've got 12V to play with).
163
 
R2 would be
164
 
 
165
 
    R2 = V/I = ( 12 - 1.5 - 1.5 - 1.5 ) / 0.01 = 750Ω
166
 
 
167
 
So the limit here is about 8 LEDs.
168
 
 
169
 
Something else to consider here is that the transistor actually also
170
 
requires 0.7V across it.  So in that calculation, the desired voltage
171
 
across R2 should actually be 12 - 1.5 - 1.5 - 1.5 - 0.7, but we can
172
 
safely ignore it in this example.
173
 
 
174
 
Here's an "in parallel" set up
175
 
 
176
 
                           .-------+-------+----- 12V
177
 
                           |       |       |
178
 
                          |¯|     |¯|     |¯|
179
 
                          |_| R3  |_| R4  |_| R5
180
 
             |             |       |       |  
181
 
             |             |       |       |
182
 
             |             ▼  D1   ▼  D2   ▼  D3
183
 
             |             ¯``     ¯``     ¯``
184
 
             |             |       |       |
185
 
             |             +-------+-------'
186
 
             |             |
187
 
    Arduino  |    ___    ,-|
188
 
            o----|___|--(|↘ ) T
189
 
             |     R1    `-|
190
 
             |             |
191
 
             |             '----- GND
192
 
 
193
 
Here, R3 = R4 = R5 = 340Ω, as usual.  The number of LEDs is limited
194
 
only by the current that can be drawn from the power supply.
195
 
 
196
 
 
197
 
RC CIRCUITS
198
 
===========
199
 
 
200
 
An RC (resistor capacitor) circuit is a basic low-pass filter. Here
201
 
we're talking about giving it a pulse wave signal (a voltage that
202
 
oscillates between 0V and approx. 5V).
203
 
              ___
204
 
    Vin o----[___]----+-----o Vc
205
 
                R     |
206
 
                      |
207
 
                     ===
208
 
                      | C
209
 
                      |
210
 
     0V o-------------+-----o
211
 
 
212
 
If the resistor weren't there, the capacitor on it's own would act
213
 
like an open circuit to a pulse wave (or to an AC power supply). This
214
 
is because the capacitor would charge to the voltage supplied across
215
 
it and discharge almost immediately. The purpose of the resistor is to
216
 
limit the current that is available to charge the capacitor, so it
217
 
charges slowly and it takes some time before Vc becomes almost equal
218
 
to Vin.
219
 
 
220
 
With a pulse wave on Vin, Vc would look something like this:
221
 
 
222
 
    5V
223
 
             _           _           _           _
224
 
          ,'' \       ,'' \       ,'' \       ,''
225
 
         /     \     /     \     /     \     /
226
 
    0V  /       ',,_/       ',,_/       ',,_/
227
 
 
228
 
If you were to draw the tangent to the curve at time=0 (so, the
229
 
initial rate of change of charging), and you note the time that this
230
 
line crossed 5V, then this time is T. That is to say, time T is the
231
 
time it would take the capacitor to charge to the target voltage if it
232
 
charged constantly at the rate it actually initially charges at. Then
233
 
this equation applies
234
 
 
235
 
    T = RC
236
 
 
237
 
 
238
 
TRANSISTORS
239
 
===========
240
 
 
241
 
When using an NPN transistor as a switch, a typical set up might look
242
 
something like this:
243
 
 
244
 
    o--------------+---- 5V
245
 
                   |
246
 
                   []
247
 
                  (  )  some load
248
 
                   []
249
 
                   |
250
 
         ___     ,-|c
251
 
    o---[___]--b(|↘ ) T (NPN)
252
 
          R      `-|e
253
 
                   |
254
 
               ----+---- GND
255
 
 
256
 
You would typically connect the pin to 5V to turn on the transistor.
257
 
The current between the emitter and base turns on a larger current
258
 
between the emitter and collector.  The resistor, R, limits the
259
 
turn-on current and prevents a short (effectively) across the
260
 
transistor (and whatever the pin is connected to, such as an
261
 
Arduino!).
262
 
 
263
 
PNP transistors were used in the days when a -5V rail was typical
264
 
instead of a 5V rail.  In this case, a typical set up would be exactly
265
 
the same as above, but with -5V used for the top rail and a PNP
266
 
transistor.  The thing to note here is that the direction of the
267
 
current would also have changed. Now imagine flipping this diagram
268
 
up-side-down and offsetting both rails by +5V (so that -5V becomes GND
269
 
and GND becomes 5V, respectively).  Then you'd have this set up, which
270
 
is a modern-day typical usage scenario for a PNP transistor.
271
 
 
272
 
               ----+---- 5V
273
 
                   |
274
 
         ___     ,-|e
275
 
    o---[___]--b(|↙ ) T (PNP)
276
 
          R      `-|c
277
 
                   |
278
 
                   []
279
 
                  (  )  some load
280
 
                   []
281
 
                   |
282
 
    o--------------+---- GND
283
 
 
284
 
In this set up, as before, a current is required between the base and
285
 
emitter to turn on a larger current between the collector and emitter.
286
 
But the difference this time is that the pin must be connected to
287
 
ground to achieve this.
288
 
 
289
 
 
290
 
CAPACITORS
291
 
==========
292
 
 
293
 
Two capacitors in parallel are equivalent to one capacitor whose
294
 
value is the sum of the two.
295
 
 
296
 
 
297
 
COMMON PARTS LIST AND USEFUL VALUES
298
 
===================================
299
 
 
300
 
NPN transistors
301
 
        BC548/BC547, 5V switch
302
 
 
303
 
PNP transistors
304
 
        BC327/BC328, -5V switch
305
 
 
306
 
LEDs
307
 
        ~1.5V, ~10mA
308
 
        With 5V across them, a 560Ω resistor is required.
309
 
 
310
 
DIODE
311
 
        1N4001
312
 
 
313
 
Electrolytic Capacitor (Radial, 4700uF 16V)
314
 
        Maplin part no. VH57M
315
 
 
316
 
Arduino-powerable relay (DPDT, gold contacts, 5V, 27mA)
317
 
        Maplin part no. N05AW