0% found this document useful (0 votes)
4 views11 pages

Communication Lab Project

The project titled 'Universal Communication System Using Arduino' demonstrates various communication techniques including AM, FM, PM, and multiplexing methods like TDMA, FDMA, and CDMA using a single Arduino Uno. It aims to provide a budget-friendly and educational platform for understanding signal modulation and conversion through practical implementation. The project successfully showcases the functionality of these communication methods while emphasizing low-cost components and ease of assembly.

Uploaded by

fahmidafaiza918
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views11 pages

Communication Lab Project

The project titled 'Universal Communication System Using Arduino' demonstrates various communication techniques including AM, FM, PM, and multiplexing methods like TDMA, FDMA, and CDMA using a single Arduino Uno. It aims to provide a budget-friendly and educational platform for understanding signal modulation and conversion through practical implementation. The project successfully showcases the functionality of these communication methods while emphasizing low-cost components and ease of assembly.

Uploaded by

fahmidafaiza918
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

DEPARTMENT OF ELECTRICAL & ELECTRONIC ENGINEERING

COURSE TITLE: COMMUNICATION LAB


COURSE CODE: EEE 324
SEMESTER : SUMMER 2024
STAMFORD UNIVERSITY BANGLADESH
DEPARTMENT OF ELECTRICAL & ELECTRONIC ENGINEERING

Project
On
“Universal Communication System Using Arduino (AM, FM, PM, TDMA, FDMA, CDMA,
DSBSC, SSBSC, ADC, DAC)"
Submission Date

Submitted To:

Muhammad Moshiur Rahman


Tarafder
PREPARED BY :
Assistant Professor
DEPARTMENT OF ELECTRICAL & 1. FAHMIDA ISLAM
STUDENT ID: EEE 078 07759
ELECTRONIC ENGINEERING
2. AHANA AMIN RABITA
STAMFORD UNIVERSITY STUDENT ID: EEE 078 07767
BANGLADESH. 3. Praggapan Dhar
Student ID: EEE078 07766
4. MD. Milon Mia
STUDENT ID: EEE 078 07770
5, Nusrat Jahan
STUDENT ID: EEE 070 07768

DEPARTMENT OF ELECTRICAL & ELECTRONIC ENGINEERING , STAMFORD


UNIVERSITY BANGLADESH
Page 1 of 11

Project Title

Universal Communication System Using Arduino (AM, FM, PM, TDMA, FDMA, CDMA, DSBSC,
SSBSC, ADC, DAC)

Introduction

In this project, we built a simple and budget-friendly communication system using only one Arduino
Uno. Our goal was to demonstrate many communication techniques like AM, FM, PM, different types
of multiplexing (TDMA, FDMA, CDMA), and even signal conversions (ADC and DAC). This
system is easy to understand and very useful for learning and experimenting with communication
concepts.

Objectives

 To show how amplitude, frequency, and phase modulation work using Arduino.
 To simulate how TDMA, FDMA, and CDMA systems share channels.
 To understand DSBSC and SSBSC signal generation.
 To learn how to convert analog signals to digital and back using ADC and DAC.
 To create the whole system using low-cost parts.

Components

 Arduino Uno (1pc)


 10kΩ Potentiometers (4pc)
 LEDs {Red/Green} (2pc)
 220Ω Resistors (2pc)
 MCP4725 DAC Module (1pc)
 5V Speaker or Buzzer (1pc)
 Breadboard and Jumper Wires

Working Principle

 AM (Amplitude Modulation): We used a potentiometer to change the signal's amplitude by


adjusting PWM duty cycle.
 FM (Frequency Modulation): Another potentiometer changes the frequency of the signal using
the tone() function.
 PM (Phase Modulation): Phase is changed using delay commands in the code.
 TDMA: The system switches the LED/speaker outputs one by one to simulate time-sharing.
 FDMA: Different frequencies are used for different virtual channels.
 CDMA: XOR logic is used to hide and recover the message.
 DSBSC: We approximated it by multiplying message and carrier signals in code.
 SSBSC: We tried to keep only one sideband by reducing the other part using DAC.
 ADC: The potentiometers send analog inputs to Arduino which are read using analogRead().
 DAC: The digital signal from Arduino is converted back to analog using the MCP4725 DAC
module.
Page 2 of 11

Circuit Description

Potentiometers(Pin Diagram):

A0: Controls AM

A1: Controls FM

A2: Controls PM

A3: Chooses mode (TDMA, FDMA, CDMA)

LEDs:

D9: LED1 (via 220Ω resistor)

D10: LED2 (via 220Ω resistor)

Speaker:

D11: Connected to speaker

MCP4725 DAC Module:

VCC: Connect to 5V

GND: Connect to GND

SDA: Connect to A4

SCL: Connect to A5

OUT: Connect to external output (LED/Speaker)

Working Procedure

 Circuit Design: We placed all components on a breadboard and connected them to the
Arduino.

Fig-1: Circuit Diagram in Tinkercad software.


Page 3 of 11

Fig-2: Schematic Diagram in Tinkercad.

 Simulation in Matlab :

Code:

clc;

clear;

close all;

% Time vector

Fs = 10000; % Sampling frequency

t = 0:1/Fs:0.01; % Time duration

% Message signal

Am = 1; % Amplitude of message

fm = 100; % Frequency of message

m = Am * sin(2*pi*fm*t); % Message signal

% Carrier signal
Page 4 of 11

Ac = 1; % Amplitude of carrier

fc = 1000; % Frequency of carrier

c = Ac * sin(2*pi*fc*t); % Carrier signal

%% AM - Amplitude Modulation

am = (1 + 0.5*m) .* c;

%% FM - Frequency Modulation

kf = 2*pi*50; % Frequency sensitivity

fm_signal = Ac * cos(2*pi*fc*t + kf * cumsum(m)/Fs);

%% PM - Phase Modulation

kp = pi/2; % Phase sensitivity

pm_signal = Ac * cos(2*pi*fc*t + kp * m);

%% DSBSC - Double Sideband Suppressed Carrier

dsbsc = m .* c;

%% SSBSC - Single Sideband using Hilbert Transform (Upper Sideband)

m_hilbert = hilbert(m); % Analytical signal of message

ssbsc = real(m_hilbert .* exp(1j*2*pi*fc*t)); % SSB modulation

%% Plotting

figure('Name','Universal Communication System Simulation');

subplot(3,2,1);

plot(t, am);

title('Amplitude Modulation (AM)');

xlabel('Time (s)'); ylabel('Amplitude');

subplot(3,2,2);

plot(t, fm_signal);

title('Frequency Modulation (FM)');

xlabel('Time (s)'); ylabel('Amplitude');


Page 5 of 11

subplot(3,2,3);

plot(t, pm_signal);

title('Phase Modulation (PM)');

xlabel('Time (s)'); ylabel('Amplitude');

subplot(3,2,4);

plot(t, dsbsc);

title('DSBSC Modulation');

xlabel('Time (s)'); ylabel('Amplitude');

subplot(3,2,5);

plot(t, ssbsc);

title('SSBSC Modulation (Upper Sideband)');

xlabel('Time (s)'); ylabel('Amplitude');

subplot(3,2,6);

tdma = square(2*pi*50*t); % 50Hz time division switching

plot(t, tdma);

title('TDMA Switching Signal');

xlabel('Time (s)');
ylabel('Signal');

 Results:

Fig-3: Different types modulaion techniques in Matlab.


Page 6 of 11

 Simulation in Tinkercad:

We tested our code on Tinkercad to see how modulation and multiplexing worked.

(a)

(b)

Fig-4 :Simulation in Tinkercad by changing the resistance of potentiomete.


Page 7 of 11

Arduino Code:
// Arduino Universal Modulation Simulator
// Simulates AM, FM, PM, DSBSC, and SSBSC signals and outputs to Serial Plotter + LED

const int ledPin = 9; // PWM output to LED

float t = 0.0;
const float dt = 0.01; // Time step
const float pi = 3.1416;

// Signal parameters
const float fm = 1.0; // Message frequency (Hz)
const float fc = 10.0; // Carrier frequency (Hz)
const float Am = 1.0; // Message amplitude
const float Ac = 1.0; // Carrier amplitude

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}

void loop() {
// Generate base signals
float message = Am * sin(2 * pi * fm * t);
float carrier = Ac * sin(2 * pi * fc * t);

// --- Modulation Schemes ---


float am = (1 + 0.5 * message) * carrier;
float fm_signal = Ac * cos(2 * pi * fc * t + 2 * pi * 0.5 * message); // kf = 0.5
float pm_signal = Ac * cos(2 * pi * fc * t + pi/2 * message); // kp = pi/2
float dsbsc = message * carrier;
float ssbsc = 0.5 * (message + carrier); // Simplified SSBSC (not real SSB)

// Map DSBSC signal to PWM range (0–255) for LED brightness


int pwmValue = map(dsbsc * 100 + 100, 0, 200, 0, 255);
analogWrite(ledPin, pwmValue); // Visualize modulation on LED

// Output to Serial Plotter


Serial.print("AM:"); Serial.print(am, 4);
Serial.print(" FM:"); Serial.print(fm_signal, 4);
Serial.print(" PM:"); Serial.print(pm_signal, 4);
Serial.print(" DSBSC:"); Serial.print(dsbsc, 4);
Serial.print(" SSBSC:"); Serial.println(ssbsc, 4);

// Time step
delay(10); // Control sampling rate for Plotter (~100 Hz)
t += dt;
}
Page 8 of 11

 Assembly:

We made the real circuit and uploaded the code.

Fig-5: Hardware Setup for the project.

Fig-6: Hardware Setup and Dispalying Results of The Project in Arduino Serial Plotter.
Page 9 of 11

 Testing:

By turning the potentiometers, we could hear and see the changes in the speaker sound and LED
blinking.

Data Table

Input Expected Observed


Test No. Feature Adjustments
Condition Output Output
Volume
01 AM A0 turned Yes None
changed
Tone pitch
02 FM A1 turned Yes Tuning range
changed
LEDs blink
03 TDMA A3 adjusted Yes Delay fixed
one by one
Voltage from Checked with
04 DAC A0 moved Yes
DAC changed multimeter
Volume
01 AM A0 turned Yes None
changed

Applications

 Good for communication lab practicals


 Useful for learning about modulation and signal processing
 Helps beginners understand how signals are transmitted and shared

Advantages

 Cheap and easy to build


 Many communication methods in one project
 Can be reused for other experiments
 Great for learning by doing

Environmental Impact and Safety Issues

 Impact: Very low power, reusable components


 Safety: Use only 5V, check connections to avoid short circuits

Financial Implication

Total cost is under 1500BDT/=, and all the components are available online or in local electronics
shops. Most of them are reusable for future projects.
Page 10 of 11

Limitations

 Arduino can’t generate high-frequency signals


 SSBSC and DSBSC are basic versions, not filtered

Lifelong Learning and Future Improvements

 Add real filters for better signal clarity


 Display output using LCD or OLED
 Try adding Bluetooth or WiFi to send signals wirelessly

Conclusion

We successfully made a project using just one Arduino that shows many types of communication
techniques. It helped us understand how signals are modulated, converted, and shared using basic
electronics and coding. This project is perfect for students who want to learn communication systems
in a practical way.

References

 Simon Haykin, Communication Systems, 5th Edition, Wiley, 2013.

 B.P. Lathi, Modern Digital and Analog Communication Systems, Oxford University Press.

 MATLAB Documentation - MathWorks


https://www.mathworks.com/help

 Arduino Documentation - PWM, analogRead, tone


https://www.arduino.cc/reference/en/

 Tinkercad Circuits by Autodesk


https://www.tinkercad.com/circuit
s

 NPTEL Video Lectures – Analog Communication by Prof. S.C. Dutta Roy


https://nptel.ac.in/courses/117101051

You might also like