[...]
The principal other person immediately thought of an
Arduino. (These
days, perhaps a Teensy instead - this was before Teensies, I think.) I
thought of a 555. (I used an external transistor as a switch; the
Arduino design was never firmed up enough to know, but it probably
would have had to do something similar.)
Firstly, anm aside...
Recently I came across one of those electornics kits that conssits of
pre-mounted components with spring terminals, you conenct them toget with
wires. The Radio Shack n-in-1 kits are examples.
Anyway, the particualr kit in quesion had a few R's and C's, a battery, a
couple of LEDs, an LDR, a variable resistor, an NPN transisotr a PNP
transistor etc. And something called a 'timer IC' wired to 5 springs.
The manaul had lots of warnings, all of qhich I ignored ! Ones was that
dismantling the device would damage it and might cause injury. I undid
the 4 obvious scres on the bottom and took off the cover. I fail to see
how this damaged it, or how anybody could he injured doing it.
Anyway, the 'timer IC' turned out to be a 555. The connections brought
out weee :
1 (ground
4 + 8 (Vcc and Reset/, thus menaing Reset/ was nevr used)
3 (Output)
7 (Discharge)
6 + 2 (Trigger and threshold)
OK, as anyone who's used the 555 will know, that's qhat yuou need, along
with 2 R's and a C, to make an astable. And indeed, many of the projects
in this kit were beepers, flaxhing lights, etc.
OK, a couple of questions. Ignroign the warning in the manaul not to try
other circuits (!) :
1) What else can you use a 555 strapped like that for?
2) Ignoring the timer IC, what is the simplest bistable circuit you can
build ?
3) Whay is none of this in the manual?
I breadboarded it and the 555 way turned out to draw
something like 20%
the power of an idling Arduino. This meant the battery life was
That I can well believe. And of course a 555 can't go of itno soem other
state. Yes, there are watchdog timers to catch microcontrollers that for
wehatever reason have started running radom bits of the memoery as their
program, and theire very useful if you need the complexity of a
mcirocontroller for whatever you aredoing. Buyt if you don't, it's a lot
easier (andf better IMHO) not to have illegal states i nteh first place.
substantially extended; given the difficulty of
replacing the
batteries, this was a not inconsiderable gain. But someone who jumped
to the "use a microcontroller" answer would have missed it entirely.
Exactly my view. People that answer any design questio nwith 'Use an
Arduino | microcontrolelr | FPGA' in aobut 10 seconds have almost
certainly not considered the proble. The optimal solution might well be
to use one of those devices, but unles you think about the problem and
consdier other thigns, you are a poor designer. Period.
> Ubiquitous computing is not morally wrong.
Not always. But it is certainly possible for it to be.
> There is nothing wrong with abundance.
No...but `abundance' in that sense is not present here. At least not
for the sense I understand you to mean: abundance as in "there's such
an excess that there's no point putting a price on it because everyone
can have all they want and we'll still have plenty left over".
There is a lot wrong with 'trhough silicon at a problem until it goes
away' as I like to put it. Overcomplexity does lead to problems. I've
seen it far too often.
> There is nothing virtuous about scarcity.
I'm not sure I agree, but I don't think it matters, because there _is_
virtue in the absence of wastefulness.
Whether using a full-fledged computer to drive a blinkenlight or two is
wastefulness is something that it is reasonable to debate. Personally,
I think it is, even today.
So do I, as the final solution.
On the other hand (and I know this is not what you mean), flashing a few
LEDs in a given sequence is almost the 'Hellow World' program for a
microcontroller. K&R points out that by compiling nad running the 'Hello
World' prgoram, you get to use the editor, run the compiler, link in
libraries (if that;'s a separate step), find out where hte executable
goes, and how to run that executable. Things you have to do for every
program you subsequuently write.
Similarly, to make a microcontrolelr flash a few LEDs, you have yto turn
your program source into a binary file, transfer that file to the
microcontrolelrm, and get the microcontroller to run the program. In
writing the program, you have to figure out hwo to make mins output,s
and in wiring up the lEDs you have to undersntad how th ports referenced
in the program correspont to pins o nthe IC. All of which you will need
later.
So, there certainyl is value in flashign LEDs iwth amicrocotnroller as an
exercice in learnign that microcontroller. But that doesn';t mean that an
ARM CPU runing a multiuser OS is the right way to sequyence a few LEDs in
a final project
-tony