📈 ماموریت ۷۷: نمودار زنده روی OLED

پتانسیومتر را به A0 بده. مقدارش را با map به ارتفاع صفحه ببر و با drawLine نقطه‌ها را به هم وصل کن.

سطح: متوسط ⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. Arduino Uno (VCC5) ⟷ OLED 0.96" (SSD1306) (VCC)
  2. OLED 0.96" (SSD1306) (GND) ⟷ Arduino Uno (GND1)
  3. Arduino Uno (A4) ⟷ OLED 0.96" (SSD1306) (SDA)
  4. Arduino Uno (A5) ⟷ OLED 0.96" (SSD1306) (SCL)
  5. Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
  6. Arduino Uno (A0) ⟷ پتانسیومتر (WIPER)
  7. پتانسیومتر (GND) ⟷ Arduino Uno (GND1)

کد

// OLED live graph: the knob drawn as a moving line
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display(128, 64, &Wire, -1);
int x = 0;
int lastY = 63;

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
}

void loop() {
  int y = map(analogRead(A0), 0, 1023, 63, 10);   // high value = near the top
  if (x == 0) {
    display.clearDisplay();                      // new screen: start again
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(0, 0);
    display.print("Knob graph");
  }
  display.drawLine(x - 1, lastY, x, y, SSD1306_WHITE);
  display.display();
  lastY = y;
  x++;
  if (x >= 128) x = 0;
  delay(50);
}

ماموریت‌های مشابه

🖥️

ماموریت ۷۶: سلام روی نمایشگر OLED

🌡️

ماموریت ۷۸: ایستگاه هوا: دما و رطوبت

🕰️

ماموریت ۷۹: ساعت واقعی با DS3231

😊

ماموریت ۸۱: شکلک روی ماتریس ۸×۸

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها