قم بإنشاء دالة في كود Arduino والتي، عند تمرير صورة نقطية، ترسم تلك الخريطة على شاشة OLED التي تستخدم واجهة SPI
قم بإنشاء دالة في كود Arduino والتي، عند تمرير صورة نقطية، ترسم تلك الخريطة على شاشة OLED التي تستخدم واجهة SPI
user
إليك التعليمات البرمجية التي، عند إعطائها صورة نقطية، ترسم الصورة النقطية المذكورة على شاشة OLED:

#تشمل <SPI.h>
#تشمل <Adafruit_GFX.h>
#تشمل <Adafruit_SSD1306.h>

#تعريف OLED_CS 10
#تعريف OLED_DC 9
#تعريف OLED_RESET 8

#تعريف الشاشة_العرض128
#تعريف SCREEN_HEIGHT 64

// قم بإنشاء مثيل لشاشة OLED
شاشة Adafruit_SSD1306 (SCREEN_WIDTH، SCREEN_HEIGHT، &SPI، OLED_DC، OLED_RESET، OLED_CS)؛

الإعداد باطل() {
  // تهيئة شاشة OLED
  Display.begin(SSD1306_SWITCHCAPVCC);
  Display.clearDisplay();
  
  // ارسم الصورة النقطية على شاشة OLED
  drawBitmap(bitmap);
}

حلقة فارغة() {
  // أضف منطق الكود الرئيسي الخاص بك هنا
}

باطلة drawBitmap(const uint8_t *bitmap) {
  // اضبط لون الرسم على اللون الأبيض
  Display.setTextColor(WHITE);
  
  // التكرار خلال كل صف من الصورة النقطية
  لـ (int y = 0; y <SCREEN_HEIGHT / 8; y++) {
    // التكرار خلال كل عمود من الصورة النقطية
    لـ (int x = 0; x < SCREEN_WIDTH; x++) {
      // احصل على البايت الحالي للصورة النقطية
      uint8_t byte = bitmap[y * SCREEN_WIDTH + x];
      
      // ارسم كل بت من البايت على شكل بكسل
      لـ (int bit = 0; bit < 8; bit++) {
        إذا (بايت & (1 << بت)) {
          // إذا تم تعيين البت، ارسم بكسل في الموضع المقابل
          Display.drawPixel(x, y * 8 + bit, WHITE);
        }
      }
    }
  }
  
  // عرض الصورة النقطية المرسومة على شاشة OLED
  Display.display();
}
assistant