list of products from Amazon (Not mine, i just link them!) Scroll Down For Article! Note: Elegoo boards are not Arduino, but they are compatible with Arduino IDE and are mutch more affordable!
3 Practical Arduino Projects: Displays, Frequency Measurement & Button Counter
Whether you're a beginner eager to dive into the world of Arduino electronics or a seasoned hobbyist looking for creative project ideas, this guide features three hands-on projects designed to boost your skills and confidence. You'll explore how to use 7-segment displays, shift registers, push buttons, and LCDs in simple yet powerful Arduino projects. Each section includes a detailed schematic, cleanly formatted code, and an explanation to make implementation easy. These projects are perfect for learning about digital displays, pulse counting, frequency measurement, and user input with buttons. From DIY counters to signal analyzers, these projects will make your electronics learning journey more interactive and fun.
Tools and Components Required
- Arduino Uno or compatible board
- 7-Segment Displays (Common Cathode)
- Shift Register (74HC595)
- Push Button
- 16x2 Liquid Crystal Display (LCD)
- 220 ohm Resistors
- Breadboard and Jumper Wires
- Digital signal source (for frequency input)
- USB Cable for programming Arduino
Project 1: Dual 7-Segment Display with Shift Register
This Arduino project demonstrates how to control two 7-segment displays using a 74HC595 shift register. It helps reduce the number of output pins needed while still displaying two digits. Perfect for learning multiplexing and binary to segment conversion using shiftOut()
.
Schematic:

Code:
const int dataPin = A5;
const int clockPin = A4;
const int resetPin = A3;
byte numbers[] = {
0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F
};
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(resetPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 10; i++) {
displayNumber(i, (i + 1) % 10);
delay(1000);
}
}
void displayNumber(int num1, int num2) {
digitalWrite(resetPin, LOW);
digitalWrite(resetPin, HIGH);
shiftOut(dataPin, clockPin, MSBFIRST, numbers[num1]);
shiftOut(dataPin, clockPin, MSBFIRST, numbers[num2]);
}
Project 2: Frequency Measurement Using LCD
Measure the frequency of a digital signal using an LCD and Arduino. This project introduces you to the LiquidCrystal library and shows how to calculate frequency from time differences between rising and falling signal edges. A great project for learning pulse detection and real-time measurement.
Schematic:

Code:
#include
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
const int signalPin = A0;
unsigned long pulseStartTime = 0;
unsigned long pulseCount = 0;
float frequency = 0.0;
void setup() {
pinMode(signalPin, INPUT);
lcd.begin(16, 2);
lcd.print("Frequency(Hz):");
}
void loop() {
if (digitalRead(signalPin) == HIGH) {
if (pulseStartTime == 0) {
pulseStartTime = millis();
}
} else {
if (pulseStartTime != 0) {
pulseCount++;
unsigned long pulseDuration = millis() - pulseStartTime;
frequency = 1000.0 / (pulseDuration / (pulseCount - 1));
pulseStartTime = 0;
}
}
lcd.setCursor(9, 1);
lcd.print(frequency, 4);
delay(100);
}
Project 3: Button-Controlled 7-Segment Counter
This simple project displays numbers 0 to 9 on a 7-segment display with every button press. It's perfect for practicing digital input using a push button and output using display segments. Great for learning how to build counters with Arduino.
Schematic:

Code:
int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
int buttonPins = A0;
byte numbers[10] = {
0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F
};
int counter = 0;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(buttonPins, INPUT);
}
void loop() {
if(digitalRead(buttonPins) == HIGH){
displayNumber(counter);
counter = (counter + 1) % 10;
delay(1000);
}
}
void displayNumber(int num) {
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], numbers[num] & (1 << i));
}
}
Conclusion
These three Arduino projects are an excellent starting point for exploring the world of embedded systems and microcontroller applications. You’ve learned how to drive 7-segment displays, capture and calculate signal frequency, and handle user input with buttons. Whether you're building a DIY digital counter, a frequency meter, or experimenting with shift registers and LCDs, these practical projects will help you gain valuable hands-on experience. Keep experimenting, and you’ll unlock endless possibilities with Arduino!
list of products from Amazon (Not mine, i just link them!)
Please NOTE that ELEGOO is not Arduino but it is compatible with Arduino IDE, and mutch cheaper!
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
0 Comments