Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Title Page
Copyright Page
Dedication
About the Author
Contents
Preface
Acknowledgments
1 Introduction
Which Microcontroller to Use?
We Chose Arduino, So Now What?
Interpreting Table 1-1
Making the Choice
What Else Do You Need?
Software
Downloading and Installing the Arduino Integrated Development Environment
Installing the Software
Running Your First Program
2 I Don’t Know How to Program
I Don’t Need No Stinkin’ CW!
Like CW, Like Programming
The Five Program Steps
Step 1. Initialization
Step 2. Input
Step 3. Processing
Step 4. Output
Step 5. Termination
Arduino Programming Essentials
The Blink Program
Data Definitions
Where’s the main() Function?
The setup() Function
The loop() Function
I Thought There Were Five Program Steps?
Modifying the Blink Sketch
Saving Memory
Remove Unused Variables
Use a Different Data Type
Avoid Using the String Class
The F() Macro
The freeRam() Function
Conclusion
3 The LCD Shield Project
Libraries: Lessening the Software Burden
Not All LCDs Are the Same
LCD Shield Parts List
Assembling the LCD Shield
Breakaway Header Pins
Soldering Components to the Shield
Adding Components Using a Schematic
An Alternative Design
Loading the Example Software and Testing
A “Code Walk-Through” of the “HelloWorld” Sketch
Explore the Other Examples
Using Your LCD Display with the TEN-TEC Rebel
Under the Rebel Hood
Software Modifications
Conclusion
4 Station Timer
Software Version of ID Timer
Magic Numbers
Preprocessor Directives
Fixing Bad Magic Numbers: #define
A Second Way to Remove Magic Numbers: const
Fixing Flat Forehead Mistakes
Encapsulation and Scope
Fixing Our Program Bug
The static Data Type Specifier
Using a Real Time Clock (RTC) Instead of a Software Clock
The Inter-Integrated Circuit (I2C or I2C) Interface
The I2C and the DS1307 RTC Chip
BCD and the DS1307 Registers
Constructing the RTC/Timer Shield
The Adafruit RTClib Library
Initializing the RTC
Running the Program
The RTC Timer Program
The loop() Function
A Software Hiccup
Conclusion
5 A General Purpose Panel Meter
Circuit Description
Construction
An Alternate Design Layout
Loading the Example Software and Testing
Code Walk-Through
Instantiating the lcd and lbg Objects
The loop() Code
Testing and Calibration of the Meter
Changing the Meter Range and Scale
Voltmeter
Ammeter
Changing the Scale
Conclusion
6 Dummy Load
Mechanical Construction
Resistor Pack Spacing
Fabricating the Lid Connections
Attaching the Lid to the Resistor Pack
Electronic Construction
Doing the Math
Software
Conclusion
7 A CW Automatic Keyer
Required Software to Program an ATtiny85
Connecting the ATtiny85 to Your Arduino
The Proper Programming Sequence
Some Things to Check If Things Go South
Using the Digispark
Compiling and Uploading Programs with Digispark
The CW Keyer
Adjusting Code Speed
Capacitance Sensors
The volatile Keyword
Construction
Conclusion
8 A Morse Code Decoder
Hardware Design Considerations
Signal Preprocessing Circuit Description
Notes When Using the Decoder with the TEN-TEC Rebel
Decoder Software
Search a Binary Tree of ASCII Characters
Morse Decode Program
Farnsworth Timing
Conclusion
9 A PS2 Keyboard CW Encoder
The PS2 Keyboard
Testing the PS2 Connector
The PS2 Keyboard Encoder Software
Adding the PS2 Library Code to Your IDE
Code Walk-Through on Listing 9-1
Overloaded Methods
The sendcode() Method
Some Bit-Fiddling
Isolating the Arduino from the Transmitter
Testing
Other Features
Change Code Speed
Sidetone
Long Messages
Conclusion
10 Project Integration
Integration Issues
The Real Time Clock (RTC) Shield
CW Decoder Shield
PS2 Keyboard Keyer
The Expansion Board
Software Project Preparation
C++, OOP, and Some Software Conventions
C++ Header Files
Class Declaration
public and private Members of a Class
Function Prototypes
cpp Files
Class Constructor Method
IntegrationCode.ino
Header Files
Constructors
How the Terms Class, Instantiation, and Object Relate to One Another
The Dot Operator (.)
The loop() Function
Conclusion
11 Universal Relay Shield
Construction
Circuit Description
Construction of the Relay Shield
Testing the Relay Shield
Test Sketch “Walk-Through”
Conclusion
12 A Flexible Sequencer
Just What Is a Sequencer?
The Sequencer Design
Timing
Constructing the Sequencer
A Purpose-Built Sequencer
Programming and Testing the Sequencer
Initial Testing of the Sequencer
Loading the Sequencer Program and Testing
Sequencer Code “Walk-Through”
Modifying the Sequence Order and Delay Time
Configuring the Jumpers for Different Situations
Modifying the Relay Shield from Chapter 11
Alternate Listing for the Relay Shield Sequencer
Conclusion
13 Rotator Controller
The Arduino Antenna Rotator Controller
Supported Rotators
Relay Shield
Panel Meter Shield
The Control Panel
Adding the I2C Interface to the Relay Shield from Chapter 11
Connecting the Rotator Controller
Early Cornell-Dublier Electronics (CDE) Models
Later Models from HyGain, Telex, and MFJ
Yaesu Models G-800SDX/DXA, G-1000SDX/DXA, and G-2800DXA
Software
Arduino Beam Heading Software
Moving the Beam
Setting a New Heading
Storing a New Heading in EEPROM
World Beam Headings
Finding the Coordinates for a QTH
Finding a Beam Heading
Conclusion
14 A Directional Watt and SWR Meter
SWR and How It Is Measured
Obtaining the Antenna System SWR
Detectors
Constructing the Directional Watt/SWR Meter
Design and Construction of the Directional Coupler/Remote Sensor
The Sensor Board
Final Assembly of the Coupler/Sensor
Interface Shield Construction
LCD Shield Options
Final Assembly
Testing the Directional Wattmeter/SWR Indicator
Calibrating the Directional Wattmeter
Software Walk-Through
Definitions and Variables
setup()
loop()
Further Enhancements to the Directional Wattmeter/SWR Indicator
Conclusion
15 A Simple Frequency Counter
Circuit Description
Constructing the Shield
An Alternate Design for Higher Frequencies
Code Walk-Through for Frequency Counter
Displaying the Tuned Frequency of Your Display-less QRP Rig
Double Conversion Applications
Adding a Frequency Display to the MFJ Cub QRP Transceiver
Adding a Frequency Display to a NorCal 40
Direct Conversion Applications
Other Radio Applications
Conclusion
16 A DDS VFO
Direct Digital Synthesis
The DDS VFO Project
DDS VFO Circuit Description
The Analog Devices AD9850 Breakout Module
Constructing the DDS VFO Shield
Adding an Output Buffer Amplifier for the DDS VFO
The Front Panel and Interconnection
DDS VFO Functional Description
Overview
EEPROM Memory Map
SW1, the User Frequency Selection Switch (UFSS)
SW2, the Band-Up Switch (BUS)
SW3, the Band-Down Switch (BDS)
SW4, Plus Step Switch (PSS)
SW5, Minus Step Switch (MSS)
SW6, the Encoder Control
The DDS VFO Software
EEPROM Initialization Program
The KP VFO Software (VFOControlProgram.ino)
setup()
loop()
Testing the DDS VFO
Calibrating the DDS VFO
Using the DDS VFO with Your Radio
The Pixie QRP Radio
Blekok Micro 40SC
CRKits CRK 10A 40 meter QRP Transceiver
Other Applications of the DDS VFO and Additional Enhancements
Conclusion
17 A Portable Solar Power Source
The Solar Sensor
Solar Charger Controller
Panel Positioning and Stepper Motor
Stepper Wiring
Stepper Motor Driver
Control Inputs
Solar Panel Support Structure
Stepper Motor Details
Mounting the Stepper Motor
Solar Panel Connections
Placing the Quick Connectors
The Motor Controller Shield
Routing Power Cables
Motor Controller Shield Wiring
Altitude Positioning
The Software
Final Assembly
Assembly and Disassembly
Conclusion
A Suppliers and Sources
B Substituting Parts
C Arduino Pin Mapping
Index
← Prev
Back
Next →
← Prev
Back
Next →