Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

ereader1602

A minimal e-reader running on Arduino Uno with an LCD 1602 display. Texts are stored on flash memory (PROGMEM).

⚠️ Only supports short texts due to arduino limitations (32KB).

Wiring diagram

Features

  • Read texts stored in flash memory (PROGMEM)
  • Navigate with buttons (OK, Next, Previous)
  • Menu to select texts

Menu screen Reader screen

Prerequisites

Hardware

  • Arduino Uno
  • LCD 1602
  • 3 buttons

Software

Quick start

1. Wiring

Edit pin assignments in src/pins.h to match your wiring:

// LCD
const int LCD_RS_PIN = 12;
const int LCD_EN_PIN = 11;
const int LCD_D4_PIN = 5;
const int LCD_D5_PIN = 4;
const int LCD_D6_PIN = 3;
const int LCD_D7_PIN = 2;

// Buttons
const int BTN_OK_PIN   = 13;
const int BTN_NEXT_PIN = 8;
const int BTN_PREV_PIN = 7;

2. Compile & upload

# find arduino serial port
arduino-cli board list

# compile for Uno
arduino-cli compile --fqbn arduino:avr:uno

# upload to board
arduino-cli upload -p <port> --fqbn arduino:avr:uno

# optional: only needed if "LiquidCrystal.h" is missing
arduino-cli lib install LiquidCrystal

Add/edit texts

Texts are defined in src/books.h in two parts:

  • The content in a PROGMEM variable
  • The menu entry in books[] list

1. Add/edit content

Create a new PROGMEM string (or edit an existing one):

const char my_text[] PROGMEM =
	"First sentence. "
	"Second sentence here.";

2. Update list

Add (or edit) entry in books[]:

const Book books[] = {
	{ "Tim Berners-Lee", tim },
	{ "Lorem Ipsum", lorem },
	{ "Psalm 126", hamaalot },
	{ "My New Text", my_text },
};

About

Minimal LCD 1602 e-reader running on Arduino with texts stored on flash memory.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages