สารบัญ:

มีประสิทธิภาพและราคาถูก: แสดงผลด้วย STM32L4: 13 ขั้นตอน
มีประสิทธิภาพและราคาถูก: แสดงผลด้วย STM32L4: 13 ขั้นตอน

วีดีโอ: มีประสิทธิภาพและราคาถูก: แสดงผลด้วย STM32L4: 13 ขั้นตอน

วีดีโอ: มีประสิทธิภาพและราคาถูก: แสดงผลด้วย STM32L4: 13 ขั้นตอน
วีดีโอ: Running the Amazon FreeRTOS Demo on STM32L4 | SEGGER 2024, พฤศจิกายน
Anonim
Image
Image
บทนำ
บทนำ

วันนี้เราจะมาพูดถึงสามวิชาที่ฉันชอบมากที่สุด: จอ LCD ที่ใช้พลังงานเพียงเล็กน้อย, STM32 พร้อม Core Arduino และ Arduino Mega Pro Mini นี่คือทรีโอที่ไม่มีข้อผิดพลาดสำหรับ Internet of Things จากนั้นผมจะแนะนำให้คุณรู้จักกับจอ LCD หกหลัก HT1621 และสร้างตัวอย่างการควบคุมด้วยโค้ดที่ทำงานได้ทั้งบน Arduino Mega Pro Mini และ STM32 L432KC รายละเอียดที่น่าสังเกตคือซอร์สโค้ดสำหรับไมโครคอนโทรลเลอร์สองตัวนั้นเหมือนกันทุกประการ ฉันจะไม่เปลี่ยนการปักหมุดเช่นกัน มันยอดเยี่ยมมาก!

ขั้นตอนที่ 1: บทนำ

บทนำ
บทนำ

จอแสดงผล LCD HT1621 มีหน้าจอที่ใช้กันทั่วไปในมัลติมิเตอร์ เครื่องชั่งอิเล็กทรอนิกส์ นาฬิกาอิเล็กทรอนิกส์ เทอร์โมมิเตอร์ และอุปกรณ์วัดอิเล็กทรอนิกส์

• มี 6 หลัก 7 ส่วน

• ใช้การสื่อสาร SPI แบบ 3 สาย

• มีไฟแบ็คไลท์ที่เหมาะกับสภาพแวดล้อมที่มืด

• แรงดันใช้งาน 4.7 ~ 5.2V

• กินไฟ 4mA พร้อมไฟแบ็คไลท์

โปรดทราบว่ามีตัวเลขมากกว่าหกหลัก จุดทศนิยมสามจุด และมาตรวัดแบตเตอรี่พร้อมแถบสามแถบ

ขั้นตอนที่ 2: ห้องสมุดสำหรับการใช้งาน

เราจะใช้ไลบรารีผู้ใช้ ANXZHU github ซึ่งค่อนข้างง่าย สามารถดูได้ในเวอร์ชันดั้งเดิมในลิงค์ด้านล่าง:

github.com/anxzhu/segment-lcd-with-ht1621

ชื่อไลบรารีค่อนข้างแปลก ดังนั้นฉันจึงตัดสินใจเปลี่ยนชื่อ (ไฟล์ คลาส ตัวสร้าง ฯลฯ) ชื่อเดิมคือ "A6seglcd" ฉันแทนที่ชื่อนี้ด้วย "lcdlib"

ขั้นตอนที่ 3: ห้องสมุด

เพิ่มไลบรารี "lcdlib"

เข้าถึงลิงค์และดาวน์โหลดห้องสมุด

เปิดเครื่องรูดไฟล์และวางลงในโฟลเดอร์ไลบรารีของ Arduino IDE

C: / ไฟล์โปรแกรม (x86) / Arduino / ไลบรารี

ขั้นตอนที่ 4: การสาธิต

สาธิต
สาธิต

Arduino mega assembly

ขั้นตอนที่ 5: การสาธิต

สาธิต
สาธิต

การประกอบ SMT32

ขั้นตอนที่ 6: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

ฉันต้องการเน้นที่นี่ว่า STM32-L432KC ไม่มีตัวแปลง USB แบบอนุกรม แต่มี USB เต็มรูปแบบซึ่งใช้โปรโตคอล ST-link STMicroelectronics ดังนั้นจึงค่อนข้างซับซ้อนและเปิดใช้งานการดีบักอย่างมีประสิทธิภาพหากคุณใช้ IR หรือ Microvision และเนื่องจากเป็น Arduino Core (MBED โดยใช้เครื่องมือดั้งเดิมของ Microsoft) จึงใช้คอมไพเลอร์ที่มีความเป็นมืออาชีพสูง ฉันต้องพูดอะไรอีกไหม

ขั้นตอนที่ 7: Arduino Mega 2560 PRO MINI

Arduino Mega 2560 PRO MINI
Arduino Mega 2560 PRO MINI

ฉันชอบสิ่งนี้เพราะเป็น Arduino "บริสุทธิ์" และ "ของจริง" เป็นเมก้าที่มี IO มากมาย แต่มันเป็นมินิ มันจึงเข้าได้กับทุกที่ ฉันชอบ IO ทุกที่ ด้วยเหตุนี้ ฉันชอบที่จะเชื่อมต่อ Led, SPI, i2c เป็นต้น ในแง่นี้ Mega นี้ยอดเยี่ยมมาก

ขั้นตอนที่ 8: การประกอบ

การประกอบ
การประกอบ

ในการประกอบของเรา แถวของหมุดตัวผู้อยู่ด้านใน ในขณะที่หมุดตัวเมียอยู่ด้านนอกสุด อำนวยความสะดวกในการทำงานและการเชื่อมต่อกับโปรโตบอร์ด เราทำการเชื่อมต่อ SPI โดยจำได้ว่า Arduino Mega และ Arduino Nano clone นี้มีการตรึงแบบเดียวกัน ซึ่งก็คือ STM32-L432KC

ขั้นตอนที่ 9: โปรแกรม

เราจะสร้างโปรแกรมที่เรียบง่าย โดยเราจะเขียนสัญลักษณ์ต่างๆ (ตัวอักษร ตัวเลข และจุด) บนหน้าจอ

โปรดจำไว้ว่าโปรแกรมนี้ใช้ได้กับทั้ง Arduino Mega Pro Mini และ STM32 L432KC

ขั้นตอนที่ 10: ไลบรารีและตัวแปร

จากนั้นเราจะรวมไลบรารีที่รับผิดชอบในการสื่อสารและยกตัวอย่างการควบคุมการแสดงผล ฟังก์ชัน "const char" แสดงตารางอาร์เรย์ คุณจะใช้เวกเตอร์เหล่านี้อ้างอิงถึงอักขระที่พิมพ์บนจอแสดงผลได้

#include //biblioteca para controle do display

lcdlib จอแอลซีดี; //instancia do controlador do display /*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, c, d, E, F, H, h, L, n, N, P, r, t, U, -, bat, pf, ' ', */ const char num={0x7D, 0x60, 0x3E, 0x7A, 0x63, 0x5B, 0x5F, 0x70, 0x7F, 0x7B, 0x77, 0x4F, 0x1D, 0x0E, 0x6E, 0x1F, 0x17, 0x67, 0x47, 0x0D, 0x46, 0x75, 0x37, 0x06, 0x0F, 0x6D, 0x02, 0x80, 0xFF, 0x00 }; /*ดัชนี num 0 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 */

ขั้นตอนที่ 11: ตั้งค่า

ในการเริ่มต้นการตั้งค่า เราจะกำหนดหมุด ทำการตั้งค่าเริ่มต้น และตั้งค่าการทำความสะอาดจอแสดงผล เราพิจารณาแล้วว่าหน้าจอแสดง "สวัสดี" และหลังจากผ่านไประยะหนึ่ง ข้อความที่แสดงจะถูกล้าง

การตั้งค่าเป็นโมฆะ () { lcd.run (2, 3, 4, 5); // [cs wr data led +] definição dos pinos lcd.conf (); //configuração เริ่มต้น lcd.clr(); //limpa o display //escrve HELLO lcd.display(10, num [17]); ลบ lcd.display(8, จำนวน [15]); lcd.display(6, จำนวน [19]); lcd.display(4, จำนวน [19]); lcd.display(2, จำนวน[0]); //fim สวัสดีล่าช้า (1000); lcd.clr(); //limpa o แสดง }

ขั้นตอนที่ 12: วนรอบ

ที่นี่ เราสร้างฟังก์ชันที่เรียกว่า "writeLoop" ซึ่งจะเขียนคำว่า LOOP บนหน้าจอ จากนั้นเขียนสัญลักษณ์ทั้งหมดของอาร์เรย์ของเรา นอกจากนี้เรายังมีฟังก์ชัน "writeBattery" ซึ่งพิมพ์เครื่องหมายแบตเตอรี่

สุดท้าย เรามีคำสั่ง "lcd.dispnum" ที่เขียนค่าทศนิยม

ขั้นตอนที่ 13: ดาวน์โหลดไฟล์

ไฟล์ PDF

ฉันไม่

แนะนำ: