สารบัญ:

เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED: 5 ขั้นตอน
เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED: 5 ขั้นตอน

วีดีโอ: เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED: 5 ขั้นตอน

วีดีโอ: เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED: 5 ขั้นตอน
วีดีโอ: สอน เขียนโปรแกรม ภาษาซี Arduino | Uno R3 OLED 128x32 จอแสดงผล I2C #EP20 2024, พฤศจิกายน
Anonim
เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED
เครื่องวัดระยะสูง Arduino โดยใช้ BMP และ SPI หรือ I2C OLED

เป็นเวลานานที่ฉันค้นหาเครื่องวัดระยะสูงและอุณหภูมิโดยใช้เซ็นเซอร์ตัวเดียวและแสดงไปยัง OLED ที่ใช้ SPI เนื่องจากฉันไม่พบสิ่งใดที่แม่นยำ เลยคิดว่าฉันจะสร้างของตัวเองโดยใช้ไลบรารี U8glib มีบทช่วยสอนหนึ่งรายการใน youtube แต่ฉันเกลียดวิดีโอสอนจริงๆ ฉันชอบข้อความที่มีคำแนะนำตรงไปตรงมาและไม่มีลิงก์เชิงพาณิชย์

ขั้นตอนที่ 1: สิ่งแรกก่อน

ก่อนที่จะทำโปรเจ็กต์นี้ เราขอแนะนำให้คุณทำแบบฝึกหัด SSD1306/OLED สำหรับ I2C หรือ SPI ให้เสร็จ (แล้วแต่ว่าคุณต้องการใช้อะไร) เพื่อให้แน่ใจว่าคุณรู้วิธีเชื่อมต่อ/ต่อสายจอแสดงผล และจอแสดงผลของคุณทำงาน ทำแบบฝึกหัด adafruit และ / หรือตัวอย่าง u8glib เราจะใช้ u8glib ที่นี่ดังนั้นแนะนำสำหรับผู้ใช้ขั้นสูง

ขั้นตอนที่ 2: Hardwares ที่จำเป็น

ฮาร์ดแวร์ที่จำเป็น
ฮาร์ดแวร์ที่จำเป็น

1. Arduino UNO หรือ Nano หรือเทียบเท่า

2. BMP085 หรือ BMP180 เซ็นเซอร์ความดันบรรยากาศ

3. SSD1306 I2C หรือ SPI Bus (กำหนดค่าได้ในแบบร่าง)

4. สายจัมเปอร์และเขียงหั่นขนมหรือบอร์ด vero สำหรับการเชื่อมต่อ

ขั้นตอนที่ 3: Arduino IDE Libraries สำหรับการคอมไพล์

1. Wire.h

2. Adafruit_BMP085.h (ใช้ได้กับ BMP180 ด้วย)

3. U8glib.h

ขั้นตอนที่ 4: การเชื่อมต่อ

การเชื่อมต่อทั้งหมดเหมือนกันสำหรับทั้งจอแสดงผล I2C และ SPI OLED เฉพาะการเชื่อมต่อกับจอแสดงผลเท่านั้นที่จะแตกต่างกัน

1. BMP ถึง Arduino:

VCC > 3.3V

GND > กราวด์

SCL > A5/SCL

SDA > A4/SDA

SCK = 12, MOSI = 11, CS = 10, A0 = 9, รีเซ็ต = 13

2. SPI OLED ถึง Arduino

VDD > 5V

GND > กราวด์

SCK/D0 > D12 (ดิจิตอล 12)

SDA/D1/Mosi > D11

CS/ชิปเลือก > D10

A0/DC > D9

RES/รีเซ็ต > D13

(หาก SPI OLED ของคุณไม่มีพินรีเซ็ต ให้ลบรีเซ็ตและรีเซ็ตพินออกจากพารามิเตอร์ของจอแสดงผลสเก็ตช์)

3. I2C OLED

เช่นเดียวกับการเดินสาย BMP พวกเขาใช้พอร์ตและประเภทบัสเดียวกัน

ขั้นตอนที่ 5: การอัปโหลดร่าง

ค่อนข้างตรงไปตรงมา เพียงดาวน์โหลดไฟล์ zip และเปิดใน Arduino IDE ทุกอย่างได้รับการกำหนดค่าในแบบร่าง ผู้ใช้ SPI OLED สามารถอัปโหลดภาพร่างโดยไม่ต้องแก้ไขใดๆ และใช้งานได้ สำหรับผู้ใช้ I2C OLED เพียงยกเลิกการใส่เครื่องหมายชื่อ/ตัวเลือกที่แสดงของคุณจากตัวเลือก Display Select ของภาพร่าง และแสดงความคิดเห็นและปิดรูปแบบ/พารามิเตอร์ของ SPI Display เพื่อปิดใช้งาน SPI OLED

พารามิเตอร์การแสดงผล SPI:

//U8GLIB_SSD1306_128X64 u8g(12, 11, 10, 9, 13); // SW SPI Com: SCK = 12, MOSI = 11, CS = 10, A0 = 9, รีเซ็ต = 13

พารามิเตอร์การแสดงผล I2C:

//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // แสดงที่ไม่ส่ง AC

หากต้องการเปิดใช้งานพารามิเตอร์ เพียงลบเครื่องหมาย // ที่จุดเริ่มต้นเพื่อยกเลิกการแสดงความคิดเห็น ตรวจสอบให้แน่ใจว่าได้เลือก/ยกเลิกการแสดงความเห็นเพียงจอเดียว

คำแนะนำ:

1. เซ็นเซอร์ BMP มีความไวต่อลม ความร้อน และแสง ตรวจสอบให้แน่ใจว่าครอบคลุมแล้ว ผลลัพธ์ที่ดีที่สุดคือการติดโฟมที่มีการระบายอากาศที่เหมาะสม สิ่งต่างๆ เช่น เทปเป็ดก็ใช้ได้เช่นกันแต่จะไม่แม่นยำ

2. BMP มักใช้ 3.3V เว้นแต่ผู้ผลิตของคุณจะแจ้งเป็นอย่างอื่น OLED อาจทำงานได้ตั้งแต่ 3.3v-5.5V (แนะนำ 4-5V)

3. ขอแนะนำให้ตั้งค่าทุกอย่างบนเขียงหั่นขนมก่อน

4. หากคุณยังใหม่กับ OLED โปรดลองใช้สิ่งง่ายๆ ก่อน เช่น ข้อความและบัฟเฟอร์จำลอง เพื่อให้แน่ใจว่าจอแสดงผลของคุณทำงานและการเชื่อมต่อของคุณถูกต้อง

แนะนำ: