สารบัญ:
- ขั้นตอนที่ 1: ทรัพยากรที่ใช้
- ขั้นตอนที่ 2: การประกอบ
- ขั้นตอนที่ 3: โปรแกรมใหม่ใน MBED
- ขั้นตอนที่ 4: การนำเข้าไลบรารี DS18b20
- ขั้นตอนที่ 5: โปรแกรมใหม่ใน MBED
- ขั้นตอนที่ 6: รหัสที่มา
- ขั้นตอนที่ 7: ข้อมูลที่ได้รับ
- ขั้นตอนที่ 8: รวมเซ็นเซอร์เพิ่มเติม
- ขั้นตอนที่ 9: ดูแหล่งที่มา
- ขั้นตอนที่ 10: ไฟล์
วีดีโอ: ตั้งโปรแกรมง่ายเหลือเชื่อ!: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
วันนี้ผมจะมาพูดถึง STM32 Core, L476RG ซึ่งเป็นหน้าตาของ Ultra Low Power คุณสามารถดูได้ทางด้านซ้ายของภาพ อุปกรณ์นี้มีพินพินตัวเมียสองอัน แต่ละอันที่แต่ละด้าน ซึ่งไม่มีอะไรมากไปกว่าตัวเชื่อมต่อสำหรับชิลด์อาร์ดิโน นี่มันเยี่ยมไปเลยไม่ใช่เหรอ?
ในความเห็นของฉัน STMicroelectronics ทำสิ่งนี้ในชุดพัฒนาเพราะรู้ว่ามืออาชีพใช้ชิปนี้ บริษัท นี้กำลังมุ่งสู่ Arduino มากขึ้นเรื่อย ๆ และนี่ก็เป็นจริงสำหรับชุดเครื่องมือ STMicroelectronics ระดับมืออาชีพอื่นๆ อีกหลายชุด
สุดท้าย เกี่ยวกับโครงการในวันนี้ เราจะใช้เซ็นเซอร์ DS18b20 สองตัวนอกเหนือจาก L476RG ดังนั้น เราจะทำการแอสเซมบลีอย่างง่ายโดยใช้ L476RG นำเข้าไลบรารีในสภาพแวดล้อม MBED สร้างโปรแกรมในสภาพแวดล้อม MBED และรับข้อมูลจาก L476RG ผ่าน USB / Serial
ฉันได้พูดคุยเล็กน้อยเกี่ยวกับ L476RG ในวิดีโอนี้: THE EASIER WAY TO PROGRAM A MICROCONTROLLER ซึ่งฉันจะแสดงวิธีกำหนดค่าสภาพแวดล้อม MBED ซึ่งออนไลน์อยู่
บางคนที่ติดตามวิดีโอของฉันกำลังถามฉันว่า STM32 มาแทนที่ ESP32 หรือไม่ ฉันพูดอย่างหนึ่ง: มันไม่ได้แทนที่และไม่สามารถทำได้เพราะมันเป็นสองสิ่งที่แตกต่างกันอย่างสิ้นเชิง
ชิป STM32 นี้เป็นไมโครคอนโทรลเลอร์หรือมากกว่า มันไม่ใช่ "คลัสเตอร์ของสิ่งต่างๆ" เช่นเดียวกับ ESP32 ดังนั้นชื่ออาจดูคล้ายกัน แต่ต่างกันโดยสิ้นเชิง STM32 เป็นไมโครคอนโทรลเลอร์สำหรับใช้งานทั่วไป เช่น PIC, Atmel เป็นต้น
ขั้นตอนที่ 1: ทรัพยากรที่ใช้
1 คอร์ L476RG
เซ็นเซอร์ DS18b20 2 ตัว (เราใช้โมดูลกันน้ำทั่วไปในตลาด)
ตัวต้านทาน 1 4k7
มินิโปรโตบอร์ด
จัมเปอร์สำหรับเชื่อมต่อ
ขั้นตอนที่ 2: การประกอบ
เริ่มแรกเราจะดำเนินการประกอบโดยใช้เซ็นเซอร์อุณหภูมิตัวใดตัวหนึ่ง
กำลังของมันจะเป็น 5V
ตัวต้านทาน 4k7 จะใช้เพื่อดึงขึ้นบนสายข้อมูล (1-Wire)
เราจะอ่านข้อมูลโดยใช้พิน A0
ขั้นตอนที่ 3: โปรแกรมใหม่ใน MBED
เมื่อคุณตั้งค่าบัญชีใน MBED และเข้าถึงได้แล้ว เราจะสร้างโปรแกรมใหม่ ในการดำเนินการนี้ ให้คลิกขวาที่ "โปรแกรมของฉัน" และเลือก "โปรแกรมใหม่ …"
ยืนยันว่า "แพลตฟอร์ม" สอดคล้องกับบอร์ดที่คุณใช้
ตอนนี้เราคลิกที่ "แม่แบบ"
เราจะสร้างโปรแกรมตามตัวอย่าง "แสดงข้อความบนพีซีโดยใช้ UART"
ป้อนชื่อโปรแกรมใน "ชื่อโปรแกรม"
เลือกตัวเลือก "อัปเดตโปรแกรมนี้และไลบรารีเป็นเวอร์ชันล่าสุด"
โฟลเดอร์ใหม่สำหรับโปรแกรมของคุณจะถูกสร้างขึ้น รวมถึงไลบรารี MBED เริ่มต้นและไฟล์ main.cpp
คุณสามารถใช้เพื่อทดสอบว่าทุกอย่างทำงานได้ดีหรือไม่ ในการทำเช่นนี้ เพียงรวบรวมและคัดลอกไปยังแพลตฟอร์ม
เมื่อใช้เทอร์มินัลซีเรียลที่คุณเลือก คุณสามารถรับข้อความต่อไปนี้
ขั้นตอนที่ 4: การนำเข้าไลบรารี DS18b20
เนื่องจากมีหลายเวอร์ชันของไลบรารีสำหรับ Ds18b20 เราจะนำเข้าโดยใช้ URL เพื่อให้ตัวอย่างของคุณใช้ไลบรารีเดียวกัน
ขั้นตอนที่ 5: โปรแกรมใหม่ใน MBED
ในช่อง "Source URL" ให้กรอก https://os.mbed.com/users/Sissors/code/DS1820/ แล้วคลิกนำเข้า
ไลบรารี DS1820 ของคุณควรปรากฏในโฟลเดอร์โปรแกรมของคุณ
ขั้นตอนที่ 6: รหัสที่มา
รวมถึง
เราเริ่มต้นด้วยการรวมไลบรารีที่จำเป็น
#include "mbed.h" //inclusão da biblioteca padrão do MBED#include "DS1820.h" //รวมเซ็นเซอร์ DS1820
เรากำหนดค่าคงที่ที่จะเป็นตัวแทนของพินที่ใช้
โปรดทราบว่า DS18b20 เป็นเซ็นเซอร์ที่มีการสื่อสารแบบ 1-WIRE ด้วยเหตุนี้ เราใช้ไลบรารีที่จะจัดการโปรโตคอลการสื่อสารทั้งหมดกับอุปกรณ์ ซึ่งรวมถึงการระบุอุปกรณ์แต่ละเครื่องจนถึงคำสั่งอ่าน
#define PINO_DE_DADOS A0 //define o pino para leitura dos dados#define MAX_SENSORES 16 //define o número máximo para o vetor de เซ็นเซอร์
เราสร้างเวกเตอร์ที่จะชี้ไปที่อุปกรณ์ที่เป็นไปได้ทั้งหมด 16 เครื่องที่เชื่อมต่อกับสายข้อมูล
เซ็นเซอร์ DS1820*[MAX_SENSORES]; //cria um vetor com 16 ตำแหน่งสำหรับ os sensores
เราเริ่มต้นวิธีการหลัก () โดยที่โดยใช้วิธี "unassignedProbe ()" ที่มีอยู่ในไลบรารี DS1820 เรามองหาอุปกรณ์ที่มีอยู่ทั้งหมดในสายการสื่อสาร
เราเติมเวกเตอร์เซ็นเซอร์ ด้วยอินสแตนซ์ที่จะเป็นตัวแทนของเซ็นเซอร์แต่ละตัวที่มีอยู่
เราทำสิ่งนี้จนกว่าจะพบตัวสุดท้ายหรือจนกว่าจะถึงเซ็นเซอร์สูงสุด 16 ตัว
int หลัก () { int encontrados = 0; ในขณะที่ (DS1820::unassignedProbe (PINO_DE_DADOS)) (//inicia a procura por sensores sensor [encontrados] = ใหม่ DS1820 (PINO_DE_DADOS); //cria uma instancia para o เซ็นเซอร์ encontrado encontrados++; if (encontrados == MAX_SENSORES) //verifica se atingiu o máximo de เซ็นเซอร์แตก; }
เราส่งจำนวนเซ็นเซอร์ที่พบในบรรทัด
printf("Dispositivos encontrado(s): %d \r\n\n", encontrados);
เราเริ่มวนซ้ำแบบไม่สิ้นสุด โดยขอให้เซ็นเซอร์ที่มีอยู่ทั้งหมดคำนวณอุณหภูมิตามลำดับ จากนั้นวนซ้ำผ่านเวกเตอร์เซ็นเซอร์โดยส่งการอ่านที่ได้รับ
printf("Dispositivos encontrado(s): %d \r\n\n", encontrados); ในขณะที่(1) { เซ็นเซอร์[0]->แปลงอุณหภูมิ (จริง DS1820::all_devices); //solicita a leitura de temperatura สำหรับ todos os dispositivos encontrados สำหรับ (int i = 0; itemperature()); //… ย้อนรอยอุณหภูมิ printf("\r\n"); รอ(1); }
ขั้นตอนที่ 7: ข้อมูลที่ได้รับ
โดยใช้เซ็นเซอร์ตัวเดียว เราจะได้เอาต์พุตแบบอนุกรมต่อไปนี้
ขั้นตอนที่ 8: รวมเซ็นเซอร์เพิ่มเติม
ในการทดสอบโค้ด เราแนะนำเซ็นเซอร์อีกตัวในสายการสื่อสาร เพียงเชื่อมต่อขนานกับเซ็นเซอร์ตัวแรก
อย่าลืมปิดชุดประกอบก่อนเชื่อมต่อเซ็นเซอร์ใหม่
เมื่อรีสตาร์ทแอสเซมบลี เราได้รับผลลัพธ์ต่อไปนี้ โดยไม่มีการเปลี่ยนแปลงใด ๆ ในซอร์สโค้ด
ขั้นตอนที่ 9: ดูแหล่งที่มา
#include "mbed.h" //inclusão da biblioteca padrão do MBED#include "DS1820.h" //inclusão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 //define o pino para leitura dos dados #define MAX_SENSORES 16 // กำหนด o número máximo para o vetor de sensores DS1820* เซ็นเซอร์[MAX_SENSORES]; //cria um vetor com 16 ตำแหน่งเซ็นเซอร์สำหรับระบบปฏิบัติการ int main () { int encontrados = 0; ในขณะที่ (DS1820::unassignedProbe (PINO_DE_DADOS)) (//inicia a procura por sensores sensor [encontrados] = ใหม่ DS1820 (PINO_DE_DADOS); //cria uma instancia para o เซ็นเซอร์ encontrado encontrados++; if (encontrados == MAX_SENSORES) //verifica se atingiu o máximo de เซ็นเซอร์แตก; } printf("Dispositivos encontrado(s): %d \r\n\n", encontrados); ในขณะที่(1) { เซ็นเซอร์[0]->แปลงอุณหภูมิ (จริง DS1820::all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados สำหรับ (int i = 0; itemperature()); //… ย้อนรอยอุณหภูมิ printf("\r\n"); รอ(1); } }
ขั้นตอนที่ 10: ไฟล์
ไฟล์ PDF
คนอื่น
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง