🥤 دستگاه فروش خودکار
کیپد برای پول و کد کالا، 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]);
}
چطور اجرایش کنم؟
- شبیهساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
- از پنل «نمونهها»، «دستگاه فروش خودکار» را بارگذاری کن — مدار و کد با هم میآیند.
- دکمهی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
- حالا کد را تغییر بده — عددها، پینها، ترتیب — و دوباره اجرا کن!