ในการกวดวิชานี้เราจะออกแบบความกดดันของบรรยากาศระบบการวัดโดยใช้BMP180 และ ARDUINO ก่อนอื่นสำหรับการเชื่อมต่อ BMP180 กับ ARDUINO เราต้องดาวน์โหลดไลบรารีที่ออกแบบมาเฉพาะสำหรับ BMP180 ห้องสมุดนี้มีอยู่ที่: https://github.com/adafruit/Adafruit-BMP085-Library หลังจากติดไลบรารีนั้นแล้วเราสามารถเรียกใช้ฟังก์ชันพิเศษซึ่งจะช่วยให้ทำงานกับเซ็นเซอร์ BMP180 ได้ง่ายขึ้น
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์: Arduino uno board, หมุดเชื่อมต่อ, ตัวต้านทาน220Ω, BMP180 Barometric Pressure Sensor, 16x2 LCD, bread board
ซอฟต์แวร์: Arduino ทุกคืน
แผนภาพวงจรและคำอธิบายการทำงาน
หลังจากเรียกส่วนหัวแล้วเราไม่ต้องกังวลในการสร้างการสื่อสารระหว่าง Arduino Uno และเซ็นเซอร์ BMP180 เราสามารถเรียกใช้ฟังก์ชันพิเศษที่จะทำเพื่อเรา เราจำเป็นต้องเริ่มต้น LCD และแสดงค่าที่เรียกจาก SENSOR เท่านั้น
ในจอ LCD 16x2 จะมี 16 พินทั้งหมดหากมีไฟด้านหลังหากไม่มีไฟด้านหลังจะมีทั้งหมด 14 พิน หนึ่งสามารถจ่ายไฟหรือปล่อยหมุดไฟด้านหลัง ตอนนี้ใน 14 ขามี 8 ข้อมูลหมุด (7-14 หรือ D0-D7) 2 หมุดแหล่งจ่ายไฟ (1 & 2 หรือ VSS & VDD หรือ GND & + 5V) 3 ถพินสำหรับการควบคุมความคมชัด (วีควบคุมวิธีการหนาตัวละครที่ควรจะเป็น แสดง) และ 3 พินควบคุม (RS & RW & E)
ในวงจรคุณสามารถสังเกตได้ว่าฉันใช้พินควบคุมเพียงสองตัวเท่านั้นไม่ได้ใช้บิตคอนทราสต์และ READ / WRITE บ่อยครั้งดังนั้นจึงสามารถลัดลงกราวด์ได้ ทำให้ LCD มีคอนทราสต์สูงสุดและโหมดอ่าน เราต้องควบคุมพิน ENABLE และ RS เพื่อส่งอักขระและข้อมูลตามนั้น
การเชื่อมต่อที่ทำกับ LCD มีดังต่อไปนี้:
PIN1 หรือ VSS ลงกราวด์
PIN2 หรือ VDD หรือ VCC ถึง + 5v
PIN3 หรือ VEE กับพื้น (ให้ความเปรียบต่างสูงสุดที่ดีที่สุดสำหรับผู้เริ่มต้น)
PIN4 หรือ RS (Register Selection) เป็น PIN8 ของ ARDUINO UNO
PIN5 หรือ RW (อ่าน / เขียน) ลงกราวด์ (ทำให้ LCD อยู่ในโหมดอ่านช่วยให้การสื่อสารสำหรับผู้ใช้ง่ายขึ้น)
PIN6 หรือ E (เปิดใช้งาน) ถึง PIN9 ของ ARDUINO UNO
PIN11 หรือ D4 ถึง PIN10 ของ ARDUINO UNO
PIN12 หรือ D5 ถึง PIN11 ของ ARDUINO UNO
PIN13 หรือ D6 ถึง PIN12 ของ ARDUINO UNO
PIN14 หรือ D7 ถึง PIN13 ของ ARDUINO UNO
ARDUINO IDE อนุญาตให้ผู้ใช้ใช้ LCD ในโหมด 4 บิต การสื่อสารประเภทนี้ช่วยให้ผู้ใช้สามารถลดการใช้พินบน ARDUINO ซึ่งแตกต่างจาก ARDUINO อื่น ๆ ที่ไม่จำเป็นต้องตั้งโปรแกรมแยกต่างหากสำหรับการใช้งานในโหมด 4 it เนื่องจากโดยค่าเริ่มต้น ARDUINO ถูกตั้งค่าให้สื่อสารในโหมด 4 บิต ในวงจรคุณจะเห็นว่าเราใช้การสื่อสาร 4 บิต (D4-D7)
ดังนั้นจากการสังเกตจากตารางด้านบนเรากำลังเชื่อมต่อ 6 พินของ LCD เข้ากับคอนโทรลเลอร์ซึ่ง 4 พินเป็นพินข้อมูลและ 2 พินสำหรับควบคุม
สำหรับการเชื่อมต่อBMP180 กับ Arduino Uno เราต้องดำเนินการดังนี้:
|
ก่อนอื่นเราต้องเรียกไฟล์ส่วนหัวเพื่อเปิดใช้งานฟังก์ชันพิเศษ“ #include”
ด้วยไฟล์ส่วนหัวนี้เราสามารถเรียกใช้ฟังก์ชันที่สามารถอ่านค่าจากเซนเซอร์ได้โดยตรงโดยไม่มีฟัซซ์
ตอนนี้เราจำเป็นต้องเปิดใช้งานการสื่อสาร C ซึ่งทำได้โดยเรียก“ #include
เราสามารถอ่านแรงกดได้โดยเรียก "String PRESSUREVALUE = String (bmp.readPressure ());" ที่นี่ค่าความดันจะถูกอ่านจากเซ็นเซอร์และถูกเก็บไว้ในสตริง“ PRESSUREVALUE”
เราสามารถอ่านอุณหภูมิได้โดยเรียก "String TEMPARATUREVALUE = String (bmp.readTemperature ());" ที่นี่ค่าความดันจะถูกอ่านจากเซ็นเซอร์และถูกเก็บไว้ในสตริง "TEMPARATUREVALUE"
ก่อนอื่นเราต้องเปิดใช้งานไฟล์ส่วนหัว ('#include
อย่างที่สองเราต้องบอกบอร์ดว่าเราใช้ LCD ประเภทใดที่นี่ เนื่องจากเรามี LCD ประเภทต่างๆมากมาย (เช่น 20 * 4, 16 * 2, 16 * 1 เป็นต้น) ที่นี่เราจะเชื่อมต่อ LCD 16 * 2 กับ UNO ดังนั้นเราจึงได้ 'lcd.begin (16,2);' สำหรับ 16 * 1 เราได้รับ 'lcd.begin (16,1);'
ในคำแนะนำนี้เราจะบอกบอร์ดที่เราเชื่อมต่อพินพินที่เชื่อมต่อจะถูกแสดงตามลำดับเป็น“ RS, En, D4, D5, D6, D7” หมุดเหล่านี้จะต้องแสดงอย่างถูกต้อง เนื่องจากเราเชื่อมต่อ RS กับ PIN0 และอื่น ๆ ตามที่แสดงในแผนภาพวงจรเราจึงแสดงหมายเลขพินที่จะบอร์ดเป็น“ LiquidCrystallcd (0,1,8,9,10,11);”
หลังจากที่ด้านบนเหลือเพียงการส่งข้อมูลข้อมูลที่ต้องแสดงใน LCD ควรเขียนเป็น "cd.print (" hello, world! ");" ด้วยคำสั่งนี้หน้าจอ LCD จะแสดงคำว่า "สวัสดีชาวโลก!"
อย่างที่คุณเห็นเราไม่จำเป็นต้องกังวลเกี่ยวกับสิ่งอื่นใดเราเพียงแค่ต้องเริ่มต้นและ UNO ก็พร้อมที่จะแสดงข้อมูล เราไม่ต้องเขียนโปรแกรมวนซ้ำเพื่อส่งข้อมูล BYTE by BYTE ที่นี่ หลังจากอ่านค่าจากเซ็นเซอร์แล้วเราจะแสดงบนจอ LCD 16x2