Did you know...
|
|
Channel Modes
Channel modes are at the heart of the Serial Wombat design.
Every pin is assigned a channel mode, and this channel mode
determines what the pin does. Some modes are very simple, and may
simply set a pin high or low. Other channel modes are much more
complex, and can do interesting things such as generating Morse
Code, controlling a servo, or measuring, filtering, or averaging
an Analog Input.
Every channel mode has a unique channel mode number. This
number is used by the Configure Channel Mode commands to tell the
Wombat what a pin is supposed to do. Many pins may use the same
channel mode, and they will all work independently. This allows
you to control more than one servo, measure more than one
voltage, or monitor multiple rotary encoder knobs.
Available Channel Modes (modes without links have been coded
and tested, but not yet documented):
| Mode: |
Channel Mode Number
(Decimal, Hex) |
Function: |
| Direct |
0, 0x00 |
A function in direct mode is controlled by the Host.
The host can command a pin to be high, low, or input |
| Controlled |
1, 0x01 |
Some functions, such as reading a rotary encoder,
require more than one pin. When one pin takes control of
another pin, the controlled pin's channel mode is
automatically set to Controlled. |
| Morse |
4, 0x04 |
Generate Morse Code signals based on the data in a
queue. |
| Hysteresis |
5, 0x05 |
Control a pin based on the public data of another pin
(an analog input, for example). This is the sort of
control often used by thermostats. |
| Raw A/D |
6, 0x06 |
Continuously measure a voltage input, and provide its
value as public data. |
| A/D with
first order filtering |
7, 0x07 |
Continuously measure and low-pass filter a voltage
input, and provide the result as public data. |
| Matrix Keypad
Scanning |
8, 0x08 |
Scan a matrix encoded keypad, and provide the key
states, current pressed key, or last pressed key as
public data. Optionally place keypresses or key
transitions into a queue for retreival by the host. This
mode takes control of other pins connected to the other
rows and columns. |
| Watchdog |
9, 0x09 |
The host periodically resets a timer. If the host
ever allows the timer to expire, then a pin is pulsed for
a period of time. This can be used to reset the host. |
| Diagnostics |
10, 0x0A |
This pin monitors an input, and the state of another
output pin. If the relationship between the pins is
wrong, then the output pin is reconfigured to a safe,
default state. This can be used to quickly shut off an
output circuit which is short-circuited. |
| Rotary
Encoder Input |
11, 0x0B |
Monitor this pin and another to determine if a rotary
encoder knob has been rotated. |
| Debouncing |
12,0x0C |
Many switches "bounce" back and forth for a
few milliseconds when they are pressed. A debouncing
input will eliminate these false transitions. |
| Counter |
13,0x0D |
A pin in this mode can count input transitions. A
counter can be incremented on rising, falling, or both
edges. Some pins have hardware support to allow very
frequent transitions to be counted. The other pins
require that the events to be counted occur slower than
the frame rate. |
| A/D with
averaging |
15,0x0F |
Continuously measure a voltage input, and average the
results to reduce noise. |
| Pulse |
16, 0x10 |
Pulse an output for a configurable amount of time
when some public data changes. This is useful for
blinking a user-feedback LED or piezo buzzer in response
to a keypad or rotary encoder change. It can also be used
with the received-data counter public data to blink an
LED whenever the host communicates with the Wombat. |
| Servo Control |
17, 0x11 |
Control a servo motor based on commands from the host
or public data from another pin. |
| Analog Direct |
18, 0x12 |
Generate a PWM output or drive an off-board D/A or
digital potentiometer based on a duty cycle configured by
the host. Some pins have hardware support allowing
high-frequency PWM generation. The other pins implement
PWM in software, allowing the user to choose the
trade-off between frequency and resolution. The user can
reconfigure a pin to be the chip-select for an external
A/D or digital potentiometer using the Hardware Mode
command. |
| Analog Follow |
19,0x13 |
Generate a PWM output or drive an off-board D/A or
digital Pot based on some public data. This allows a
pin's output to be controlled by the public data provided
by some other pin function. |
| Unipolar
Stepper Motor |
23, 0x17 |
Use four of the Wombat's pins to spin or
position a Unipolar Stepper Motor |
| Hardware
Pulse Measurement |
24, 0x18 |
Using special hardware available on
certain pins, the Serial Wombat can measure very rapid
transitions. |
| 2D
Lookup Table |
25, 0x19 |
Transform the data provided by a pin
using a table of points which you provide. Then output
the result as a PWM, or provide the result to another pin |
| SPI Master |
26, 0x1A |
Control a SPI device using the Wombat's hardware SPI
capability |
HD44780
LCD
controller |
27, 0x1B |
Control any HD44780 based LCD display |
| Remote |
30, 0x1E |
Read and decode key presses from Sony Compatible
remote controls |
| DataLogger |
31, 0x1F |
Store the public data from up to 4 pins into a queue
at regular intervals |
| Min/Max |
32,0x20 |
Keep track of a pin's minimum and maximum public data
or A/D value |
| LCD Controller |
241,0xF1 |
Control a WD-C2401 LCD Panel (in add on package) |
| LCD Controller 2 |
242,0xF2 |
Control a 24 x 2 Line HD44780 based LCD Panel (in add
on package) |
|
|