آردوینو آردوینو Arduino Uno سرگرمی نمایشگر LCD

آموزش ساخت بازی با آردوینو Arduino و LCD کاراکتری

نوشته شده توسط مبین خیاطی

بازی‌های الکترونیکی از دهه ۸۰ میلادی به عنوان بخشی از زندگی و اوقات فراغت تبدیل شدند. تراشه‌های الکترونیکی مختلفی در ایجاد بازی‌ها نقش آفرینی کرده‌اند. ترکیب بازی‌ها با نمایشگرهای کاراکتری، یکی از جذاب‌ترین موارد می‌باشد. همه علائم و موارد به صورت دو بعدی قابل اجرا هستند. در این آموزش روش ساخت یک بازی بسیار جذاب با استفاده از برد آردوینو، نمایشگر کاراکتری ۲×۱۶ و میکروسوئیچ خواهیم ساخت. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

  


توضیحات بازی با آردوینو


در این بازی یک شخصیت کاراکتری در حال دویدن می‌باشد. با هر بار تحریک میکروسوئیچ آن شخص یک پرش انجام می‌دهد. در دو ردیف اجسام به شخص نزدیک می‌شوند؛ دراین بازی شخص باید با پریدن از روی اجسام پایینی و راه رفتن روی آن به بازی ادامه داده و با اجسام که نزدیک می‌شوند برخورد نکند. در بازی یک شمارنده وجود دارد که مدت زمان حضور شخص در بازی را نشان می‌دهد. همان امتیاز بازی می‌باشد. دقت کنید که این بازی بسیار اعتیاد آور می‌باشد. چون در این بازی هدف بر این است که شخص رکورد خودش را شکسته و رکورد جدیدی ثبت نماید. امیدوارم این آموزش انگیزه ای برای ساختن بازی‌های بیشتر با آردوینو باشد.

 

وسایل مورد نیاز

 


اتصالات مدار بازی با آردوینو


 

اتصالات lcd (نمایشگر)

پایه ی VCC  نمایشگر = پایه ی GND آردوینو

پایه ی VDD نمایشگر = پایه ی ۵ ولت آردوینو

پایه ی VO نمایشگر = پایه ی وسط پتانسیومتر (مقاومت متغییر)

پایه ی RS نمایشگر  = پایه ۸ آردوینو

پایه ی RW نمایشگر =پایه ی  GND آردوینو

پایه ی E نمایشگر = پایه ۹ آردوینو

پایه ی D4 نمایشگر = پایه ۱۰ آردوینو

پایه ی D5 نمایشگر = پایه ۱۱ آردوینو

پایه ی D6 نمایشگر = پایه ۱۲ آردوینو

پایه ی D7 نمایشگر = پایه ۱۳ آردوینو

پایه ی A نمایشگر = پایه ی ۵ ولت آردوینو

پایه ی K نمایشگر =  پایه ی GND آردوینو

 

اتصالات بازی با آردوینو aRDUINO lcd game - دیجی اسپارک

 

اتصالات پتانسیومتر

پایه سمت راست = GND / 5V فرقی ندارد
پایه وسط = پایه ی VO نمایشگر
پایه سمت چپ = GND / 5V فرقی ندارد

 

اتصالات کلید

پایه اول = پایه ۷ آردوینو
پایه دوم = GND

 


کتابخانه بازی با آردوینو


همانطور که اشاره شد در این آموزش از نمایشگر LCD استفاده شده است. جهت راه اندازی ال سی دی کاراکتری به کتابخانه LiquidCrystal نیاز داریم. از اینرو بایستی این کتابخانه را دانلود و نصب کنیم. چنانچه روش نصب کتابخانه را نمی‌دانید، به آموزش نصب کتابخانه در نرم افزار آردوینو Arduino IDE مراجعه کنید. دو روش مجزا برای این موضوع کاملا توضیح داده شده است. روش فراخوانی کتابخانه هم مانند خط زیر می‌باشد.

#include <LiquidCrystal.h>

 

 

 


کدنویسی بازی با آردوینو


 

جهت اجرای پروژه کدهای زیر را در کامپایلر آردوینو Arduino IDE وارد کنید.


#include <LiquidCrystal.h> // برای استفاده از نمایشگر <LiquidCrystal.h> کتاب خانه 


// پیش کد (تعریف پایه ها)

#define BTN_PIN 7  // کلید 

#define SPRITE_RUN1 1
#define SPRITE_RUN2 2
#define SPRITE_JUMP 3
#define SPRITE_JUMP_UPPER '.'
#define SPRITE_JUMP_LOWER 4
#define SPRITE_TERRAIN_EMPTY ' ' 
#define SPRITE_TERRAIN_SOLID 5
#define SPRITE_TERRAIN_SOLID_RIGHT 6
#define SPRITE_TERRAIN_SOLID_LEFT 7

#define HERO_HORIZONTAL_POSITION 1    // موقعیت افقی قهرمان بر روی صفحه نمایش

#define TERRAIN_WIDTH 16
#define TERRAIN_EMPTY 0
#define TERRAIN_LOWER_BLOCK 1
#define TERRAIN_UPPER_BLOCK 2

#define HERO_POSITION_OFF 0          // قهرمان نامرئی است
#define HERO_POSITION_RUN_LOWER_1 1  // قهرمان در ردیف پایین اجرا می شود (حالت ۱)
#define HERO_POSITION_RUN_LOWER_2 2  // قهرمان در ردیف پایین اجرا می شود (حالت ۲) 

#define HERO_POSITION_JUMP_1 3       // شروع پرش
#define HERO_POSITION_JUMP_2 4       // نیمه راه بالا
#define HERO_POSITION_JUMP_3 5       // پرش در ردیف بالا است
#define HERO_POSITION_JUMP_4 6       // پرش در ردیف بالا است
#define HERO_POSITION_JUMP_5 7       // پرش در ردیف بالا است
#define HERO_POSITION_JUMP_6 8       // پرش در ردیف بالا است
#define HERO_POSITION_JUMP_7 9       // نیمه راه پایین
#define HERO_POSITION_JUMP_8 10      // در مورد زمین

#define HERO_POSITION_RUN_UPPER_1 11 // قهرمان در ردیف بالا اجرا می شود (حالت ۱)
#define HERO_POSITION_RUN_UPPER_2 12 // قهرمان در ردیف بالا اجرا می شود (حالت ۲)

// شروع کد ها از این قسمت
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);        // پایه های lcd (8, 9, 10, 11, 12, 13)
static char terrainUpper[TERRAIN_WIDTH + 1];
static char terrainLower[TERRAIN_WIDTH + 1];
static bool buttonPushed = false;

void setup() {
  initializeGraphics();
  lcd.begin(16, 2);
  pinMode(BTN_PIN, INPUT_PULLUP);
}

void loop() {

  static byte heroPos = HERO_POSITION_RUN_LOWER_1;
  static byte newTerrainType = TERRAIN_EMPTY;
  static byte newTerrainDuration = 1;
  static bool playing = false;
  static bool blink = false;
  static unsigned int distance = 0;

  // بررسی کلید
  if ( digitalRead(BTN_PIN) == LOW ) {
    buttonPushed = true;
  }

  // نمایش صفحه شروع اگر در حال حاضر بازی نیست
  if (!playing) {
    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);
    if (blink) {
      lcd.setCursor(0, 0);
      lcd.print("Press Start");
    }
    delay(250);
    blink = !blink;
    if (buttonPushed) {
      initializeGraphics();
      heroPos = HERO_POSITION_RUN_LOWER_1;
      playing = true;
      buttonPushed = false;
      distance = 0;
    }
    return;
  }

  // تعویض زمین از سمت چپ
  advanceTerrain(terrainLower, newTerrainType == TERRAIN_LOWER_BLOCK ? SPRITE_TERRAIN_SOLID : SPRITE_TERRAIN_EMPTY);
  advanceTerrain(terrainUpper, newTerrainType == TERRAIN_UPPER_BLOCK ? SPRITE_TERRAIN_SOLID : SPRITE_TERRAIN_EMPTY);

  // طراحی زمین جدید به سمت راست
  if (--newTerrainDuration == 0) {
    if (newTerrainType == TERRAIN_EMPTY) {
      newTerrainType = (random(3) == 0) ? TERRAIN_UPPER_BLOCK : TERRAIN_LOWER_BLOCK;
      newTerrainDuration = 2 + random(10);
    } else {
      newTerrainType = TERRAIN_EMPTY;
      newTerrainDuration = 10 + random(10);
    }
  }

  // پرش کند اگر دکمه فشار داده شد
  if (buttonPushed) {
    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;
    buttonPushed = false;
  }

  // اگر قهرمان با مانع برخورد کرد بازی متوقف شود
  if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {
    playing = false; 
  } else {
    if (heroPos == HERO_POSITION_RUN_LOWER_2 || heroPos == HERO_POSITION_JUMP_8) {
      heroPos = HERO_POSITION_RUN_LOWER_1;
    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {
      heroPos = HERO_POSITION_RUN_UPPER_1;
    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {
      heroPos = HERO_POSITION_JUMP_5;
    } else if (heroPos == HERO_POSITION_RUN_UPPER_2) {
      heroPos = HERO_POSITION_RUN_UPPER_1;
    } else {
      ++heroPos;
    }
    ++distance;
  }

  delay(100);
}

// نمای سفارشی برای گرافیک lcd
void initializeGraphics() {

  static byte graphics[] = {

    // موقعیت ۱ را اجرا کن
    B01100,
    B01100,
    B00000,
    B01110,
    B11100,
    B01100,
    B11010,
    B10011,

    // موقعیت ۲ را اجرا کن
    B01100,
    B01100,
    B00000,
    B01100,
    B01100,
    B01100,
    B01100,
    B01110,

    // پرش
    B01100,
    B01100,
    B00000,
    B11110,
    B01101,
    B11111,
    B10000,
    B00000,

    // پرش به سمت پایین
    B11110,
    B01101,
    B11111,
    B10000,
    B00000,
    B00000,
    B00000,
    B00000,

    // زمین
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,

    // زمین راست
    B00011,
    B00011,
    B00011,
    B00011,
    B00011,
    B00011,
    B00011,
    B00011,

    // زمین چپ
    B11000,
    B11000,
    B11000,
    B11000,
    B11000,
    B11000,
    B11000,
    B11000,
  };
  int i;

  // طراحی شخصیت با سرعت زیاد
  for (i = 0; i < 7; ++i) {
    lcd.createChar(i + 1, &graphics[i * 8]);
  }

  // زمینه را خالی کن
  for (i = 0; i < TERRAIN_WIDTH; ++i) {
    terrainUpper[i] = SPRITE_TERRAIN_EMPTY;
    terrainLower[i] = SPRITE_TERRAIN_EMPTY;
  }
}

// افزایش سطح زمین را به سمت چپ
void advanceTerrain(char* terrain, byte newTerrain) {
  for (int i = 0; i < TERRAIN_WIDTH; ++i) {
    char current = terrain[i];
    char next = (i == TERRAIN_WIDTH - 1) ? newTerrain : terrain[i + 1];
    switch (current) {
      case SPRITE_TERRAIN_EMPTY:
        terrain[i] = (next == SPRITE_TERRAIN_SOLID) ? SPRITE_TERRAIN_SOLID_RIGHT : SPRITE_TERRAIN_EMPTY;
        break;
      case SPRITE_TERRAIN_SOLID:
        terrain[i] = (next == SPRITE_TERRAIN_EMPTY) ? SPRITE_TERRAIN_SOLID_LEFT : SPRITE_TERRAIN_SOLID;
        break;
      case SPRITE_TERRAIN_SOLID_RIGHT:
        terrain[i] = SPRITE_TERRAIN_SOLID;
        break;
      case SPRITE_TERRAIN_SOLID_LEFT:
        terrain[i] = SPRITE_TERRAIN_EMPTY;
        break;
    }
  }
}

// قهرمان را برای بررسی تصادف از صفحه برمیدارد
bool drawHero(byte position, char* terrainUpper, char* terrainLower, unsigned int score) {

  bool collide = false;
  char upperSave = terrainUpper[HERO_HORIZONTAL_POSITION];
  char lowerSave = terrainLower[HERO_HORIZONTAL_POSITION];
  byte upper, lower;

  // حالت روح مناسب برای قهرمان (اجرا یا پرش)
  switch (position) {
    case HERO_POSITION_OFF:
      upper = lower = SPRITE_TERRAIN_EMPTY;
      break;
    case HERO_POSITION_RUN_LOWER_1:
      upper = SPRITE_TERRAIN_EMPTY;
      lower = SPRITE_RUN1;
      break;
    case HERO_POSITION_RUN_LOWER_2:
      upper = SPRITE_TERRAIN_EMPTY;
      lower = SPRITE_RUN2;
      break;
    case HERO_POSITION_JUMP_1:
    case HERO_POSITION_JUMP_8:
      upper = SPRITE_TERRAIN_EMPTY;
      lower = SPRITE_JUMP;
      break;
    case HERO_POSITION_JUMP_2:
    case HERO_POSITION_JUMP_7:
      upper = SPRITE_JUMP_UPPER;
      lower = SPRITE_JUMP_LOWER;
      break;
    case HERO_POSITION_JUMP_3:
    case HERO_POSITION_JUMP_4:
    case HERO_POSITION_JUMP_5:
    case HERO_POSITION_JUMP_6:
      upper = SPRITE_JUMP;
      lower = SPRITE_TERRAIN_EMPTY;
      break;
    case HERO_POSITION_RUN_UPPER_1:
      upper = SPRITE_RUN1;
      lower = SPRITE_TERRAIN_EMPTY;
      break;
    case HERO_POSITION_RUN_UPPER_2:
      upper = SPRITE_RUN2;
      lower = SPRITE_TERRAIN_EMPTY;
      break;
  }

  // تشخیص برخورد با زمین
  if (upper != ' ') {
    terrainUpper[HERO_HORIZONTAL_POSITION] = upper;
    collide = (upperSave == SPRITE_TERRAIN_EMPTY) ? false : true;
  }
  if (lower != ' ') {
    terrainLower[HERO_HORIZONTAL_POSITION] = lower;
    collide |= (lowerSave == SPRITE_TERRAIN_EMPTY) ? false : true;
  }

  // محاسبه ی ارقام مورد نیاز برای امتیاز
  byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

  // طراحی صفحه
  terrainUpper[TERRAIN_WIDTH] = '\0';
  terrainLower[TERRAIN_WIDTH] = '\0';
  char temp = terrainUpper[16 - digits];
  terrainUpper[16 - digits] = '\0';
  lcd.setCursor(0, 0);
  lcd.print(terrainUpper);
  terrainUpper[16 - digits] = temp;
  lcd.setCursor(0, 1);
  lcd.print(terrainLower);

  // نمایش امتیاز در سمت راست بالا صفحه
  lcd.setCursor(16 - digits, 0);
  lcd.print(score);

  terrainUpper[HERO_HORIZONTAL_POSITION] = upperSave;
  terrainLower[HERO_HORIZONTAL_POSITION] = lowerSave;

  return collide;
}

 

پروژه

کاربران بایستی همین بازی را با استفاده از ماژول جوی استیک راه اندازی کنند که به وسیله ی ماژول جوی استیک شخصیت بازی را هدایت کنند. 

 

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

مبین خیاطی

دانشجوی رشته ی نرم افزار کامپیوتر

حتی تو "غیر ممکن" هم هنوز یه "ممکن" هستش ...

تبادل نظر و رفع عیب با ثبت دیدگاه

۷۸ دیدگاه

  • سلام من کتاب خانه ال سی دی رو دارم و کتابخانه ای که شما فراخان کردینو ندارم برای همین نمیشه

    • برای اجرای این پروژه با قطعات نامبرده شده نیاز به کتابخانه ی LiquidCrystal میباشد ؛
      در صورت نداشتن این کتابخانه میتوانید از لینک زیر جهت دانلود کتابخانه استفاده کنید.
      https://daneshjookit.com/index.php?controller=attachment&id_attachment=643
      بعد از دانلود فایل ، میتوانید پوشه ی داخل فایل را در مسیر کتابخانه هایتان کپی کنید و بعد به راحتی امکان استفاده از کتابخانه ی مورد نظر را خواهید داشت.
      در صورت نیاز میتوانید از لینک زیر برای آموزش نصب کتابخانه استفاده کنید.
      https://digispark.ir/آموزش-نصب-کتابخانه-آردوینو/
      در صورت بروز مجدد مشکل از طریق کامنت ها اطلاع دهید.

  • Arduino: 1.8.7 (Windows 7), Board: “Arduino/Genuino Uno”

    D:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware D:\Program Files\Arduino\hardware -tools D:\Program Files\Arduino\tools-builder -tools D:\Program Files\Arduino\hardware\tools\avr -built-in-libraries D:\Program Files\Arduino\libraries -libraries C:\Users\HP\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10807 -build-path C:\Users\HP\AppData\Local\Temp\arduino_build_340965 -warnings=none -build-cache C:\Users\HP\AppData\Local\Temp\arduino_cache_988163 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=D:\Program Files\Arduino\hardware\tools\avr -verbose C:\Users\HP\Desktop\ARDUINO\VLC_media_player.lnk\VLC_media_player.lnk.ino
    D:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware D:\Program Files\Arduino\hardware -tools D:\Program Files\Arduino\tools-builder -tools D:\Program Files\Arduino\hardware\tools\avr -built-in-libraries D:\Program Files\Arduino\libraries -libraries C:\Users\HP\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10807 -build-path C:\Users\HP\AppData\Local\Temp\arduino_build_340965 -warnings=none -build-cache C:\Users\HP\AppData\Local\Temp\arduino_cache_988163 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=D:\Program Files\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=D:\Program Files\Arduino\hardware\tools\avr -verbose C:\Users\HP\Desktop\ARDUINO\VLC_media_player.lnk\VLC_media_player.lnk.ino
    Using board ‘uno’ from platform in folder: D:\Program Files\Arduino\hardware\arduino\avr
    Using core ‘arduino’ from platform in folder: D:\Program Files\Arduino\hardware\arduino\avr
    Detecting libraries used…
    “D:\\Program Files\\Arduino\\hardware\\tools\\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10807 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR “-ID:\\Program Files\\Arduino\\hardware\\arduino\\avr\\cores\\arduino” “-ID:\\Program Files\\Arduino\\hardware\\arduino\\avr\\variants\\standard” “C:\\Users\\HP\\AppData\\Local\\Temp\\arduino_build_340965\\sketch\\VLC_media_player.lnk.ino.cpp” -o nul
    VLC_media_player.lnk:1:125: error: <LiquidCrystal.h&gt: No such file or directory

    exit status 1
    <LiquidCrystal.h&gt: No such file or directory

  • Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: “Arduino/Genuino Uno”

    sketch_dec20a:3:10: error: #include expects “FILENAME” or

    #include <LiquidCrystal.h> // برای استفاده از نمایشگر <LiquidCrystal.h> کتاب خانه

    ^

    exit status 1
    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    سلام با این ارور چیکار کنم ؟؟

  • سلام ممنون از پروژه بسیار جالبتون لطفا کد برنامه رو یکبار چک کنید که درست باشه من هر وقت میخوام کد رو کامپایل کنم ارور میده که کد اشکال داره

  • این رو توی پیغام هاش میده Used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
    Not used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal.library.daneshjookit
    exit status 1
    expected ‘)’ before numeric constant

  • سلام خسته نباشید.
    می خواستم بدونم میشه رشته سیم های کابل فلت نری به نری رو از هم جدا کرد ؟؟
    من به اشتباه دکمه چهار پایه خریدم بعد ، اگه میشه پایه های اول و دوم کدوم هستند؟؟
    مرسی

    • سلام، ممنون؛
      سیم های نری به نری اصولا جدا استفاده میشوند.
      در قسمت دوم سوالتون اگه امکان داره شفاف سازی کنید بنده متوجه نشدم

  • سلام خسته نباشید.
    شما در بخش اتصالات گفتید
    پایه ی VCC نمایشگر = پایه ی GND آردوینو
    و
    پایه ی RW نمایشگر =پایه ی GND آردوینو
    و
    پایه ی K نمایشگر = پایه ی GND آردوینو
    و
    پایه دوم = GND
    و
    پایه سمت راست = GND / 5V فرقی ندارد
    و
    پایه سمت چپ = GND / 5V فرقی ندارد
    در صورتی که آردوینو فقط ۲ الی ۳ مکان GND داره ما باید چجوری این همه پایه ها رو بهش وصل کنیم؟؟؟؟؟؟؟؟؟؟؟؟
    چجوری پایه های سمت چپ و سمت راست پتانسیومتر رو مشخص کنیم ((بدون مولتی متر))

    • سلام: پایه های gnd نمایشگر که ثابت هستند.
      در پتانسیوتر نیازی به مشخص کردن پایه های چپ یا راست نیست، یکیشون رو ۵ ولت انتخاب کتید و دیگری را gnd و پایه ی وسط رو به نمایشگر متصل کنید؛
      برای استفاده از پایه های ۵v، gnd بیشتر میتوانید از شیلد پروتوتایپ یا بردبورد استفاده کنید، از یک سیم انشعاب بگیرید و به تعداد دلخواه پایه ی مثبت یا منفی داشته باشید.

        • با سلام
          شیلد پروتوتایپ بر روی پایه های آردوینو UNO قرار گرفته و علاوه بر دسترسی مجدد به پایه ها در سمت مجاور برد ۵ پایه GND و ۵ پایه VCC قرار گرفته می‌شود.

  • سلام …خسته نباشید من هر چی میزنم تصحیح کنه خطا میده و روی کتابخانه خط میکشه …کتابخانه رو هم نصب کردم ولی بازم درست نمیشه مشکل از چیه….ممنون

    • سلام؛ ممنون
      خط افزودن کتابخانه رو سایت تغییر میده و به شکل اصلی اون نمینویسه و داخل کامنت ها هم پاک میکنه، لطفا داخل اینترنت سرچ کنید نحوه ی افزودن کتابخانه به آردوینو و یا در دیگر کد های نوشته شده در دیجی اسپارک توسط دوستان از شکل صحیح افزودن کتابخانه استفاده کنید.

    • سلام، ممنونم؛
      فعلا نه ولی بزودی ویدیویی برای این آموزش تهیه خواهم کرد.
      فکر کنم با سرچ عنوان آموزش به زبان انگلیسی ویدیو ی ساخت این آموزش رو بتونید پیدا کنید.

  • سلام خسته نباشید .
    من LCD کاراکتری ۲×۱۶ خریدم ولی اسم پایه ی اولش VSS هستش ولی شما گفتین VCC .
    اشکالی داره اگه از همین پایه استفاده کنم.

    • سلام، ممنونم؛
      فکر کنم همون پایه باشه و مشکلی نداشته باشه، چون کارخانه های سازنده متفاوتی دارن ولی پایه ها اصولا طبق استاندارد و مشترک بین سازنده ها هستش

    • سلام، ممنونم؛
      پتانسیومتر هستش ولی میشه از مقاومت ۱۰ کیلو هم استفاده کرد که برای مدیریت نور نمایشگر هستش
      به پایه vo وصل میشه و بله حتما برای راه اندازی نمایشگر باید مقاومت یا پتانسیومتر باشه

  • Arduino: 1.8.12 (Windows 10), Board: “Arduino Uno”

    C:\Users\Lenovo\Documents\Arduino\sketch_apr05b\sketch_apr05b.ino: In function ‘void loop()’:

    sketch_apr05b:72:91: error: ‘gt’ was not declared in this scope

    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);

    ^~

    sketch_apr05b:72:100: error: expected ‘;’ before ‘)’ token

    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);

    ^

    C:\Users\Lenovo\Documents\Arduino\sketch_apr05b\sketch_apr05b.ino:106:9: warning: init-statement in selection statements only available with -std=c++1z or -std=gnu++1z

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^~~~~~~

    sketch_apr05b:106:18: error: ‘lt’ was not declared in this scope

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^~

    sketch_apr05b:106:21: error: expected primary-expression before ‘=’ token

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^

    sketch_apr05b:111:63: error: ‘gt’ was not declared in this scope

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^~

    sketch_apr05b:111:65: error: expected ‘)’ before ‘;’ token

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^

    sketch_apr05b:111:67: error: ‘gt’ was not declared in this scope

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^~

    sketch_apr05b:111:72: error: expected ‘;’ before ‘)’ token

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^

    sketch_apr05b:113:5: error: ‘else’ without a previous ‘if’

    } else {

    ^~~~

    sketch_apr05b:116:28: error: expected ‘)’ before ‘;’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:116:28: error: expected ‘)’ before ‘;’ token

    sketch_apr05b:116:29: error: expected primary-expression before ‘=’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:116:53: error: ‘amp’ was not declared in this scope

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^~~

    sketch_apr05b:116:72: error: ‘lt’ was not declared in this scope

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^~

    sketch_apr05b:116:75: error: expected primary-expression before ‘=’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:116:172: error: expected ‘;’ before ‘)’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:118:7: error: ‘else’ without a previous ‘if’

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^~~~

    C:\Users\Lenovo\Documents\Arduino\sketch_apr05b\sketch_apr05b.ino:118:16: warning: init-statement in selection statements only available with -std=c++1z or -std=gnu++1z

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^~~~~~~

    sketch_apr05b:118:28: error: expected primary-expression before ‘=’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:118:60: error: expected ‘)’ before ‘;’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:118:129: error: expected ‘;’ before ‘)’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_apr05b:120:7: error: ‘else’ without a previous ‘if’

    } else if (heroPos == HERO_POSITION_RUN_UPPER_2) {

    ^~~~

    C:\Users\Lenovo\Documents\Arduino\sketch_apr05b\sketch_apr05b.ino: In function ‘void initializeGraphics()’:

    sketch_apr05b:209:18: error: ‘lt’ was not declared in this scope

    for (i = 0; i < 7; ++i) {

    ^~

    sketch_apr05b:209:23: error: expected ‘)’ before ‘;’ token

    for (i = 0; i < 7; ++i) {

    ^

    sketch_apr05b:209:28: error: expected ‘;’ before ‘)’ token

    for (i = 0; i < 7; ++i) {

    ^

    sketch_apr05b:214:18: error: ‘lt’ was not declared in this scope

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^~

    sketch_apr05b:214:35: error: expected ‘)’ before ‘;’ token

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    sketch_apr05b:214:40: error: expected ‘;’ before ‘)’ token

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    C:\Users\Lenovo\Documents\Arduino\sketch_apr05b\sketch_apr05b.ino: In function ‘void advanceTerrain(char*, byte)’:

    sketch_apr05b:222:22: error: ‘lt’ was not declared in this scope

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^~

    sketch_apr05b:222:39: error: expected ‘)’ before ‘;’ token

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    sketch_apr05b:222:43: error: ‘i’ was not declared in this scope

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    C:\Users\Lenovo\Documents\Arduino\sketch_apr05b\sketch_apr05b.ino: In function ‘bool drawHero(byte, char*, char*, unsigned int)’:

    sketch_apr05b:301:25: error: ‘gt’ was not declared in this scope

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^~

    sketch_apr05b:301:27: error: expected ‘)’ before ‘;’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_apr05b:301:33: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_apr05b:301:56: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_apr05b:301:78: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_apr05b:301:99: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    exit status 1
    ‘gt’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • سلام برا من این ارور میاد
    Arduino: 1.8.10 (Windows 10), Board: “Arduino/Genuino Uno”

    sketch_apr17a:1:10: error: #include expects “FILENAME” or

    #include <LiquidCrystal.h> // برای استفاده از نمایشگر <LiquidCrystal.h> کتاب خانه

    ^

    exit status 1
    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • با سلام.
    ببخشیدا‌ ولی کد ایراد داره.
    خط ۲۹۷ رو کامپایلر‌ اشتباه میگیره

    • با سلام و تشکر از شما
      خط ۲۹۷ کدی وجود ندارد. لطفا دقیق‌تر بررسی کنید. اگر هم موقع کپی کردن کدها دقت کافی نداشته باشید، با مشکل مواجه میشوید.

    • سلام؛
      بدون استفاده از ولوم یا مقاومت نمیشه نمایشگر را راه اندازی کرد، در صورت نداشتن ولوم میتوانید از یه مقاومت ۱۰K استفاده کنید.

  • برای من این ارور رو میده
    Arduino: 1.8.12 (Windows 7), Board: “Arduino Uno”

    sketch_may31a:1:10: error: #include expects “FILENAME” or

    #include <LiquidCrystal.h>

    ^

    exit status 1
    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • و این ارور
    Arduino: 1.8.12 (Windows 7), Board: “Arduino Uno”

    sketch_may31a:1:10: error: #include expects “FILENAME” or

    #include <LiquidCrystal.h> // برای استفاده از نمایشگر <LiquidCrystal.h> کتاب خانه

    ^

    exit status 1
    #include expects “FILENAME” or

    A library named LiquidCrystal.library.daneshjookit already exists
    A library named LiquidCrystal.library.daneshjookit already exists

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • وArduino: 1.8.12 (Windows 7), Board: “Arduino Uno”

    C:\Users\TAK\Desktop\sketch_may31a\sketch_may31a\sketch_may31a.ino: In function ‘void loop()’:

    sketch_may31a:70:91: error: ‘gt’ was not declared in this scope

    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);

    ^~

    sketch_may31a:70:100: error: expected ‘;’ before ‘)’ token

    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);

    ^

    C:\Users\TAK\Desktop\sketch_may31a\sketch_may31a\sketch_may31a.ino:104:9: warning: init-statement in selection statements only available with -std=c++1z or -std=gnu++1z

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^~~~~~~

    sketch_may31a:104:18: error: ‘lt’ was not declared in this scope

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^~

    sketch_may31a:104:21: error: expected primary-expression before ‘=’ token

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^

    sketch_may31a:109:63: error: ‘gt’ was not declared in this scope

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^~

    sketch_may31a:109:65: error: expected ‘)’ before ‘;’ token

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^

    sketch_may31a:109:67: error: ‘gt’ was not declared in this scope

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^~

    sketch_may31a:109:72: error: expected ‘;’ before ‘)’ token

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^

    sketch_may31a:111:5: error: ‘else’ without a previous ‘if’

    } else {

    ^~~~

    sketch_may31a:114:28: error: expected ‘)’ before ‘;’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:114:28: error: expected ‘)’ before ‘;’ token

    sketch_may31a:114:29: error: expected primary-expression before ‘=’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:114:53: error: ‘amp’ was not declared in this scope

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^~~

    sketch_may31a:114:72: error: ‘lt’ was not declared in this scope

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^~

    sketch_may31a:114:75: error: expected primary-expression before ‘=’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:114:172: error: expected ‘;’ before ‘)’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:116:7: error: ‘else’ without a previous ‘if’

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^~~~

    C:\Users\TAK\Desktop\sketch_may31a\sketch_may31a\sketch_may31a.ino:116:16: warning: init-statement in selection statements only available with -std=c++1z or -std=gnu++1z

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^~~~~~~

    sketch_may31a:116:28: error: expected primary-expression before ‘=’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:116:60: error: expected ‘)’ before ‘;’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:116:129: error: expected ‘;’ before ‘)’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_may31a:118:7: error: ‘else’ without a previous ‘if’

    } else if (heroPos == HERO_POSITION_RUN_UPPER_2) {

    ^~~~

    C:\Users\TAK\Desktop\sketch_may31a\sketch_may31a\sketch_may31a.ino: In function ‘void initializeGraphics()’:

    sketch_may31a:207:18: error: ‘lt’ was not declared in this scope

    for (i = 0; i < 7; ++i) {

    ^~

    sketch_may31a:207:23: error: expected ‘)’ before ‘;’ token

    for (i = 0; i < 7; ++i) {

    ^

    sketch_may31a:207:28: error: expected ‘;’ before ‘)’ token

    for (i = 0; i < 7; ++i) {

    ^

    sketch_may31a:212:18: error: ‘lt’ was not declared in this scope

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^~

    sketch_may31a:212:35: error: expected ‘)’ before ‘;’ token

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    sketch_may31a:212:40: error: expected ‘;’ before ‘)’ token

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    C:\Users\TAK\Desktop\sketch_may31a\sketch_may31a\sketch_may31a.ino: In function ‘void advanceTerrain(char*, byte)’:

    sketch_may31a:220:22: error: ‘lt’ was not declared in this scope

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^~

    sketch_may31a:220:39: error: expected ‘)’ before ‘;’ token

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    sketch_may31a:220:43: error: ‘i’ was not declared in this scope

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    C:\Users\TAK\Desktop\sketch_may31a\sketch_may31a\sketch_may31a.ino: In function ‘bool drawHero(byte, char*, char*, unsigned int)’:

    sketch_may31a:299:25: error: ‘gt’ was not declared in this scope

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^~

    sketch_may31a:299:27: error: expected ‘)’ before ‘;’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_may31a:299:33: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_may31a:299:56: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_may31a:299:78: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_may31a:299:99: error: expected ‘;’ before ‘)’ token

    byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    Multiple libraries were found for “LiquidCrystal.h”
    Used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal
    Not used: C:\Users\TAK\Documents\Arduino\libraries\LiquidCrystal.library.daneshjookit
    exit status 1
    ‘gt’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

      • سلام ببخشید درست نشد و این ارور رو می دهد لطفا کمکم کنید
        Arduino: 1.8.13 (Windows 7), Board: “Arduino Uno”

        C:\Users\parnian\Desktop\sketch_aug13a\sketch_aug13a.ino: In function ‘void loop()’:

        sketch_aug13a:69:91: error: expected primary-expression before ‘<' token

        drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance &<;&<; 3);

        ^

        sketch_aug13a:69:92: error: expected primary-expression before ';' token

        drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance &<;&<; 3);

        ^

        sketch_aug13a:69:94: error: expected primary-expression before '<' token

        drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance &<;&<; 3);

        ^

        sketch_aug13a:69:95: error: expected primary-expression before ';' token

        drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance &<;&<; 3);

        ^

        sketch_aug13a:69:98: error: expected ';' before ')' token

        drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance &<;&<; 3);

        ^

        sketch_aug13a:103:18: error: 'lt' was not declared in this scope

        if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

        ^~

        sketch_aug13a:103:21: error: expected primary-expression before '=' token

        if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

        ^

        sketch_aug13a:108:63: error: expected primary-expression before '<' token

        if (drawHero(heroPos, terrainUpper, terrainLower, distance &<;&<; 3)) {

        ^

        sketch_aug13a:108:64: error: expected primary-expression before ';' token

        if (drawHero(heroPos, terrainUpper, terrainLower, distance &<;&<; 3)) {

        ^

        sketch_aug13a:108:64: error: expected ')' before ';' token

        sketch_aug13a:108:66: error: expected primary-expression before '<' token

        if (drawHero(heroPos, terrainUpper, terrainLower, distance &<;&<; 3)) {

        ^

        sketch_aug13a:108:67: error: expected primary-expression before ';' token

        if (drawHero(heroPos, terrainUpper, terrainLower, distance &<;&<; 3)) {

        ^

        sketch_aug13a:108:70: error: expected ';' before ')' token

        if (drawHero(heroPos, terrainUpper, terrainLower, distance &<;&<; 3)) {

        ^

        sketch_aug13a:110:5: error: 'else' without a previous 'if'

        } else {

        ^~~~

        sketch_aug13a:113:26: error: expected primary-expression before '<' token

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:113:27: error: expected primary-expression before ';' token

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:113:27: error: expected ')' before ';' token

        sketch_aug13a:113:27: error: expected ')' before ';' token

        sketch_aug13a:113:28: error: expected primary-expression before '=' token

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:113:52: error: 'amp' was not declared in this scope

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^~~

        sketch_aug13a:113:71: error: 'lt' was not declared in this scope

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^~

        sketch_aug13a:113:74: error: expected primary-expression before '=' token

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:113:171: error: expected ';' before ')' token

        } else if ((heroPos &<;= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:115:7: error: 'else' without a previous 'if'

        } else if (heroPos &<;= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

        ^~~~

        sketch_aug13a:115:25: error: expected primary-expression before '<' token

        } else if (heroPos &<;= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:115:26: error: expected primary-expression before ';' token

        } else if (heroPos &<;= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:115:27: error: expected primary-expression before '=' token

        } else if (heroPos &<;= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:115:59: error: expected ')' before ';' token

        } else if (heroPos &<;= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

        ^

        sketch_aug13a:115:128: error: expected ';' before ')' token

        } else if (heroPos &’ token

        byte digits = (score &>; 9999) ? 5 : (score &>; 999) ? 4 : (score &>; 99) ? 3 : (score &>; 9) ? 2 : 1;

        ^

        sketch_aug13a:298:26: error: expected primary-expression before ‘;’ token

        byte digits = (score &>; 9999) ? 5 : (score &>; 999) ? 4 : (score &>; 99) ? 3 : (score &>; 9) ? 2 : 1;

        ^

        sketch_aug13a:298:26: error: expected ‘)’ before ‘;’ token

        sketch_aug13a:298:32: error: expected ‘;’ before ‘)’ token

        byte digits = (score &>; 9999) ? 5 : (score &>; 999) ? 4 : (score &>; 99) ? 3 : (score &>; 9) ? 2 : 1;

        ^

        sketch_aug13a:298:54: error: expected ‘;’ before ‘)’ token

        byte digits = (score &>; 9999) ? 5 : (score &>; 999) ? 4 : (score &>; 99) ? 3 : (score &>; 9) ? 2 : 1;

        ^

        sketch_aug13a:298:75: error: expected ‘;’ before ‘)’ token

        byte digits = (score &>; 9999) ? 5 : (score &>; 999) ? 4 : (score &>; 99) ? 3 : (score &>; 9) ? 2 : 1;

        ^

        sketch_aug13a:298:95: error: expected ‘;’ before ‘)’ token

        byte digits = (score &>; 9999) ? 5 : (score &>; 999) ? 4 : (score &>; 99) ? 3 : (score &>; 9) ? 2 : 1;

        ^

        exit status 1

        expected primary-expression before ‘ Preferences.

        • با سلام
          به نظر میرسد در انتقال کد خطایی وجود داشته باشد. مجدد کد را کپی و به نرم افزار انتقال دهید.

  • سلام من کد را اپلود کردم اما یه چنین پیامی به نمایش اومد

    Arduino: 1.8.13 (Windows 10), Board: “Arduino Uno”

    sketch_oct14a:2:10: error: #include expects “FILENAME” or

    #include ;LiquidCrystal.h> // برای استفاده از نمایشگر <LiquidCrystal.h> کتاب خانه

    ^

    exit status 1

    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    به نظرتون چیکار کنم؟؟

  • سلام
    وقتتی برنامه را آپلود میکنم این ارور را می دهد دلیلش چیست
    Arduino: 1.8.13 (Windows 7), Board: “Arduino Uno”

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino: In function ‘void loop()’:

    sketch_feb08a:70:91: error: ‘gt’ was not declared in this scope

    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);

    ^~

    sketch_feb08a:70:100: error: expected ‘;’ before ‘)’ token

    drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3);

    ^

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino:104:9: warning: init-statement in selection statements only available with -std=c++1z or -std=gnu++1z

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^~~~~~~

    sketch_feb08a:104:18: error: ‘lt’ was not declared in this scope

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^~

    sketch_feb08a:104:21: error: expected primary-expression before ‘=’ token

    if (heroPos <= HERO_POSITION_RUN_LOWER_2) heroPos = HERO_POSITION_JUMP_1;

    ^

    sketch_feb08a:109:63: error: ‘gt’ was not declared in this scope

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^~

    sketch_feb08a:109:65: error: expected ‘)’ before ‘;’ token

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^

    sketch_feb08a:109:67: error: ‘gt’ was not declared in this scope

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^~

    sketch_feb08a:109:72: error: expected ‘;’ before ‘)’ token

    if (drawHero(heroPos, terrainUpper, terrainLower, distance >> 3)) {

    ^

    sketch_feb08a:111:5: error: ‘else’ without a previous ‘if’

    } else {

    ^~~~

    sketch_feb08a:114:28: error: expected ‘)’ before ‘;’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:114:28: error: expected ‘)’ before ‘;’ token

    sketch_feb08a:114:29: error: expected primary-expression before ‘=’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:114:53: error: ‘amp’ was not declared in this scope

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^~~

    sketch_feb08a:114:72: error: ‘lt’ was not declared in this scope

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^~

    sketch_feb08a:114:75: error: expected primary-expression before ‘=’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:114:172: error: expected ‘;’ before ‘)’ token

    } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos <= HERO_POSITION_JUMP_5) && terrainLower[HERO_HORIZONTAL_POSITION] != SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:116:7: error: ‘else’ without a previous ‘if’

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^~~~

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino:116:16: warning: init-statement in selection statements only available with -std=c++1z or -std=gnu++1z

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^~~~~~~

    sketch_feb08a:116:28: error: expected primary-expression before ‘=’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:116:60: error: expected ‘)’ before ‘;’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:116:129: error: expected ‘;’ before ‘)’ token

    } else if (heroPos >= HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) {

    ^

    sketch_feb08a:118:7: error: ‘else’ without a previous ‘if’

    } else if (heroPos == HERO_POSITION_RUN_UPPER_2) {

    ^~~~

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino: In function ‘void initializeGraphics()’:

    sketch_feb08a:207:18: error: ‘lt’ was not declared in this scope

    for (i = 0; i < 7; ++i) {

    ^~

    sketch_feb08a:207:23: error: expected ‘)’ before ‘;’ token

    for (i = 0; i < 7; ++i) {

    ^

    sketch_feb08a:207:28: error: expected ‘;’ before ‘)’ token

    for (i = 0; i < 7; ++i) {

    ^

    sketch_feb08a:212:18: error: ‘lt’ was not declared in this scope

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^~

    sketch_feb08a:212:35: error: expected ‘)’ before ‘;’ token

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    sketch_feb08a:212:40: error: expected ‘;’ before ‘)’ token

    for (i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino: In function ‘void advanceTerrain(char*, byte)’:

    sketch_feb08a:220:22: error: ‘lt’ was not declared in this scope

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^~

    sketch_feb08a:220:39: error: expected ‘)’ before ‘;’ token

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    sketch_feb08a:220:43: error: ‘i’ was not declared in this scope

    for (int i = 0; i < TERRAIN_WIDTH; ++i) {

    ^

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino: In function ‘bool drawHero(byte, char*, char*, unsigned int)’:

    sketch_feb08a:299:8: error: expected unqualified-id before ‘=’ token

    byte = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_feb08a:299:26: error: expected ‘;’ before ‘)’ token

    byte = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_feb08a:299:49: error: expected ‘;’ before ‘)’ token

    byte = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_feb08a:299:71: error: expected ‘;’ before ‘)’ token

    byte = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_feb08a:299:92: error: expected ‘;’ before ‘)’ token

    byte = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1;

    ^

    sketch_feb08a:304:33: error: ‘digits’ was not declared in this scope

    char temp = terrainUpper[16 – digits];

    ^~~~~~

    C:\Users\ALIREZA\Desktop\sketch_feb08a\sketch_feb08a.ino:304:33: note: suggested alternative: ‘gets’

    char temp = terrainUpper[16 – digits];

    ^~~~~~

    gets

    exit status 1

    ‘gt’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • با سلام
      در متن کدها به جای gt از علامت کوچک و بزرگ < و > استفاده کنید. این مورد در کدها پیش آمده است و برطرف خواهد شد.

  • سلام.وقت بخیر
    آیا میتوان به جای پتانسیومتری ۵۰ کیلو اهم پتانسیومتر ۱۰ کیلو اهم استفاده کنم؟؟

  • Arduino: 1.8.13 (Windows 10), Board: “Arduino Uno”

    bazi:2:10: error: #include expects “FILENAME” or

    exit status 1

    #include expects “FILENAME” or

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    سلام این ارور رو دارم توی برنامه شکل از چی هست

    • با سلام
      کد برنامه به درستی آپلود نشده است. لطفا کد را کپی و در نرم افزار آردوینو کپی کنید.

  • سلام دوستان لطفا در کد این تغییرات را اعمال نمایید
    بجای & از & استفاده کنید;
    بجای > از استفاده کنید;
    کد درست میشود ;