به نام خدا ،سلام خدمت شما دوستان گل، تو این مطلب از پروژه آردوینو میخوام راه اندازی یه نمایشگر رو بگم، آموزش رو به صورت یه pdf درابردم و تو سایت گزاشتم و چیزایی که توی فایل pdf نزاشتم رو عوضش اینجا گزاشتم.
عناوین این فایل آموزشی + این مطلب!!!
- عکس هایی از lcd tft 1.8 inch
- مشخصات این نمایشگر رنگی
- آموزش اضافه کردن کتابخانه به آردوینو
- توضیح پایه های lcd تمام رنگی tft 1.8 inch
- نحوه وصل کردن lcd رنگی به آردوینو
- توضیح مختصات y و x در نمایشگر رنگی
- توضیح توابع کتابخانه نمایشگر رنگی
- رنگ ها در کتابخانه lcd 1.8 inch
- پروژه نمونه از lcd ST7735
پروژه و آموزش راه اندازی lcd tft 1.8 inch با آردوینو
پروژه آردوینو
کدهای پروژه
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7735.h> // Hardware-specific library #include <SPI.h> #include <SD.h> #define TFT_CS 10 // "SS" PIN IN Arduino UNO! - انتخاب نمایش گر برای ارسال داده توسط اس پی آی #define TFT_RST 9 // you can also connect this to the Arduino reset #define TFT_DC 8 // "RS" PIN IN LCD TFT 1.8 INCH // اگر میخواین از رم استفاده کنید باید از این کد استفاده کنید // در غیر این صورت حذفش کنید #define SD_CS 7 // انتخاب رم برای ارسال داده توسط اس پی آی //////////////////////////////////////////////////////////////////////////// // راه ۱: استفاده از اس پی آِی سخت افزاری و پایه های خاصش // پایه ۱۰ باید خروجی شود // (for UNO thats SCLK = 13, MISO = 12, MOSI = 11) // an output. This is much faster - also required if you want // to use the microSD card (see the image drawing example) Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); // Option 2: use any pins but a little slower! //#define TFT_SCLK 13 // هر پایه ای رو که دوست دارید انتخاب کنید //#define TFT_MOSI 11 // هر پایه ای رو که دوست دارید انتخاب کنید //#define TFT_MISO 12 // هر پایه ای رو که دوست دارید انتخاب کنید //Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST); //////////////////////////////////////////////////////////////////////////// int color = 0xF800; // یه رنگ از پیش تعریف شده که در پروژه ازش جندیدن بار استفاده کردم int w = tft.width(); // عرض نمایش گر در این متغییر قرار میگیره int h = tft.height();// طول نمایش گر هم در این قرار میگیره int i, j;//یه دو تا متغییر که تو حلقه ها برای شمارش ازشون استفاده کردم char *ImageFileName[13] = {"1.bmp", "2.bmp", "3.bmp", "4.bmp", "5.bmp", "6.bmp", "7.bmp", "8.bmp", "9.bmp", "10.bmp", "11.bmp", "12.bmp", "13.bmp",}; void setup(void) { // Use this initializer if you're using a 1.8" TFT tft.initR(INITR_BLACKTAB); //راه اندازی نمایشگر، در اول پروژه حتما باید فراخوانی بشه. // Use this initializer (uncomment) if you're using a 1.44" TFT //tft.initR(INITR_144GREENTAB); // initialize a ST7735S chip, black tab // اینم که معلومه چیه، چون قبلا یه ۳-۴ مطلب درباره // ارتباط سریال تو آردوینو توضیح دادم و ... Serial.begin(9600); // ممکن است برنامه در این قسمت گیر کنه و کد ها رو اجرا نکنه // رم رو دربیارید و دوباره بزارید سر جاش // در ضمن همون طور که در کد های زیر میبینید // از طریق پنجره ارتباط سریال میتونید دستورات ارساتی توسط // این پروژه رو ببینید -تا بفهمید که ارتباط با رم // برقرار شده است یا نه Serial.print("Initializing SD card..."); if (!SD.begin(SD_CS)) { Serial.println("failed!"); return; } Serial.println("OK!"); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی tft.setRotation(1); for (i = 12; i >= 0; i--) { tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی bmpDraw(ImageFileName[i], 0, 0); delay(2000); } tft.setRotation(0);//برگرداندن صفحه نمایش به حالت افقی for (i = 0; i <= 10; i++) { tft.invertDisplay(true); // تمام رنگ های نمایشگر معکوس شود، مثلا سفید سیاه بشه و برعکس delay(500); tft.invertDisplay(false); // تمام رنگ های نمایشگر به حالت اولیه خود برگردند delay(500); } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رنگ کردن صفحه با استفاده از رنگ های از پیش تعریف شده // این تابع کارش رنگ کردن کل صفحه نمایش هستش tft.fillScreen(ST7735_BLACK); delay(500); tft.fillScreen(ST7735_YELLOW); delay(500); tft.fillScreen(ST7735_MAGENTA); delay(500); tft.fillScreen(ST7735_CYAN); delay(500); tft.fillScreen(ST7735_GREEN); delay(500); tft.fillScreen(ST7735_RED); delay(500); tft.fillScreen(ST7735_BLUE); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی tft.setCursor(0, 0); // بردن مکان نما به محل مورد نظر tft.setTextColor(ST7735_RED); // تعیین کردن رنگ متن یا چیزی که قرار است نمایش داده شود tft.setTextSize(2); tft.print("DMF313.IR"); // نمایش یه متن //----------------------------------------------------------------- tft.setCursor(0, 50); //این تابع مثل اون کی تابع همنامش هستش با این تفاوت که رنگ پس زمین متن رو هم میشه تعیین کرد tft.setTextColor(ST7735_BLACK, ST7735_RED); tft.setTextSize(2); tft.print("DMF313.IR"); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی tft.setCursor(0, 0); tft.setTextColor(ST7735_RED); for (i = 1; i <= 6; i++) { tft.setTextSize(i); tft.println("313"); } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی tft.drawPixel(w / 2, h / 2, ST7735_WHITE); // تابع نمایش یه پیکسل delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // توضیح تمام توابع توی کتابخونه پرینت float p = 3.1415926; tft.setTextSize(2); tft.setCursor(0, 0); tft.print(p, 5); // نمایش یه متغییر با تعیین تعداد ارقام اعشاری که باید نمایش داده بشه tft.setCursor(0, 50); tft.println("Want pi?");// این تابع بعد از نوشتن متن مکان نما رو به خط بعدی میبره tft.setCursor(0, 100); tft.print(8675309, HEX); // نمایش یه متغییر بر حسب هگزا دسیمال delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم چندیدن داره داخل هم به کمک حلقه فور for (i = 0; i <= 50; i += 5) { tft.drawCircle(w / 2, h / 2, i, color); // تابع رسم دایره } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه مثلت تو خالی با داشتن مختصات هر سه راس مثلت tft.drawTriangle(0, 0, 0, h, w, 0, color); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه مثلت تو پر با داشتن مختصات هر سه راس مثلت tft.fillTriangle(0, 0, 0, h, w, 0, ST7735_GREEN); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه سری دایره توپر for (int x = 15; x < tft.width(); x += 30) { for (int y = 15; y < tft.height(); y += 30) { tft.fillCircle(x, y, 15, color); //تابع رسم یه داره تو پر با رنگ مورد نظر } } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه سری مربع تو در تو for (i = 0; i <= 100; i += 10) { // رسم مربع با داشتن مختصات نقطه گوشه سمت چپ بالا و طول و عرض این ۴ ضلعی tft.drawRoundRect((w / 2) - (i / 2), (h / 2) - (i / 2), i, i, 0, color); } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه سری مربع توپر for (int x = 0; x < tft.width() - 20; x += 30) { for (int y = 0; y < tft.height() - 20; y += 30) { // تابع رسم مربع تو پر همانند رسم مربع توخالی فقط این توپوره tft.fillRoundRect(x, y, 25, 25, 5, ST7735_WHITE); } } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه سری مربع تو در تو-مثل تابع قبل هستش فقط رادیوس نداره for (i = 0; i < w; i += 6) { // رسم یه مربع با داشتن مختصات نقطه گوشه سمت چپ بالا مربع و طول و عرض مربع tft.drawRect(w / 2 - i / 2, h / 2 - i / 2 , i, i, color); } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی //رسم یه مربع تو پر - مثل مربع تو خالی هستش-تابع بالا //-مثل تابع قبل هستش فقط رادیوس نداره tft.fillRect(w / 2 - 25, h / 2 - 25 , 50, 50, color); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه سری خطوط عمودی و افقی که در آخر یه صفحه شطرنجی درست میکنیم for (i = 0; i < h; i += 5) { tft.drawFastHLine(0, i, w, color);//رسم خط افقی - با داشتن مختصات نقطه شروع و طول خط } for (j = 0; j < w; j += 5) { tft.drawFastVLine(j, 0, h, color);// رسم خط عمودی با داشتن مختصات نقطه شروع و طول خط } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // رسم یه سری خط for (i = 0; i < h; i += 10) { /// رسم خط با داشتن مختصاط دو سر خط tft.drawLine(0, 0 + i, w, 0 + i, color); } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // چرخش صغحه نمایش و نمایش متن // getRotation : دریافت حالت چرخش صفحه نماش فعلی // setRotation : چرخش صفحه نمایش بر طبق مد نظرمون // ۴ تا حالت چرخش صفحه نمایش نداریم کلا for (j = 0; j < 4; j++) { tft.setRotation(tft.getRotation() + j); tft.setCursor(0, 0); tft.setTextColor(ST7735_RED); tft.setTextSize(5); tft.print("DMF\n313\n.IR"); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی } delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی // نمایش یه کاراکتر با اندازه و رنگ متن و پیش زمینه و در مکان مد نظر tft.drawChar(25, 15, 'A', ST7735_WHITE, ST7735_GREEN, 5); delay(1000); tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی //drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color); /* // ?????????????????? tft.setTextWrap(true); tft.setTextWrap(false); */ delay(10000); } void loop() { } // از این جا به پایین رو کاری نداشته باشید چیه، برا نمایش عکس هستش // ولی این که چطور نوشته شده و .. تو این مطلب توضیحش نمیگنجه! #define BUFFPIXEL 20 void bmpDraw(char *filename, uint8_t x, uint8_t y) { File bmpFile; int bmpWidth, bmpHeight; // W+H in pixels uint8_t bmpDepth; // Bit depth (currently must be 24) uint32_t bmpImageoffset; // Start of image data in file uint32_t rowSize; // Not always = bmpWidth; may have padding uint8_t sdbuffer[3 * BUFFPIXEL]; // pixel buffer (R+G+B per pixel) uint8_t buffidx = sizeof(sdbuffer); // Current position in sdbuffer boolean goodBmp = false; // Set to true on valid header parse boolean flip = true; // BMP is stored bottom-to-top int w, h, row, col; uint8_t r, g, b; uint32_t pos = 0, startTime = millis(); if ((x >= tft.width()) || (y >= tft.height())) return; Serial.println(); Serial.print("Loading image '"); Serial.print(filename); Serial.println('\''); // Open requested file on SD card if ((bmpFile = SD.open(filename)) == NULL) { Serial.print("File not found"); return; } // Parse BMP header if (read16(bmpFile) == 0x4D42) { // BMP signature Serial.print("File size: "); Serial.println(read32(bmpFile)); (void)read32(bmpFile); // Read & ignore creator bytes bmpImageoffset = read32(bmpFile); // Start of image data Serial.print("Image Offset: "); Serial.println(bmpImageoffset, DEC); // Read DIB header Serial.print("Header size: "); Serial.println(read32(bmpFile)); bmpWidth = read32(bmpFile); bmpHeight = read32(bmpFile); if (read16(bmpFile) == 1) { // # planes -- must be '1' bmpDepth = read16(bmpFile); // bits per pixel Serial.print("Bit Depth: "); Serial.println(bmpDepth); if ((bmpDepth == 24) && (read32(bmpFile) == 0)) { // 0 = uncompressed goodBmp = true; // Supported BMP format -- proceed! Serial.print("Image size: "); Serial.print(bmpWidth); Serial.print('x'); Serial.println(bmpHeight); // BMP rows are padded (if needed) to 4-byte boundary rowSize = (bmpWidth * 3 + 3) & ~3; // If bmpHeight is negative, image is in top-down order. // This is not canon but has been observed in the wild. if (bmpHeight < 0) { bmpHeight = -bmpHeight; flip = false; } // Crop area to be loaded w = bmpWidth; h = bmpHeight; if ((x + w - 1) >= tft.width()) w = tft.width() - x; if ((y + h - 1) >= tft.height()) h = tft.height() - y; // Set TFT address window to clipped image bounds tft.setAddrWindow(x, y, x + w - 1, y + h - 1); for (row = 0; row < h; row++) { // For each scanline... // Seek to start of scan line. It might seem labor- // intensive to be doing this on every line, but this // method covers a lot of gritty details like cropping // and scanline padding. Also, the seek only takes // place if the file position actually needs to change // (avoids a lot of cluster math in SD library). if (flip) // Bitmap is stored bottom-to-top order (normal BMP) pos = bmpImageoffset + (bmpHeight - 1 - row) * rowSize; else // Bitmap is stored top-to-bottom pos = bmpImageoffset + row * rowSize; if (bmpFile.position() != pos) { // Need seek? bmpFile.seek(pos); buffidx = sizeof(sdbuffer); // Force buffer reload } for (col = 0; col < w; col++) { // For each pixel... // Time to read more pixel data? if (buffidx >= sizeof(sdbuffer)) { // Indeed bmpFile.read(sdbuffer, sizeof(sdbuffer)); buffidx = 0; // Set index to beginning } // Convert pixel from BMP to TFT format, push to display b = sdbuffer[buffidx++]; g = sdbuffer[buffidx++]; r = sdbuffer[buffidx++]; tft.pushColor(tft.Color565(r, g, b)); } // end pixel } // end scanline Serial.print("Loaded in "); Serial.print(millis() - startTime); Serial.println(" ms"); } // end goodBmp } } bmpFile.close(); if (!goodBmp) Serial.println("BMP format not recognized."); } // These read 16- and 32-bit types from the SD card file. // BMP data is stored little-endian, Arduino is little-endian too. // May need to reverse subscript order if porting elsewhere. uint16_t read16(File f) { uint16_t result; ((uint8_t *)&result)[0] = f.read(); // LSB ((uint8_t *)&result)[1] = f.read(); // MSB return result; } uint32_t read32(File f) { uint32_t result; ((uint8_t *)&result)[0] = f.read(); // LSB ((uint8_t *)&result)[1] = f.read(); ((uint8_t *)&result)[2] = f.read(); ((uint8_t *)&result)[3] = f.read(); // MSB return result; } |
فیلم پروژه
شماتیک پروژه
عکس هایی از پروژه
اینم یه چند تا عکس از عکس هایی که این lcd نشون میده!(برا کم شدن حجم عکس ها مجبور شدم به هر اقدامی دست بزنم ، البته فیلم پروژه رو بیبینید همین عکس ها رو هم نشون میده!)
لینک های مفید! :
- Your Image on an Arduino! – TFT LCD Screen Guide by Qtechknow
از کتابخونه لینک بالا هم میتونید استفاده کنید ولی یه مشکلاتی داره کتابخونش - SainSmart 1.8″ TFT Arduino Color LCD Display
اینم یه آموزش خوب که از همین کتاب خونه ای که ما استفاده کردیم، اینم استفاده کرده و خداییش خوب توضیح داده.
راستی برا نمایش عکس تو نمایشگر باید فرمت عکس هاتون BMP باشه و ۲۴ بیت، و قرار گرفته داخل رم(یعنی داخل رم بزارید، همون SD CARD یا هرچی دیگه ای که بهش میگید)
اگه چیزی رو جا انداختم بگید.
فعلا یا علی.
مهمان
سلام خسته نباشید ببخشید سوالی داشتم در راه اندازی ال سی دی کاراکتری برای پاک کردن صفحه نمایش از دستور lcd.clearاستفاده میشه حالا من با lcd tft دارم کار میکنم برای پاک کردن صفحه نمایش از چه دستوری میشه استفاده کرد ممنون میشم جواب بدین
نویسنده این مطلب
سلام، اون فایل کتابخونه یی که include میکنید رو پیدا کنید و بازش کنید و لیست توابعش رو ببینید، اگه از همین کتابخونه این مطلب استفاده میکنید ( که فک کنم طبق کدهای این مطلب )، باید تابع زیر باشه :
tft.fillScreen(ST7735_BLACK); // رنگ کردن صفحه و پاک کردن چیزای قبلی
مهمان
سلام اقا مهدی گللل 😘
داداش عزیز برای راه اندازی ال سی دی های رنگی بایدarm بلد باشیم !؟؟؟
بعد لزوما باس avr هم مسلط بود؟؟؟
مهمان
سلام. مصرف توان tft LCD تو اوردر های حدود ۲ اینچ تقریبا چقدر هست؟ چه مقدار جریان مصرف می کنن؟ برای استفاده با ابتری مناسب هستن یا عوض کنیم نوع نمایشگرمون رو؟!
مهمان
لطفا این اموزش هم را باavrقرار دهید
مهمان
سلام آقای دمرچیلو دستت درد نکنه از زحمتی که میکشی.من اگر بخوام یک دوربین رو به این lcd وصل کنم وکلا یک مانیتور دارای دو ورودی بسازم باید چار کنم؟
مهمان
دمت گرم انشالله که شهید بشی نشدیم توی خط شهدا باشی
مهمان
سلام
من نمایشگر زیر رو از آفتاب رایانه خریدم
LCD-TFT 1.8 SPI
پینهای این نمایشگر مطابق طرح زیر هستش
LED
SCK
SDA
A0
RESET
CS
GND
Vcc
میشه لطفا راهنمایی کنید این پینها هر کدام باید به کدام پین اردوینو نانو وصل بشه.هر چه جستجو کردم معنی پین A0 رو جایی نیافتم
مهمان
با سلام
سپاس گزارم از سایت خوبتون .
اگر بخوایم با ماژول نمایشگر LCD TFT فول کالر 1.8 اینچ دارای ارتباط سریال ( Usart GPU ) کار کنیم ،در صورتی که بخوایم با usart ماژول rfid هم راه اندازی کنیم، آیا مشکلی پیش میاد که از rx میکرو برای RFID و از TX میکرو برای LCD داربم استفاده میکنیم؟
آیا Baud rate رو که برای RFID فرمودین باید بذاریم 9600 و برای این LCD باید بذاریم 115200 رو میشه رو 115200 گذاشت؟در حقیقت میشه
RFID رو هم رو همین نرخ انتقال داده تنظیم کرد؟
سوال بعدی اینه که من دارم از میکرو atmega32 استفاده میکنم(متاسفانه میکرو باید همین باشه) و از واحد spi برای راه اندازی یه فرستنده گیرنده nrf
راهی هست که بشه ازمدل ال سی دی ای که گذاشتین تو سایت و با spi کار میکنه هم استفاده کرد؟
و اینکه میشه در یک میکرو از nrf (یک ماژول)هم به عنوان فرستنده استفاده کرد هم گیرنده؟یعنی برنامه نویسیمو تغییر بدم
مثلا اونجایی که نوشتین nrf_config رو تغییر بدم؟ و سایر تغییرات رو با یه ثابت انجام بدم و مقدار ثابت رو به یک کلید وابسته کنم؟
عذرخواهی میکنم که همه سوالات رو یک جا و در این مطلب میپرسم .
با تشکر از وقتی که برای پاسخ دهی میذاری مهندس.موفق باشی
نویسنده این مطلب
سلام
اینطوری مشکلی رخ نمیده.
ولی باود ریت رو باید یا 9600 انتخاب کنید یا 9600 فقط یکی
باید ببینی نمایشگر مد نظرت با spi راه اندازی میشه و این پایه ها رو داره یا نه – وگرنه اگه دوست داری حتما نمیشگرتو با spi راه اندازی کنی یا باید نمایشگرتو عوض کنی یا این که از آیسی های مبدل استفاده کنی که اون وقت یه کتابخونه هم باید براش بنویسی
nrf هم فرستندس و هم گرنده
مهمان
دمتون گرم و استوار باشین تو راهتون انشالله
مهمان
سلام
من قبلا سوال پرسیدم ولی جواب ندادی.نمایشگری که از آفتاب رایانه خریده ام با نمایشگر پروژه شما فرق داره.(8تا پین داره .ورودی SDکارت داره و پین های کارت سمت دیگه نمایشگر هستش. )در ضمن برد اردوینو نانو 328 خریدم.میشه راهنمایی کنی چطور اینها رو به هم لینک کنم؟
نویسنده این مطلب
سلام
مدل نمایشگرو تو نت بسرچ – ببین کتابخونه ای براش پیدا میکنی یا نه.
مهمان
ممنون از جوابت.ولی انتظار میره سایت فروشنده اطلاعات مورد نیاز رو هم تو سایت قرار بده.این مورد تو بعضی سایت ها رعایت شده.من مثل شما برنامه نوبسی بلد نیستم و تازه با مباحث آردینو آشنا شدم.گفتم با اجرای پروژه شما برای خودم یک فشار سنج دما سنج و ارتفاع سنج کمپاکت بسازم.
مهمان
سلام ، من هم مثل خیلی ها یه ال سی د ی 2.4 اینچ ILI9327 و یه uno خریدم و انواع برنامه ها رو تست کردم ، و فقط صفحه سفیده ، میتونید راهنمایی کنید؟ضمنا دو تا ال سی دی گرفتم ولی مشکل حل نشد
مهمان
بازم مثل همیشه عالی
مهمان
سلام اقا مهدی
میتونید تو راه اندازی مازول tft 1.44 منو راهنمایی کنید؟
میشه تو تلگرام در ارتباط باشم یاهاتون؟
با تشکر
نویسنده این مطلب
سلام
ندارمش- سوالات فقط در سایت و گروه
مهمان
خیلی زحمت کشیدید بسیار عالی بود
مهمان
سلام آقا محمد امین
من روی برد UNO از rc522 که ماژول RFID هست استفاده کردم که همونطور که می دونید از همین پینهایی MISO , MOSI ,… که روی این ماژول هست اونجا هم استفاده شده و حالا میخواستم ببینم من میتونم از این دو تا ماژول با هم استفاده کنم اگر آره مشکل کمبود پینها رو چطوری باید حل کنم چون مثلا اگر RC522 که الان هست رو به آردوینو وصل کنم دیگه پین خالی برای وصل ال سی دی نمی مونه و
سوال دوم اینکه کاراکتر فارسی رو میشه روی این ال سی دی نمایش داد؟
مهمان
سلام مشکلی پیش نمیاد دو ارتباط spi همزمان میشه ارتباط برقرار کرد توضیحش تو همین سایت هست بخونید. پین کم نمیاد.
مهمان
با سلام
بنده یک ال سی دی دیگه ای خریدم با همین اندازه ولی با پایه های بیشتر از آفتاب رایانه هم خریدم یعنی اینکه تعداد پایه هاش از این ال سی دی بیشتره و شانزده پایه است ۱.۸ اینچ هم هست لطفا طرز وصل کردن این ال سی دی رو به آردوینو را بگید لطفا خیلی توی سایت ها دنبال گشتم اما پیدا نکردم
این لینکشه توی سایت آفتاب رایانه
http://shop.aftabrayaneh.com/KMR_1.8_Inch_TFT_LCD_Module_SPI_Serial.html?search=1.8
کمک کنید لطفا
نویسنده این مطلب
سلام
قطعش رو ندارم.
اگه میتونی برام بخری و بفرستی که روش کار میکنم.
مهمان
با سلام و روز بخیر
من میخوام برد آردوئینو رو با تغذیه خارجی راه بندازم به پایه ی Vin یک ولتاژ 8 ولت دادم به این صورت که ولتاژ 12 ولت وروردی آداپتور رو به یک رگولاتور 8 ولت وصل کردم و خازن های مربوط به رگولاتور را هم طبق دیتا شیت رگولاتور نصب کردم . ال سی دی و برد آردوئینوم روشن میشه اما بعد از دو سه دقیقه هم رگولاتور و هم قسمتی از برد به شدت داغ میشه و من سریع منبع ولتاژ را مجبورم قطع کنم
ایراد کارم کجاست ؟ چه کار باید بکنم ؟ خیلی خیلی ممنون میشم در صورت امکان خیلی سریع راهنماییم کنید به دلیل اینکه بسیار کار عجله ایی است و من رو از جوابتون از طریق ایمیلم آگاه کنید
با تشکر فراوان از شما دوست عزیز
نویسنده این مطلب
سلام
برو ببین تو اون بردت چه رگولاتوری استفاده شده و حداقل و حداکثر ولتاژ ورودی اون رگولاتور چقدر هستش.
مهمان
سلام
2 تا سوال دارم
1 lCD که من گرفتم 1.8 اینچیه ولی تعداد پایه های بیشتر از مدلیه که تو pdf و اینجا گذاشتید ع;ساشو تو لینک پایین براتون گذاشتم و اگه میشه لطفا نحوه اتصال این مدلو بگین
http://s1.picofile.com/file/8264741000/LCD_TFT.zip.html
2- نمیدونم چه کتابخونه هاییو باید برای این پروه اضافه کنم و از کجا باید بیارمشون
اگه hlکانش هست لینک فایلهای کتابخونه ای مربوز به این پروژه رو برام بزارین.
امید وارم بیتونید کمکم کنید
ممنون
نویسنده این مطلب
سلام
به نظرم این نمایشگر نمایشگری نیست که من تو این مطلب ازش استفاده کردم – نمایشگر 1.8 اینچ رو از سایت آفتاب رایانه خریدم
مهمان
این مدلو سفارش دادم از افتاب رایانه
شما از همین کتابخونه که این پایین گذاشتین استفاده کردین یا کتابخونه دیگه ای هم باید اضافه کنم؟
نویسنده این مطلب
1
مهمان
برنامه رو اجرا کردم و این گیامارو تو قسمت خطایابی بهم داده اینا درسته یا باد کار انجام بدم؟
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
char *ImageFileName[13] = {“1.bmp”, “2.bmp”, “3.bmp”, “4.bmp”, “5.bmp”, “6.bmp”, “7.bmp”, “8.bmp”, “9.bmp”, “10.bmp”, “11.bmp”, “12.bmp”, “13.bmp”,};
^
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:39:148: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino: In function ‘void bmpDraw(char*, uint8_t, uint8_t)’:
C:\Users\User\Documents\Arduino\LCD_TFT_1.8\LCD_TFT_1.8.ino:430:39: warning: converting to non-pointer type ‘int’ from NULL [-Wconversion-null]
if ((bmpFile = SD.open(filename)) == NULL)
^
Multiple libraries were found for “Adafruit_ST7735.h”
Used: C:\Users\User\Documents\Arduino\libraries\Adafruit_ST7735_Library
Not used: C:\Users\User\Documents\Arduino\libraries\arduino_774577
Not used: C:\Users\User\Documents\Arduino\libraries\arduino_565748
Sketch uses 28,606 bytes (88%) of program storage space. Maximum is 32,256 bytes.
Global variables use 1,246 bytes (60%) of dynamic memory, leaving 802 bytes for local variables. Maximum is 2,048 bytes.
نویسنده این مطلب
کتابخونه های مورد نیاز رو اد نکردی
مهمان
http://henrysbench.capnfatz.com/henrys-bench/arduino-displays/1-8tft-v1-0-st7736-arduino-tutorial-1-hello-world/
مهمان
سلام
آقا مهدی میشه در موزد اصلی ترین قسمت این پروژه یعنی اینکه این عکسا چطوزی دارن نمایش داده میشن توضیح بدین؟
منظورم اون کد هاییه که مربوط به نمایش عکس هاست؟
چون مهم ترین قسمت این پروژه اینکه بدونیم چطوری باید این عکسارو به نمایشگر فهموند تا نمایش بده.
اصلا یک توضیح کلی از این پروژه بدین که چطوری میشه کلا یک عکسو نمایش داد.
نویسنده این مطلب
سلام
فعلا در گیر کار دیگه ای هستم – وقت نمیکنم.
مهمان
سلام ممنون از سایت خوبتون
من یه ماژول برای راه اندازی ال سی دی Tft 7″ گرفتم از این لینک.
http://eshop.eca.ir/%D9%85%D8%AD%D8%B5%D9%88%D9%84%D8%A7%D8%AA-eca/3354-%D9%85%D8%A7%DA%98%D9%88%D9%84-%D9%86%D9%85%D8%A7%DB%8C%D8%B4%DA%AF%D8%B1-%D8%AA%D9%85%D8%A7%D9%85-%D8%B1%D9%86%DA%AF%DB%8C-lcd-tft-70-inch-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-lcd-%D9%88-%D8%AA%D8%A7%DA%86.html
و کتابخونه رو هم از این لینک گفتم.
http://www.rinkydinkelectronics.com/library.php?id=51
ودارم با ARDuino mega 2560 کار میکنم. الان که برنامه مینویسم و اجرا میشه فقط نور سفید بک لایت صفحه کم و زیاد میشه اما هیچی نشون نمیده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
میشه کمک بفرمایید. ممنون
اینم برنامه برای تست:
نویسنده این مطلب
سلام
احتمالا چون پایه های نمایشگر مثل آردوینو هستش شما هم مستقیما رو برد قرارش دادین – درسته؟
مهمان
سلام ممنون از توجه شما.
نه من پایه ها رو طبق توضیحات که در داکیومنتهای کتابخونه اومده بود وصل کردم.
| PIN | LABEL | PIN | PIN
| NUM | TFT | ARD | FUNCTION
| | | |
| | | |
| 1 | 3v3 | >> | 3v3 power
| 2 | GND | >> | Ground
| 3 | D0 | 37 |
| 4 | D1 | 36 |
| 5 | D2 | 35 |
| 6 | D3 | 34 |
| 7 | D4 | 33 |
| 8 | D5 | 32 |
| 9 | D6 | 31 |
| 10 | D7 | 30 |
| 11 | D8 | 22 |
| 12 | D9 | 23 |
| 13 | D10 | 24 |
| 14 | D11 | 25 |
| 15 | D12 | 26 |
| 16 | D13 | 27 |
| 17 | D14 | 28 |
| 18 | D15 | 29 |
| 19 | CS | 40 |
| 20 | RS | 38 |
| 21 | WR | 39 |
| 22 | RD | no use |
| 23 | RST | 41 | general reset
| 24 | TE | |
| 25 | TD0 | 3 | SPI_MOSI
| 26 | INT | 2 | TP_IRQ/IRQ
| 27 | TD1 | 4 | SPI_MISO
| 28 | PWM | |
| 29 | TSCK | 6 | SPI_SCK
| 30 | PCS | |
| 31 | TCS | 5 | T_CS
| 32 | SDCS | |
| 5V | 5V | 5V | Backlight +
| 0V | 0V | 0V | Backlight GND
نویسنده این مطلب
سلام
کتابخونه های دیگه ای رو تست کن!
در ضمن موقع استفاده از کتابخونه ببین تو توابع راه اندازیش هسته اصلی نمایشگرت رو انتخاب کرده باشی
مهمان
تنها تنظیماتی که داره، تنظیم نوع درایور ای سی دیه. که منم SSD1963 درایورمه و چون ال سی دی 800*480 نوع SSD1963_800 رو گذاشتم.
UTFT myGLCD(SSD1963_800,38,39,40,41);
میشه بیشتر راهنمایی بفرمایید.
نویسنده این مطلب
منظورم همین گزینه SSD1963_800 هستش – ببین درست انتخاب کردی -گزینه های دیگه اش رو هم تست کن – پروژه رو هم ساده کن – شاید اومدی یه متنی نمایش دادی و بعد در جا پاکش کردی یا از این جور سوتی ها – یا یه چیزی نمایش میدی با رنگ پس زمینه!
مهمان
سلام میشه این ال سی دی رو با AVR هم راه انداخت؟
نویسنده این مطلب
سلام
1) میگردی و کتابخونه این نمایشگر رو برا میکرو مد نظر و کامپیایلر مد نظرت پیدا میکنی
2) همین کتابخونه رو برا کامپایلر مد نظرت سازگار میکنی
مهمان
سلام برای یادگیری آردوینو کلاس رفتین آیا
یا از کتابی چیزی یاد گرفتین ؟
کتاب هست ولی انگلیسیه بالای چند صد صفحه اس
منم میخوام یاد بگیرم از اول / سایت شما رو دنبال میکنم
برا یادگیری از اول چطوری شروع کنم و اینکه اگه ممکن هست منو راهنمایی کنید .
خیییییییییلی ممنون
نویسنده این مطلب
سلام
نه بابا ما اگه پول کلاس رفتن داشتیم که الان اینجا نبودیم
خودم یاد گرفتم – کلا هر چیزی بخوای یاد بگیری اموزشش تو نت هستش.
موضوعی چیزی برا آردوینوع! مد نظرت بود بگو تا آموزشش رو بزارم تو سایت.
به نظرم یکم پروژه ببند برا تفریح تا یکم راه بیوفتی و بعد برو با کتابخونه ها مختلف کار کن و قبل همه اینا زبون c و c++ رو خوب یاد بگیر.
مهمان
سلام مهندس من یه مشکلی دارم.
یه برنامه دارم که با ال سی دی همین ابعاد و همین کنترلر st7735 نوشته شده ولی به صورت پارالل به میکرو وصل میشه. ایا میشه من همین ال سی دی رو به جای اون استفاده کنم یا مدار تبدیلی چیزی بزارم که بتونم به صورت پارالل استفاده کنم.. یا از یه ال سی دی با یه کنترلر دیگه استفاده کنم ولی ارتباطش پارالل باشه . مشکل من اینه اصلا نمیتونم به برنامه دست بزنم و تغییر بدم . فقط ال سی دی میتونم تغییر بدم . ممنون
مهمان
در ضمن شیلد من این هست
http://shop.aftabrayaneh.com/LCD_Monitors/Displays/Arduino_MEGA_2560_3.5_Inch_TFT_LCD_Touch_Shield.html
هر کاری میکنم راه نمیفته یه صفحه سفید میاد کتابخونه های مختلف رو امتحان کردم جواب نمیده
مهمان
سلام
ببخشید میشه اموزش راه اندازی ال سی دی TFT 3.5 اینچ رو هم بذارید مخصوصا پین اوتهاش و طریقه اتصالش به اردوینو مگا 2560 کارم لنگه اگه میشه سریع
مهمان
سلام . واقعا تشکر میکنم از مطالب مفیدتون و مخصوصا پی دی اف آموزشی.
پروژم درست شد به کمک خدا و البته کمک های شما ^_^
فقط چند تا چیز ریز کاری مونده که امیدوارم شما بتونید کمکم کنید اونم حل بشه
یمی این که من میخوام فونت متن روی ال سی دی رو عوض کنم چون فونتی که الان هست خوب نیست اصلا
منتها نمیدونم چه طوری یا این که تابعش چیه …
میشه راهنماییم کنید
اگر ایمیل بزنید بهتره
ممنون
نویسنده این مطلب
سلام
فعلا وقتش رو ندارم که بشینم و…
ولی فعلا از شیوه تبدیل متن به عکس استفاده کن تا بعد…
یا تو کتایخونش بگیرد ببین چیزی پیدا میشه و یا تو کتابخونه های توی نت ببین کتابخونه ای برا این نمایشگر پیدا میکنی که فونتش رو بشه تعیین کرد.
مهمان
با سلام مطلب خیلی مفید هست اما من TFT LCD 2.8 اینچی خریدم و روی برد آردوئینو نصبش کردم (ال سی دی شیلد خود برد است) و هر برنامه ایی که روی برد آپلود میکنم ، ال سی دی فقط صفحه سفید را نمایش می دهد .
طبق پرس و جو ها متوجه شدم که باید درایور ال سی دی رو نصب کنم الان چند روزه دارم میگردم و پیداش نمیکنم
خیلی خیلی خیلی ممنون میشم اگر بگید راه حلش چیه
که بتونم ال سی دی رو راه اندازه کنم خیلی عجله دارم و حسابییی کارم گیره
ممنون میشم اگر راه حل رو برام ایمیل کنید
با تشکر
نویسنده این مطلب
سلام
نمایشگر زیر رو خریدید؟
ماژول نمایشگر با تاچ اسکرین 2.8 اینچ LCD N96
اگه این نیستش بگو نمایشگرت رو از کجا خریدی و لینکش رو بهم بده تا ببینم.
مهمان
این لینک ال سی دی ایی هست که گرفتم حتی فایل درایورش هم هست اونجا ولی هر کاری میکنم درست نمیشه
http://shop.aftabrayaneh.com/LCD_TFT_Arduino.html
مهمان
مشکل اصلی من اینه که با وجود اینکه کتابخانه ها رو نصب کردم و کد ال سی دی رو آپلود کردم باز هم صفحه سفیده دیگه کلافم کرده . کارم بدجور گیر هست :((((
نویسنده این مطلب
ایمیل دادم بهتون
مهمان
ببخشید می شه اتصال این ال سی دی با اردوینو رو تو پروتئوس هم بگید. هرکاری میکنم نممی تونم اردوینو انو رو با ال سی دی تی اف تی تو پروتئوس ره اندازی کنم. حتی کد های مربوط به رم و نمایش عکس هم حذف کردم ولی هیچ اتفاقی نمی افتد. به هر حال ممنون.
نویسنده این مطلب
به مظلب اضافه کردم نحوه اتصالات رو…
مشکلی بود بگو…
مهمان
ببخشید من دقیقا نفهمیدم تو این پروژه شما چه پایه هایی رو به هم وصل می کنید؟(اتصالات اردوینو و ال سی دی به هم رو متوجه نشدم) اگر امکان دارد توضیح دهید.
نویسنده این مطلب
خب ته مطلب یه pdf آموزش هستش – توی اون ننوشتم؟
مهمان
سلام – از کار شما خوشم اومد . اگه بتونی مطالب رو طوری تهیه کنی که بعدا بتونی ازش درآمد کسب کنی هم خوبه . مثلا ماژول آماده بفروشین یا طرح شماتیک و PCB بفروشین . یا کتابخانه های آماده بفروشین . نگین که نیاز مالی ندارم که باور کردنی نیست . میتونید بازاری هم ایجاد کنید تا دیگران هم پروژه هاشون رو بفروشن . در ضمن با میکروهای ARM شرکت ST هم کار کنید . عالی و در دسترس و قیمت مناسب .
نویسنده این مطلب
سلام
من توی پول هاست سایت موندم اون وقت بیام PDB مازول و.. بفروشم
مهمان
سلام میتونی کد avr و lpc1768 این میکرو را قرار بدهید؟
من تازه کارم
نویسنده این مطلب
سلام
برا Avr رو نه(یکم کار دارم فعلا)، برا آرم هم نه(چون آرم کار نمیکنم)
مهمان
سلام داداش خوبی؟
ممنون که اینهکه زحمت میکشی
عزیز یه سوال فنی
پشت ماژوا ال سی دی رو یه نگاه بنداز ۲ تا جامپر j2 ,j3 داره
میدونی اینا برای چیه؟
و میتونی یه راهنمایی بکنی که چیکار کنیم سرعت لود تصویر بره بالا؟
نویسنده این مطلب
سلام قربوت داش
….. لینک زیرو ببین(سرچ)
نمیدونم
TFT LCD 1.8 inch schematic
از توابعی استفاده کن که از spi سختافزاری استفاده کردن و این که برو داخل کد های کتابخونه و پروژه فرکانس کاری spi رو تغییر بده
مطلب spi تو آردوینو رو هم امروز تو سایت گزاشتم
تابع مربوطه رو پیدا کن و تو پروژه و کتابخونه سرچ کن و عدد رو تغییر بده
مهمان
میشه لطفا اس پى آى آردوینو هم یاد بدین؟؟??
نویسنده این مطلب
والا دارم مطلبش رو مینویسم
ولی یکی از ۲ تا برد Uno ام سوخت و مطلب آموزش نوشتن کتابخونه nrf و آموزش spi رفت رو هوا….سفارش دادم چند روز دیگه میرسه دستم
و این که سر spi باید یه مثالی به ذهنم برسه و اونو درست کنم، شاید همون مثال های avr (آموزش Avr، بخش spi) رو اومدم به آردوینو تبدیل کردم و…
یاد آوری کن چون فراموش میکنم، الان هم درگیر طراحی و آموزش آلتیوم هستم، و حواسم هم که دیگه…
یاد آوری کنید.
مهمان
سلام مهدی جان خیلی گلی!
خدا قوت. ایشالله شهید بشی.
نویسنده این مطلب
سلام
اگه من شهید بشم کی دیگه میخواد مطلب بزاره تو سایت
یه مطلب خفن میخوام بزارم تو سایت که تو سایت های ایرانی نظیر نداشته تا حالا
یه ۱-۲ هفته ای طول میکشه
مهمان
در چه مورد؟ اگه در مورده کواد باشه من کمکت میکنماا!! D:
نویسنده این مطلب
سلام داش
در مورد nrf ، نوشتن کتابخونه
داش ما قبلا هم گفتیم؛ هر موقع تونستی بیا مطلبش رو بزار…
مهمان
سلام دسستتون درد نکنه واقعا بابت آموزشای خوبتون میشه بگین lcd رو از کجا تهیه کردین که مدل شما رو بخریم؟
نویسنده این مطلب
سلام
ماژول TFT LCD تمام رنگ ۱٫۸ اینچ
مهمان
واقعا دستت درد نکنه مهدی جان،مطالب سایتت خیلی عالی و در عین حال ساده توضیح داده شده و واقعا من رو به شخصه خیلی خیلی کمک کرده چیزای جدید یاد بگیرم…ایشالله که جات وسطه بهشته?