🗂️ منوی LCD

LCD با سه دکمه‌ی بالا/پایین/انتخاب، LED و بازر.

سطح: چالشی ⭐⭐⭐ · مود: آردوینو (سه‌بعدی + کد)

قطعات لازم

کد کامل پروژه

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int UP = 2, DOWN = 3, SEL = 4, LED = 9, BUZZER = 8;
const int PAGES = 3;
int page = 0;              // which page we are on
bool editing = false;      // false = browsing, true = changing a value
int brightness = 5;        // 0..10
bool beepOn = true;
int lastUp = HIGH, lastDown = HIGH, lastSel = HIGH;

void draw() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(editing ? "* " : "> ");
  switch (page) {
    case 0: lcd.print("Brightness"); lcd.setCursor(2, 1); lcd.print(brightness); break;
    case 1: lcd.print("Beep"); lcd.setCursor(2, 1); lcd.print(beepOn ? "ON" : "OFF"); break;
    case 2: lcd.print("Info"); lcd.setCursor(2, 1); lcd.print("tinkercad.ir"); break;
  }
}

void change(int dir) {
  if (!editing) {
    page = (page + dir + PAGES) % PAGES;      // browse pages, wrap around
  } else if (page == 0) {
    brightness = constrain(brightness + dir, 0, 10);
  } else if (page == 1) {
    beepOn = !beepOn;
  }
  analogWrite(LED, brightness * 25);
  draw();
}

void setup() {
  pinMode(UP, INPUT_PULLUP);
  pinMode(DOWN, INPUT_PULLUP);
  pinMode(SEL, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
  lcd.init();
  lcd.backlight();
  analogWrite(LED, brightness * 25);
  draw();
}

void loop() {
  int u = digitalRead(UP), d = digitalRead(DOWN), s = digitalRead(SEL);
  if (u == LOW && lastUp == HIGH) change(-1);
  if (d == LOW && lastDown == HIGH) change(1);
  if (s == LOW && lastSel == HIGH) {
    if (page != 2) editing = !editing;          // Info has nothing to edit
    if (beepOn) tone(BUZZER, 1000, 50);
    draw();
  }
  lastUp = u; lastDown = d; lastSel = s;
  delay(20);                                    // crude debounce
}

چطور اجرایش کنم؟

  1. شبیه‌ساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
  2. از پنل «نمونه‌ها»، «منوی LCD» را بارگذاری کن — مدار و کد با هم می‌آیند.
  3. دکمه‌ی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
  4. حالا کد را تغییر بده — عددها، پین‌ها، ترتیب — و دوباره اجرا کن!
این پروژه را رایگان در شبیه‌ساز اجرا کن 🤖