🥤 دستگاه فروش خودکار

کی‌پد برای پول و کد کالا، LCD برای اعتبار و سروو برای انداختن کالا.

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

قطعات لازم

کد کامل پروژه

// دستگاه فروش: A = سکه ۱۰۰۰، B = اسکناس ۵۰۰۰، ۱..۳ = کالا، # = خرید، * = پس گرفتن
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Servo.h>

const byte ROWS = 4, COLS = 4;
char keys[ROWS][COLS] = {
  {'1','2','3','A'},{'4','5','6','B'},
  {'7','8','9','C'},{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad pad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo gate;

const long prices[4] = {0, 2000, 3500, 5000};   // product 1..3 (0 unused)
long credit = 0;
int choice = 0;

void show(long top, long bottom) {
  lcd.clear();
  lcd.setCursor(0, 0); lcd.print("Etebar: "); lcd.print(top);
  lcd.setCursor(0, 1); lcd.print("Kala: "); lcd.print(choice);
  lcd.print(" $"); lcd.print(bottom);
}

void setup() {
  lcd.init();
  lcd.backlight();
  gate.attach(11);
  gate.write(0);
  show(credit, 0);
}

void loop() {
  char k = pad.getKey();
  if (!k) return;

  if (k == 'A') credit = credit + 1000;
  else if (k == 'B') credit = credit + 5000;
  else if (k == '1') choice = 1;
  else if (k == '2') choice = 2;
  else if (k == '3') choice = 3;
  else if (k == '*') {                       // cancel: give all the money back
    lcd.clear(); lcd.print("Bargasht: "); lcd.print(credit);
    credit = 0; choice = 0; delay(1500);
  } else if (k == '#' && choice > 0) {
    if (credit >= prices[choice]) {
      long change = credit - prices[choice];
      lcd.clear(); lcd.print("Befarmaid :)");
      lcd.setCursor(0, 1); lcd.print("Baghi: "); lcd.print(change);
      gate.write(90); delay(1000); gate.write(0);   // drop the product
      delay(1000);
      credit = 0;
    } else {
      lcd.clear(); lcd.print("Kam ast: "); lcd.print(prices[choice] - credit);
      delay(1500);
    }
    choice = 0;
  }
  show(credit, prices[choice]);
}

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

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