GithubHelp home page GithubHelp logo

paschalis / vhf-transceiver-control-system Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 288 KB

Arduino-based control system for VHF transceivers, featuring keypad input, 7-segment display output, and BCD frequency encoding for enhanced communication efficiency.

License: GNU General Public License v3.0

C++ 100.00%

vhf-transceiver-control-system's Introduction

VHF Communications Transceiver Control System

Introduction

This project implements a control system for a VHF (Very High Frequency) Communications Transceiver, utilizing an Arduino board to interface with a 4x4 keypad and a 7-segment LED display. The system is designed to facilitate two-way communications within the 116.000MHz to 135.000MHz frequency range, with adjustments in 25KHz increments. It translates decimal frequency inputs into BCD (Binary-Coded Decimal) bit code for easy transmission and accurate signal processing.

System Features

  • Frequency Range: 116.000MHz to 135.000MHz, adjustable in 25KHz increments.
  • Input Method: 4x4 keypad for frequency entry.
  • Display: 7-segment LED to show the current frequency.
  • Output Encoding: Converts decimal frequency inputs into BCD bit code.

Implementation Details

The system utilizes an Arduino board to control the 7-segment display and read inputs from the keypad. Key functions include displaying a welcome message, converting keypad inputs into BCD format, and updating the display to reflect the current frequency setting.

Key Components

  • Arduino Board: Serves as the central control unit.
  • 4x4 Keypad: Allows for user input of frequencies.
  • 7-Segment LED Display: Shows the entered frequency and operational status messages.
  • LedControl Library: Manages communication with the LED display driver.
  • Keypad Library: Facilitates reading inputs from the keypad.

Setup

Alt Text

IdeaMaker for printing the design from FreeCAD.

  1. Connect the 4x4 keypad to the Arduino according to the pin configuration specified in the code.
  2. Connect the 7-segment display to the Arduino, ensuring correct alignment with the output pins.
  3. Upload the provided Arduino sketch to the board.

Usage

  • Upon powering on, the display shows a "Hello" message followed by a sequence of numbers to indicate readiness.
  • Enter the desired frequency using the keypad. The display updates in real-time to show the current input.
  • Use the * key to clear the current input, and the # key to finalize the frequency setting.

Code Overview

Key Functions

  • setup(): Initializes the display and keypad, sets the display brightness, and clears any previous output.
  • hello(): Displays a welcome message and a sequence of numbers.
  • power(base, exponent): Calculates the power of a given number, used in various calculations within the code.
  • digitToBcd(digit): Converts a decimal digit to its BCD representation.
  • loop(): Main program loop, handles keypad inputs and updates the display accordingly.

Connectivity Diagram

Connectivity Diagram

Wiring Guide

  • Speaker: Connect to C & D wires.
  • PTT (Push to Talk): Connect to Z & Ground.
  • Squelch Test: Connect to A & Ground.
  • Mic Audio: Connect to X.

Author

This system was developed and implemented by Paschalis Moschogiannis, a passionate developer in the field of communication technology. With a focus on enhancing VHF transceiver usability and accuracy, this project reflects a commitment to improving communication systems.

For inquiries or potential collaborations, please contact [email protected].

To Do

  • Implement a default Version on ATmega2560 without Shift Registers:

  • Implement a New Version on ATmega328P with Shift Registers: Transition from using the Arduino Mega (ATmega2560) to a more compact ATmega328P, incorporating shift registers to manage I/O pins more efficiently.

  • Dual 7-Segment Display for Active and Standby Frequencies: Develop a version that includes two 7-segment displays, one showing the active frequency and the other the standby frequency. Implement a button to switch frequencies between active and standby, enhancing operational flexibility.

  • Rotary Encoder for Frequency Selection: Introduce a version where frequency selection is controlled through a rotary encoder instead of a keypad. This version will also include an additional 7-segment display to show the selected frequency, providing a more intuitive user interface for frequency adjustment.

Conclusion

This VHF control system simplifies the process of setting frequencies on a VHF transceiver, enhancing communication efficiency and accuracy. By converting decimal inputs into BCD code, it provides a user-friendly interface for complex communication operations. The outlined future enhancements aim to further improve usability and functionality, ensuring the system remains at the forefront of communication technology advancements.

License

This project is licensed under the GNU General Public License Version 3 (GPLv3).

vhf-transceiver-control-system's People

Contributors

paschalis avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.