جستجو برای:
  • شیراز کدرز
    • Empire
    • سیاست حریم خصوصی
  • آموزش ها
    • آموزش آردوینو مقدماتی
      • آموزش آردوینو جلسه اول
      • آموزش آردوینو جلسه دوم
      • آموزش آردوینو جلسه سوم
      • آموزش آردوینو جلسه چهارم
      • آموزش آردوینو جلسه پنجم
      • آموزش آردوینو جلسه ششم
      • آموزش آردوینو جلسه هفتم
      • آموزش آردوینو جلسه هشتم
      • آموزش آردوینو جلسه نهم
      • آموزش آردوینو جلسه دهم
    • آموزش آردوینو مبتدی
      • آموزش آردوینو جلسه یازدهم
      • آموزش آردوینو جلسه دوازدهم
      • آموزش آردوینو جلسه سیزدهم
    • آموزش الکترونیک | بایگانی
      • آموزش الکترونیک مقدماتی درس 1
      • آموزش الکترونیک مقدماتی درس 2
      • آموزش الکترونیک مقدماتی درس 3
      • آموزش الکترونیک مقدماتی درس 4
  • حساب کاربری
    • حساب کاربری من
    • پنل کاربری پیشرفته
    • کیف پول
    • سفارش‌ها
    • خروج
  • فروشگاه
    • محصولات
شیراز کدرز
  • شیراز کدرز
    • Empire
    • سیاست حریم خصوصی
  • آموزش ها
    • آموزش آردوینو مقدماتی
      • آموزش آردوینو جلسه اول
      • آموزش آردوینو جلسه دوم
      • آموزش آردوینو جلسه سوم
      • آموزش آردوینو جلسه چهارم
      • آموزش آردوینو جلسه پنجم
      • آموزش آردوینو جلسه ششم
      • آموزش آردوینو جلسه هفتم
      • آموزش آردوینو جلسه هشتم
      • آموزش آردوینو جلسه نهم
      • آموزش آردوینو جلسه دهم
    • آموزش آردوینو مبتدی
      • آموزش آردوینو جلسه یازدهم
      • آموزش آردوینو جلسه دوازدهم
      • آموزش آردوینو جلسه سیزدهم
    • آموزش الکترونیک | بایگانی
      • آموزش الکترونیک مقدماتی درس 1
      • آموزش الکترونیک مقدماتی درس 2
      • آموزش الکترونیک مقدماتی درس 3
      • آموزش الکترونیک مقدماتی درس 4
  • حساب کاربری
    • حساب کاربری من
    • پنل کاربری پیشرفته
    • کیف پول
    • سفارش‌ها
    • خروج
  • فروشگاه
    • محصولات
0

ورود و ثبت نام

وبلاگ

آموزش آردوینو جلسه پنجم

30 خرداد 1399
ارسال شده توسط admin_hb
آموزش آردوینو | مقدماتی ، همه دسته ها
241 بازدید

در جلسات گذشته با کار با آردوینو را یاد گرفتیم و در جلسه قبل اطلاعاتی را از آردوینو به کامپیوتر فرستادیم؛ اما همیشه امکان استفاده از کامپیوتر برای نمایش اطلاعات وجود ندارد. برای همین از نمایشگر استفاده میکنیم. در این جلسه نمایشگر 1602 را با آردوینو راه اندازی میکنیم.

مرور متغیر ها

int: این متغیر از نوع عدد صحیح است؛ یعنی میتواند عدد های 0، کوچک تر از 0 و بزرگتر از 0 را درون خود ذخیره کند و در شرایط لازم مقدار آن را تغییر و یا از مقدار آن استفاده کنیم.

bool: از این متغیر برای  ذخیره درستی یا نادرستی استفاده میشود؛ یعنی این متغیر توانایی ذخیره سازی دو مقدار true یا 1 یا درست و false یا 0 یا نادرست را در خود دارد.

String: این متغیر رشته ها را در خود ذخیره میکند؛ رشته ها شامل حروف، اعداد و یا کاراکتر ها هستند. رشته های میتوانند شامل یک یا چند کاراکتر باشند!

uint8_t و uint16_t: این اعداد برای ذخیره اعداد 8 و 16 بیت هستند؛ تعداد بیت های قابل ذخیره سازی در نام متغیر ها آمده است. فعلا با این دو متغیر کاری نداریم…

byte:  از این متغیر برای ذخیره سازی مجموعه ای از اعداد باینری استفاده میکنیم؛ از این متغیر میتوانیم برای ذخیره بیت مپ ها استفاده کنیم که در جلسات دیگر توضیح خواهیم داد.

float: این متغیر اعداد اعشاری را در خود نگهداری میکند؛ مثلا برای ذخیره سازی عدد پی از این متغیر میتوانیم استفاده کنیم.

 char:  این متغیر میتواند کاراکتر ها را درخود ذخیره کند؛ مثلا برای ذخیره کاراکتر A و یا ساخت مجموعه ای از اعداد و کاراکتر های از این متغیر استفاده میکنیم.

نمایشگر کاراکتری 1602

این نوع از نمایشگر ها، قیمت پایین تری نسبت به دیگر نمایشگر ها دارد و راه اندازی بسیار ساده ای دارد! این نمایشگر کاربرد های بسیاری دارد و تقریبا در همه فروشگاه های قطعات یافت میشود…

تصویر این نمایشگر را در زیر مشاهده میکنید:

نمایشگر 1602

این نمایشگر دارای 16 پین است:

نام پین

شماره پین

تغذیه منفی

1-VSS (-)

تغذیه مثبت

2-VDD (+)

تنظیم کنتراست

3-VE (Contrast)

انتخاب رجیستر

4-RS (Register Select)

نوشتن / خواندن

5-RW (Read/Write)

فعال کردن

6-E (Enable)

دیتا 0

7-D0 (DATA0)

دیتا 1

8-D1 (DATA1)

دیتا 2

9-D2 (DATA2)

دیتا 3

10-D3 (DATA3)

دیتا 4

11-D4 (DATA4)

دیتا 5

12-D5 (DATA5)

دیتا 6

13-D6 (DATA6)

دیتا 7

14-D7 (DATA7)

مثبت LED پس زمینه

15-Anode (Backlight+)

منفی LED پس زمینه

16-Katode (Backlight-)

 

برای جلوگیری از سردرگمی شما، به صورت ساده توضیح میدهیم اما در جلسات آینده به توضیحات تخصصی تر به توضیح آنها میپردازیم…

پین VSS پین منفی تغذیه LCD است که باید به GND آردوینو متصل شود و پین VDD پین مثبت LCD است که باید به پین 5 ولت آردوینو وصل شود.

پین  VE برای تنظیم کنتراست یا شدت نور پیکسل ها است که میتوانید مستقیما به پین GND آردوینو متصل کنید و یا توسط یک پوتانسیومتر شدت آن را کم و زیاد کرد.

پین RS برای انتخاب رجیستر ها است؛ رجیستر ها برای انتخاب این که کدام کاراکتر در نمایشگر انتخاب شود و کاراکتر بر روی آن نمایش داده شود است.

پین RW برای تایین حالت نوشتن و خواندن روی LCD است که ما آن را به GND متصل میکنیم اما در جلسه بعد به آن نیاز نخواهیم داشت(به دلیل استفاده از ماژول I2C)

پین EN برای فعالسازی نمایشگر است؛ یعنی با خاموش و روشن یا اصطلاحا HIGH و LOW کردن این پین میتوانیم نمایشگر را فعال یا غیرفعال کنیم.

پین های D0 تا D7 برای ارسال دیتا یا اطلاعات است که آن ها را به پین های دیجیتال دلخواه متصل میکنیم؛ لازم به ذکر است از پین های D0 تا D3 استفاده نخواهیم کرد!

دو پین آخر متعلق به پین های بک لایت یا نور پس زمینه است؛ پین Katode را به GND و پین Anode را به مثبت وصل میکنیم و یا برای کنترل آن از یک پوتانسیومتر استفاده میکنیم.

راه اندازی LCD1602

LCD به معنای Liquid Crystal Display است؛ این نمایشگر دارای دو سطر و 16 ستون است!

مدار:

آردوینو و LCD1602

اتصالات:

VSS – GND

VDD –  +5V

VE – GND

RS – 10

RW – GND

E – 9

D4 – 8

D5 – 7

D6 – 6

D7 – 5

کد:

#include <liquidCrystal.h>

int rs = 10, en = 9, d4 = 8, d5 = 7, d6 = 6, d7 = 5;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
     lcd.begin(16, 2);
     lcd.print("hello, world!");
}
void loop(){
     lcd.setCursor(0, 1);
     lcd.print(millis() / 1000);
} 

نتیجه:

ال سی دی 1602

توضیحات:

کد بالا یک نمونه ساده برای درک بهتر شما است؛ در آخر همین آموزش لینک دانلود کد های اصلی را قرار میدهیم.

در خط اول کتابخانه را اضافه میکنیم؛ کتابخانه ها مجموعه ای از کد ها و توایع هستند که کد نوشتن را ساده تر میکنند و باعث میشوند حجم کمتری از کد ها را استفاده کنیم.

برای اضافه کردن کتابخانه ابتدا کتابخانه مورد نظر را دانلود و از مسیر

Sketch > Include Library > Add .ZIP Library

 کتابخانه مورد نظر را انتخاب کنید تا به صورت خودکار نصب شود و یا به قسمت Manage Libraries رفته و کتابخانه را به صورت آنلاین به روزرسانی و یا دانلود کنید.

کتابخانه LiquidCrystal به طور پیشفرض بر روی نرم افزار آردوینو نصب میباشد.

#include <liquidCrystal.h> 

آموزش نصب کتابخانه آردوینو:

در خط 3 به جای اینکه متغیر ها را تک تک تعریف کنیم به صورت یکجا مینویسیم و به وسیله کاما جدا میکنیم:

int rs = 10, en = 9, d4 = 8, d5 = 7, d6 = 6, d7 = 5;  

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

در کد نوشته شده پین های LCD را تعریف میکنیم و نام کلاس را lcd قرار داده این که میتوانید از هر اسم دیگری استفاده کنید.

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);  

این نوع از نمایشگر انواع مختلفی دارد و در هرکدام تعداد سطر ها و سطون ها متفاوت است؛ پس باید در کد، تعداد آن ها را مشخص کنیم که در اینجا نمایشگر ما 16 در 2 کاراکتر است:

lcd.begin(16, 2);  

در جلسه چهارم گفته شد که برای چاپ متن بر روی سریال از دستور print استفاده میکنیم؛ در نمایشگر ها نیز برای نمایش متن از print استفاده میکنیم:

lcd.print("hello, world!");  

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

lcd.setCursor(2, 1);
lcd.print("Arduino");  

توجه: در تمام زبان های برنامه نویسی شمارش اعداد از 0 شروع میشوند؛ مثلا برای اشاره به اولین عدد باید از 0 شمارش کرد!

اگر کد گفته شده را امتحان کنید، زیر Hello World یک شمارشگر درحال شمارش اعداد است؛ با استفاده از millis میتوانید گذر زمان را به میلی ثانیه اندازه بگیرید و با تقسیم آن بر 1000 آن را به ثانیه تبدیل کنید:

lcd.print(millis() / 1000); 

I2C – آی تو سی

یکی از پروتکل های ارتباطی موجود، I2C است؛ این پروتکل دارای دو سیم است که یکی برای انتقال اطلاعات و یکی برای تنظیم سرعت انتقال یا کلاک است.

این پروتکل دارای دو سیم SDA یا Serial Data و SCL یا Serial Clock است.

همچنین میتوانید آشنایی با پروتکل I2C را بخوانید!

اگر در پروژه این جلسه میخواهید از این نمایشگر استفاده کنید اما پین های دیجیتال زیادی از آردوینو اشغال شده است، کافی است از پروتکل I2C استفاده کنید و LCD را تنها با دو سیم که به پین های A4 و A5 متصل است راه اندازی کنید.

توجه داشته باشید که در پروژه بالا میتوانستید هرکدام از پین های آردوینو را انتخاب کنید اما برای استفاده از پروتکل I2C تنها میتوانید از پین های A4 و A5 استفاده کنید زیرا تنها این دو پین از I2C پشتیبانی میکنند!

ماژول I2C برای LCD1602:

ماژول I2C

مدار:

مدار I2C

اتصالات:

GND – GND

VCC – +5V

SDA – A4

SCL – A5

کد:

#include <Wire.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 16, 2);

void setup(){
     lcd.init();
     lcd.backlight();
     lcd.setCursor(3,0);
     lcd.setCursor(0,0);
     lcd.print("Hello, world!");
     lcd.setCursor(0, 1);
     lcd.print("Shiraz Coders");
     delay(1000);
     lcd.clear();
}

void loop(){
     lcd.setCursor(0, 0);
     lcd.print(millis() / 1000);
} 

توضیحات:

در دو خط اول کتابخانه های مورد نیاز را اضاف کردیم؛ اولین کتابخانه Wire است که برای استفاده از پروتکل I2C نیاز خواهیم داشت؛ کتابخانه دوم LiquidCrystal_I2C است که برای راه اندازی این lcd با i2c است. کتابخانه Wire به صورت پیشفرض نصب است اما کتابخانه دوم را از آخر صفحه دانلود و نصب کنید!

#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h> 

خط چهارم مانند کد قبل است با این تفاوت که در این کد در پارامتر اول آدرس I2C و در پارامتر های دوم و سوم تعداد سطر و ستون های نمایشگر را مینویسیم؛ دقت کنید که آدرس I2C را به درستی وارد کنید؛ معمولا آدرس های LCD برابر با 0x27 و 0x3f هستند!

LiquidCrystal_I2C lcd(0x27, 16, 2); 

در خط 7 و 8 تنظیمات اولیه را انجام میدهیم؛ init نمایشگر را تنظیم  میکند و backlight بک لایت را روشن میکند؛ همچنین میتوانید از noBacklight برای خاموش کردن نور بک لایت استفاده کنید:7

lcd.init(); // Init LCD
lcd.backlight(); // Turn on backlight
lcd.noBacklight(); // Turn off backlight 

با استفاده از دستور clear میتوانید صفحه نمایشگر را پاک کنید:

lcd.clear(); 

با تشکر از همراهی شما، در صورت داشتن هرگونه سوال، نظر، انتقاد و یا پیشنهاد میتوانید در بخش نظرات با ما در ارتباط باشید.

لینک های دانلود

توجه داشته باشید کتابخانه Liquidcrystal به طور پیشفرض نصب است و فقط به Liquidcrystal_I2C نیاز خواهید داشت!

دانلود کتابخانه نمایشگر I2C با لینک مستقیم (حجم 9 کیلوبایت)

دانلود سورس کد پروژه (حجم 451 بایت)
بعدی
قبلی
اشتراک گذاری:
دانلود فایل کامل پروژه
دانلود فایل
فایل کامل (جلسه پنجم)

پسورد فایل : ندارد گزارش خرابی لینک

برچسب ها: 1602 lcdI2Cآردوینوآموزش برنامه نویسی آردوینوال سی دی 1602ال سی دی کاراکترینمایشگر 1602
درباره admin_hb

حسین بذرافکن هستم، برنامه نویس، فریلنسر و عاشق الکترونیک...

نوشته های بیشتر از admin_hb
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
مطالب زیر را حتما بخوانید
  • آموزش آردوینو جلسه سیزدهم

    93 بازدید

  • آموزش آردوینو جلسه دوازدهم

    108 بازدید

  • آموزش الکترونیک مقدماتی درس 3

    171 بازدید

  • آموزش الکترونیک مقدماتی درس 2

    193 بازدید

  • آموزش الکترونیک مقدماتی درس 1

    149 بازدید

  • آموزش آردوینو جلسه یازدهم

    270 بازدید

قدیمی تر آموزش آردوینو جلسه چهارم
جدیدتر پروژه چشمک زن آردوینو

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:

امروز، سه شنبه ۳۰ دی ۹۹ ساعت ۰۴:۵۴

نوشته های تازه

آموزش آردوینو جلسه سیزدهم

در جلسه قبل راه اندازی نمایشگر نوکیا را یاد گرفتیم و به وسیله آن ساعت

بیشتر »
14 آذر 1399

آموزش آردوینو جلسه دوازدهم

در جلسه قبل با توابع کشیدن اشکال در نمایشگر Nokia 5110 آشنا شدیم. در این

بیشتر »
11 آذر 1399

آموزش الکترونیک مقدماتی درس 3

آموزش الکترونیک مقدماتی درس 3 در جلسات گذشته با مباحث بسیاری آشنا شدیم؛ در این

بیشتر »
3 مهر 1399

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت