กลับไปหน้ารวมไฟล์
diy-vision-testing-system-snellen-chart-with-arduino-uno-aec7b8-en.md

Transmitter Section:

The proposed vision testing system is designed to assist in eye examinations using a Snellen chart controlled by an Arduino Uno-based transmitter section. This transmitter incorporates an Arduino Uno, a 433 MHz RF transmitter, a 4x4 keyboard, and a 16x2 LCD screen using I2C communication.

The system operates by pressing the * key on the transmitter side. This initiates the test, sequentially illuminating a white LED strip corresponding to each row of the Snellen chart. The LED strip operates on 12V and highlights one row at a time to help the patient focus on the respective characters. There are seven rows on the chart, each progressively smaller to test different levels of visual acuity.

As the test begins, the patient reads the highlighted characters. Each response is entered into the system via the 4x4 keypad. The system compares the patient’s inputs with the predefined character sequence of the Snellen chart.

Based on the comparison, the Arduino Uno computes the vision result. If the patient’s vision corresponds to the standard 6/6 level, the LCD displays a message encouraging the patient to maintain good eye care habits. However, if the vision is lower than the acceptable standard, the system suggests consulting an eye specialist for further evaluation.

This system provides an automated, efficient, and user-friendly method for basic vision testing, ideal for healthcare applications.

Snellen Chart Receiver Section

This project involves a vision testing system using a Snellen chart integrated with an Arduino Uno, a 433 MHz RF receiver, and a BC548 transistor for driving white LED strips. The system highlights individual rows of the Snellen chart sequentially, aiding in effective vision testing.

The setup includes a 7-row Snellen chart, with each row having a corresponding white LED strip powered by a 12V supply. The LED strips are controlled via the Arduino Uno, which receives signals from a 433 MHz RF transmitter. The transmitter is equipped with a button that, when pressed, sends a signal to the RF receiver connected to the Arduino.

The Arduino Uno processes the signal and activates the corresponding LED strip via the BC548 transistor, which acts as a switch to drive the higher current required by the 12V LED strips. When the button is pressed, the system lights up the LED strip for a specific row on the Snellen chart. This highlights the characters in that row, making it easier for the patient to focus and read the letters accurately. The sequential illumination of the rows ensures that the patient’s vision is tested comprehensively, one row at a time.

This system is straightforward, budget-friendly, and efficient, improving traditional vision testing methods with a dynamic and user-friendly interface.

Working of System

Enhanced Technical Details: The Randomized Typography Engine (Adafruit GFX)

A typical Snellen chart puts the giant 'E' at the top, and tiny 'T F Z P' at the bottom. To prevent memorization, the system can be enhanced with a Randomized Typography Engine.

  1. The Arduino can use the <Adafruit_GFX.h> library for raw text scaling.
  2. The code draws the screen starting massive at textSize(6).
  3. The Anti-Cheating Generator: Instead of printing fixed layout strings, the Uno can rely on random().
char randomLetter = random(65, 91); // Generates a random ASCII number between 'A' and 'Z'!
display.setCursor(xOffset, yOffset);
display.print(randomLetter);
  1. The C++ code drops the textSize to 5, generates two random letters, drops to 4, and prints three. The patient is forced to genuinely read the dynamic matrix!

The HC-SR04 Focal Range Enforcer

If a patient leans slightly forward, a 20/40 vision test becomes entirely invalid! To enforce proper testing distance, the system can incorporate a Ultrasonic HC-SR04 sensor.

  • The sensor is aimed at the patient's head to measure distance.
  • The loop() continuously evaluates standard clinical distances (e.g., 20 Feet / 6 Meters).
  • If getSonarDistance() < 595cm: The patient is leaning forward!
  • The Penalty Execution: The Uno can instantly trigger display.clearDisplay(); and display a massive RED error: STEP BACK! while activating a piezo buzzer! The test physically refuses to commence until the patient moves back to exactly 6.0 Meters!

Optical Medical Hardware

For an advanced implementation, the following components are recommended:

  • Arduino Uno/Mega (Mega is vastly superior here as updating massive size 6 text arrays takes immense RAM buffering).
  • Large 2.8" SPI ILI9341 Color TFT Display or massive 20x4 I2C LCD Display.
  • HC-SR04 Ultrasonic Sonar Module (Crucial for the focal range lock).
  • A Handheld Arcade Button for the patient to press to dynamically generate a completely new chart!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE 2.0 (beta)"
author: "ballieducation"
category: "Science & Simulation"
components:
  - "1x 16x2 LCD display with I²C interface"
  - "1x Digital Multimeter"
  - "7x BC 548"
  - "1x Piezo buzzer"
  - "1x Wire cutter"
  - "7x Resistor 470k Ohm"
  - "1x Soldering Station"
  - "2x ARDUINO UNO R3"
  - "1x 433mhz rf transmitter and receiver"
  - "1x 4X4 MATRIX KEYPAD"
  - "1x Wires, etc."
description: "The Snellen Chart Vision Testing System using Arduino Uno is an innovative, automated self-test solution for eye vision assessment. Designed to accommodate large-scale testing, it enables individuals to evaluate their visual acuity efficiently within a short period. This system is particularly beneficial in rural or high-demand areas, eliminating the need for a professional to administer each test. Cost-effective and portable, it significantly reduces testing time while maintaining accuracy, making it an ideal solution for mass eye vision screening programs."
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/0c05e2c1-4119-4056-af37-ef484f54b144.ino"
  - "https://projects.arduinocontent.cc/f3fc1e3d-656d-42c0-924a-a9af47783ca6.ino"
encryptedPayload: "U2FsdGVkX1/l2JjQUQJOOb6okyBEvyWx2N7Aftm+voZ7tnUlDupy8EGxY/K6OJwBJvm7CHXbVCIO7OX3hi7d7AUYPMvEN1bm98IOQblSt1A="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/diy-vision-testing-system-snellen-chart-with-arduino-uno-aec7b8_cover.jpg"
lang: "en"
likes: 1
passwordHash: "f3f177c8e6c8bd3649286c959052a1f9af36c03e6fa5ba1204f997bbf1de5f6f"
price: 2450
seoDescription: "Build a DIY Vision Testing System with Arduino Uno and Snellen Chart. Automated, cost-effective solution for mass eye vision screening programs."
tags:
  - "Arduino User Group"
  - "Communication"
  - "Data Collection"
  - "Disability Reduction"
  - "Health"
title: "DIY Vision Testing System: Snellen Chart with Arduino Uno"
tools: []
videoLinks:
  - "https://youtu.be/1KWoavOa6HY?si=tFHSDClnijIwe-5E"
views: 5467