فهرست مطالب:

برنامه طراحی آردوینو TFT: 4 مرحله
برنامه طراحی آردوینو TFT: 4 مرحله

تصویری: برنامه طراحی آردوینو TFT: 4 مرحله

تصویری: برنامه طراحی آردوینو TFT: 4 مرحله
تصویری: Arduino TFT LCD Touch Screen Tutorial | 3.5 Inch 480x320 TFT LCD SD card and touch 2024, جولای
Anonim
برنامه طراحی آردوینو TFT
برنامه طراحی آردوینو TFT
برنامه طراحی آردوینو TFT
برنامه طراحی آردوینو TFT
برنامه طراحی آردوینو TFT
برنامه طراحی آردوینو TFT

این دستورالعمل کدی را که در ساختن یک برنامه طراحی برای صفحه TFT آردوینو استفاده می شود ، توضیح می دهد. این برنامه منحصر به فرد است ، زیرا اجازه می دهد تا نقاشی را در کارت SD ذخیره کرده و بعداً بارگذاری کنید تا ویرایش های بیشتری انجام شود!

تدارکات

  1. Arduino Uno - اصلی یا کلون سازگار
  2. صفحه لمسی TFT - من از صفحه Elegoo استفاده کردم ، به این معنی که به رانندگان Elegoo نیاز دارم.
  3. برد خوان Micro SD - برای ذخیره داده های ترسیم روی کارت SD استفاده می شود. صفحه نمایش من زیر صفحه نمایش دارای خواننده داخلی بود.
  4. قلم - صفحه نمایش من با یکی همراه بود. ناخن های دست نیز خوب کار می کنند.
  5. کارت Micro SD - حداکثر 32 گیگابایت ، به دلیل محدودیت های قالب بندی exFAT (Arduino می تواند کارت های فرمت شده FAT32 را بخواند اما exFAT را نمی خواند. اکثر کارت های بزرگتر با exFAT فرمت شده اند). این همان چیزی است که می توانید در تلفن با فضای ذخیره سازی قابل افزایش قرار دهید.
  6. کامپیوتر با Arduino IDE
  7. کابل برنامه نویسی - USB A به USB B. Arduino من با یک عدد همراه شد.
  8. آداپتور کارت SD - برای تبدیل کارت Micro SD به یک SD معمولی برای قرار دادن در شکاف SD یا یکی که کارت SD را به شکاف USB متصل می کند ، استفاده می شود.

مرحله 1: کارت SD را فرمت کنید

کارت SD را فرمت کنید
کارت SD را فرمت کنید
کارت SD را فرمت کنید
کارت SD را فرمت کنید
  1. کارت Micro SD را بردارید و با استفاده از کارت خوان SD کارت خود را به رایانه خود وصل کنید
  2. File Explorer را باز کرده و کارت SD را پیدا کنید.
  3. روی آن راست کلیک کرده و Format را انتخاب کنید.
  4. گزینه ها را بر اساس تصویر صفحه تنظیم کنید.
  5. روی Start کلیک کنید.
  6. پس از اتمام فرآیند ، کارت را خارج کنید.

اگر از Windows استفاده نمی کنید ، سعی کنید از SD Formatter از انجمن SD استفاده کنید.

مرحله 2: آردوینو را آماده کنید

آردوینو را آماده کنید
آردوینو را آماده کنید
آردوینو را آماده کنید
آردوینو را آماده کنید
  1. محافظ صفحه را روی آردوینو فشار دهید و مراقب باشید که پین ها را در یک خط قرار دهید.
  2. کارت SD را در خواننده زیر صفحه قرار دهید.

مرحله 3: طرح آردوینو

اگرچه لیست قطعات بسیار ساده بود ، اما تعداد زیادی کد وجود دارد. در اینجا مرحله به مرحله آن را مرور می کنم.

#عبارتند از

#شامل #شامل #شامل #شامل #شود

Elegoo_GFX ، _TFTLCD و TouchScreen همه مخصوص سخت افزار هستند. اگر از صفحه دیگری استفاده می کنید ، از کتابخانه های ارائه شده توسط سازنده استفاده کنید.

SPI و SD برای ارتباط با کارت SD استفاده می شود. SPI پروتکلی است که توسط کنترلر کارت SD استفاده می شود.

#اگر تعریف شده (_ SAM3X8E _) #undef _FlashStringHelper:: F (string_literal) #تعریف F (string_literal) string_literal #endif

این نیز مخصوص سخت افزار است.

#تعریف YP A3 // باید پین آنالوگ باشد #تعریف XM A2 // باید پین آنالوگ باشد #تعریف YM 9 #تعریف XP 8

// برای جدید ILI9341 TP را لمس کنید

#تعریف TS_MINX 120 #تعریف TS_MAXX 900 #تعریف TS_MINY 70 #تعریف TS_MAXY 920

#CSPIN 10 را تعریف کنید

#LCD_CS A3 را تعریف کنید

#تعریف LCD_CD A2 #تعریف LCD_WR A1 #تعریف LCD_RD A0 #تعریف LCD_RESET A4

هر یک از این دستورات #تعریف کنید IDE را جایگزین نام با مقدار می کند. در اینجا ، آنها پین های I/O LCD و SD را تنظیم می کنند.

// نام برخی از مقادیر رنگ 16 بیتی را تعیین کنید: #definine BLACK 0x0000 #define WHITE 0xFFFF #define RED 0xF800 #define BLUE 0x001F #defeine GREEN 0x07E0

اینها تعدادی از رنگهای مورد استفاده در کد هستند. #تعریف آنها خواندن کد را آسان تر می کند.

#تعریف PENRADIUS 3

این اندازه قلم طراحی را مشخص می کند.

#تعریف MINPRESSURE 10#MAXPRESSURE 1000 را تعریف کنید

// برای دقت بهتر فشار ، باید مقاومت را بدانیم

// بین X+ و X- از هر مولتی متر برای خواندن آن استفاده کنید // برای موردی که من از آن استفاده می کنم ، 300 اهم آن در صفحه X صفحه TouchScreen ts = TouchScreen (XP، YP، XM، YM، 300) ؛

Elegoo_TFTLCD tft (LCD_CS ، LCD_CD ، LCD_WR ، LCD_RD ، LCD_RESET) ؛

این عبارات فشار مورد نیاز برای ثبت یک لمس ، اولیه سازی عملکرد لمس و شروع صفحه را تعریف می کند.

ذخیره سازی فایل ؛ int storageSize ؛ int stoX = 1؛ int stoY = 1؛

اینها متغیرهایی برای قسمت ذخیره سازی برنامه هستند.

void setup (void) {Serial.begin (9600)؛ Serial.println ("برنامه رنگ آمیزی") ؛

tft.reset ()؛

uint16_t شناسه = tft.readID ()؛

if (شناسه == 0x0101) {شناسه = 0x9341؛ Serial.println (F ("درایور LCD 0x9341 پیدا شد")) ؛ }

// صفحه را شروع کنید

tft.begin (شناسه) ؛ tft.setRotation (2) ؛

pinMode (13 ، OUTPUT) ؛

// کارت SD را راه اندازی کنید

if (! SD.begin (CSPIN)) {Serial.println ("مقداردهی اولیه SD ناموفق بود")؛ برگشت؛ } Serial.println ("SD مقداردهی اولیه") ؛

// پس زمینه را بکشید

drawBackground ()؛ }

تابع راه اندازی سریال را در صورت موجود بودن شروع می کند ، صفحه را بازنشانی می کند ، درایور TFT را تشخیص می دهد ، صفحه را شروع می کند ، کارت را راه اندازی می کند و یک تابع را برای ترسیم پس زمینه فراخوانی می کند.

من به قسمت عمده تابع حلقه می پردم. سایر موارد فقط برای رانندگی صفحه لمسی استفاده می شود.

// تشخیص صفحه را فشار دهید و آن را در متغیرها ذخیره کنید (p.z> MINPRESSURE && p.z <MAXPRESSURE) {// مقیاس p.x = map (p.x، TS_MINX، TS_MAXX، tft.width ()، 0)؛ p.y = (tft.height () - نقشه (p.y ، TS_MINY ، TS_MAXY ، tft.height () ، 0)) ؛

//قرعه کشی

if (p.y> 21) {// ذخیره داده ها در حافظه کارت SD = SD.open ("storage.txt" ، FILE_WRITE) ؛ storage.print (p.x)؛ storage.print ("،") ؛ storage.println (p.y)؛ storage.close ()؛

// نقطه در موقعیت لمس

tft.fillCircle (p.x ، p.y ، PENRADIUS ، WHITE) ؛ }

// دکمه حذف

if ((p.y 198) && (p.x <219)) {deleteStorage ()؛ }

// عمل بارگذاری دکمه

if ((p.y 219)) {loadStorage ()؛ }}

در صورت تشخیص فشار ، متغیرهایی را برای مکان پرس تنظیم کنید.

سپس ، اگر پرس در محدوده طراحی است ، نقطه را در کارت SD در storage.txt ذخیره کنید و در نقطه فشرده یک دایره با اندازه و رنگ مشخص ترسیم کنید.

سپس ، اگر فشار در محل دکمه حذف باشد ، تابعی را اجرا کنید که نقشه ذخیره شده را حذف می کند. اگر از صفحه ای با اندازه متفاوت استفاده می کنید ، سعی کنید با مقادیر مکان دکمه بازی کنید.

سپس ، اگر پرس در محل دکمه بار قرار دارد ، تابع را اجرا کنید که نقشه ذخیره شده را بارگذاری می کند. اگر از صفحه ای با اندازه متفاوت استفاده می کنید ، سعی کنید با مقادیر مکان دکمه بازی کنید.

اکنون ، توابع را توضیح می دهم.

اولین تابع در هنگام نصب برای کشیدن پس زمینه و دکمه ها فراخوانی می شود.

void drawBackground () {// تنظیم پس زمینه tft.fillScreen (BLACK) ؛

// رنگ آمیزی متن

tft.setTextColor (سفید) ؛ tft.setTextSize (3) ؛ tft.setCursor (0 ، 0) ؛ tft.println ("رنگ") ؛

// دکمه بارگذاری

tft.fillRect (219 ، 0 ، 21 ، 21 ، سبز) ؛

// دکمه پاک کردن

tft.fillRect (198 ، 0 ، 21 ، 21 ، RED) ؛ }

صفحه را سیاه می کند ، کلمه Paint را می نویسد و مربع های رنگی را برای دکمه ها ترسیم می کند. اگر از صفحه ای با اندازه متفاوت استفاده می کنید ، سعی کنید با مقادیر مکان دکمه بازی کنید.

void deleteStorage () {// حذف فایل SD.remove ("storage.txt") ؛

// تنظیم پس زمینه

tft.fillScreen (BLACK) ؛

// حذف متن موفقیت

tft.setTextColor (سفید) ؛ tft.setTextSize (2) ؛ tft.setCursor (0 ، 0) ؛ tft.println ("storage.txt حذف شد") ؛

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

تاخیر (2000) ؛

// نقاشی را ادامه دهید

drawBackground ()؛ }

عملکرد deleteStorage storage.txt را حذف می کند ، صفحه را سیاه می کند و پیامی برای حذف می دهد. سپس تابع drawBackground را فراخوانی می کند تا به شما اجازه دهد نقاشی دیگری را شروع کنید.

void loadStorage () {// از تکرار در تأخیر انگشتان آهسته خودداری کنید (250)؛

// فایل ذخیره سازی را بررسی کنید

if (! SD.exists ("storage.txt")) {Serial.println ("بدون فایل ذخیره سازی. txt") ؛ برگشت؛ }

// باز کردن فایل در حالت فقط خواندنی

ذخیره سازی = SD.open ("storage.txt" ، FILE_READ) ؛

// در حالی که داده وجود دارد ،

while (stoY> 0) {// به روز رسانی متغیرهای موقعیت stoX = storage.parseInt ()؛ stoY = storage.parseInt ()؛

// از ذخیره سازی بکشید

tft.fillCircle (stoX ، stoY ، PENRADIUS ، WHITE) ؛ } // بستن فایل storage.close ()؛ }

در نهایت ، عملکرد loadStorage یک فایل ذخیره سازی را بررسی می کند ، آن را در حالت فقط خواندنی باز می کند ، سپس این حلقه را تکرار می کند:

تا زمانی که داده های بیشتری وجود داشته باشد ،

  1. متغیرهای موقعیت را با داده های تجزیه شده از storage.txt به روز کنید
  2. در نقطه بارگذاری شده یک دایره بکشید

وقتی حلقه کامل شد و دیگر اطلاعاتی وجود نداشت ، فایل ذخیره سازی بسته می شود.

کد این طرح را می توانید در زیر مشاهده کنید. فقط آن را بارگیری کنید ، آن را در آردوینو باز کنید و روی برد خود بارگذاری کنید!

مرحله 4: استفاده از این برنامه

با استفاده از این برنامه
با استفاده از این برنامه

کافیست آردوینو خود را به منبع تغذیه - کامپیوتر ، باتری ، زگیل دیواری و غیره وصل کنید و شروع به طراحی کنید. برای پاک کردن نقاشی و داده های ذخیره شده آن ، دکمه قرمز را فشار دهید. برای بارگیری نقاشی از حافظه و ادامه کار روی آن ، روی دکمه سبز کلیک کنید. به این ترتیب ، می توانید بارها روی یک نقاشی تکرار کنید!

به عنوان یک برنامه افزودنی ، سعی کنید نقشه را در رایانه خود ترسیم کنید:

  1. کارت SD را با داده به رایانه خود وصل کنید.
  2. storage.txt را در ویرایشگر متن/کد مورد علاقه خود باز کنید.
  3. همه مقادیر موجود در storage.txt را کپی کنید.
  4. این پیوند را برای برنامه نقشه کشی دنبال کنید.
  5. دو نمونه مثال سمت چپ را حذف کنید.
  6. داده های خود را در جایی که نمونه های مثال در آن قرار داشتند بچسبانید.

این راهی شفاف برای نشان دادن نقاشی های خود است - شاید حتی سعی کنید رنگ نقطه را در آردوینو یا در پلاتر نقطه تغییر دهید!

از تغییرات استقبال می شود و خوشحال می شوم برخی از پیشنهادات را در نظرات ببینید. با تشکر از نگاهی که به این موضوع داشتید و امیدوارم که در پروژه های خود کاربردهای منظمی از آن پیدا کنید!

توصیه شده: