Агуулгын хүснэгт:

Програмчлахад үнэхээр хялбар !: 10 алхам
Програмчлахад үнэхээр хялбар !: 10 алхам

Видео: Програмчлахад үнэхээр хялбар !: 10 алхам

Видео: Програмчлахад үнэхээр хялбар !: 10 алхам
Видео: 10 привычек, чтобы стать счастливым 2024, Долдугаар сарын
Anonim
Image
Image
Програмчлахад үнэхээр хялбар!
Програмчлахад үнэхээр хялбар!

Өнөөдөр би хэт бага хүч чадлын нүүр царай болох L476RG STM32 Core -ийн талаар ярих болно. Та үүнийг зургийн зүүн талд харж болно. Энэ төхөөрөмж нь хоёр эмэгтэй зүү бариултай бөгөөд хоёр талдаа нэг бөгөөд энэ нь arduino бамбай холбогчоос өөр зүйл биш юм. Энэ бол гайхалтай, тийм үү?

Миний бодлоор STMicroelectronics үүнийг Хөгжлийн иж бүрдэлдээ хийсэн бөгөөд учир нь энэ чипийг мэргэжлийн хүмүүс ашигладаг гэдгийг мэддэг. Энэ компани улам бүр ардуино руу явж байна. Энэ нь STMicroelectronics -ийн бусад мэргэжлийн иж бүрдэлд бас хамаатай.

Эцэст нь хэлэхэд, өнөөдөр төслийн талаар бид L476RG -ээс гадна хоёр DS18b20 мэдрэгчийг ашиглах болно. Тиймээс бид L476RG ашиглан энгийн угсралт хийж, MBED орчинд номын сан оруулж, MBED орчинд програм үүсгэж, USB / Цуваагаар дамжуулан L476RG -аас мэдээлэл авах болно.

Би энэ видеон дээр L476RG -ийн талаар бага зэрэг ярьсан: Микроконтроллерыг програмчлах хамгийн хялбар арга, би онлайнаар байгаа MBED орчныг хэрхэн тохируулахыг харуулсан болно.

Миний видеог дагаж буй зарим хүмүүс STM32 нь ESP32 -ийг орлож байгаа эсэхийг асууж байна. Би нэг зүйлийг хэлье: энэ нь орлуулахгүй бөгөөд чадахгүй, учир нь эдгээр нь огт өөр хоёр зүйл юм.

Энэхүү STM32 чип нь микроконтроллер, эс тэгвээс; Энэ нь ESP32 шиг "зүйлсийн бөөгнөрөл" биш юм. Тиймээс нэр нь ижил төстэй харагдаж магадгүй ч тэд огт өөр юм. STM32 бол жишээ нь PIC, Atmel гэх мэт ерөнхий зориулалттай микроконтроллер юм.

Алхам 1: Ашигласан нөөц

Ашигласан нөөц
Ашигласан нөөц

1 үндсэн L476RG

2 DS18b20 мэдрэгч (бид зах зээл дээр түгээмэл хэрэглэгддэг ус нэвтрүүлдэггүй модулийг ашигладаг)

1 4k7 эсэргүүцэл

Мини хамгаалалтын самбар

Холбох зориулалттай үсрэгч

Алхам 2: угсрах

Чуулган
Чуулган

Бид эхлээд температур мэдрэгчийн аль нэгийг ашиглан угсрах ажлыг хийх болно.

Түүний хүч 5V байх болно.

Мэдээллийн шугам (1-Утас) дээр татахын тулд 4k7 эсэргүүцэл ашиглана.

Бид өгөгдлийг A0 зүү ашиглан унших болно.

Алхам 3: MBED дахь шинэ хөтөлбөр

MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр

Та MBED -д дансаа тохируулаад түүнд нэвтэрсний дараа бид шинэ програм үүсгэх болно. Үүнийг хийхийн тулд "Миний програмууд" дээр хулганы баруун товчийг дараад "Шинэ програм …" -ыг сонгоно уу.

"Платформ" нь таны ашиглаж буй самбартай нийцэж байгаа эсэхийг баталгаажуулна уу.

Одоо бид "Загвар" дээр дарна уу.

Бид "UART ашиглан компьютер дээр мессеж харуулах" жишээн дээр үндэслэн програм үүсгэх болно.

"Програмын нэр" хэсэгт програмын нэрийг оруулна уу.

"Энэ програм болон номын санг хамгийн сүүлийн хувилбар болгон шинэчлэх" сонголтыг шалгана уу.

Анхдагч MBED номын сан болон main.cpp файлыг багтаасан таны програмын шинэ хавтас үүснэ.

Та үүнийг ашиглан бүх зүйл сайн ажиллаж байгаа эсэхийг шалгаж болно. Үүнийг хийхийн тулд ердөө л үүнийг эмхэтгээд платформ дээр хуулна уу.

Сонгосон цуваа терминалыг ашиглан та дараах мессежийг хүлээн авах боломжтой.

Алхам 4: DS18b20 номын санг импортлох

DS18b20 номын санг импортлох
DS18b20 номын санг импортлох

Ds18b20 номын сангийн хэд хэдэн хувилбар байдаг тул бид url ашиглан импортлох бөгөөд ингэснээр таны жишээ ижил номын санг ашиглах болно.

Алхам 5: MBED дахь шинэ хөтөлбөр

MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр
MBED дахь шинэ хөтөлбөр

"Эх сурвалж URL" талбарт https://os.mbed.com/users/Sissors/code/DS1820/ гэж оруулаад импорт хийх дээр дарна уу.

Таны DS1820 номын сан таны програмын хавтсанд харагдах ёстой.

Алхам 6: Эх код

Үүнд багтсан болно

Бид шаардлагатай номын сангуудыг оруулахаас эхлэв.

#"mbed.h" -ийг оруулна уу // inclusão biblioteca padrão do MBED#"DS1820.h" оруулах

Бид ашигласан тээглүүрийг илэрхийлэх тогтмолуудыг тодорхойлдог.

DS18b20 бол 1-WIRE холболттой мэдрэгч гэдгийг анхаарна уу. Ийм учраас бид төхөөрөмжүүдтэй харилцах бүх протоколыг зохицуулах номын санг ашигладаг. Үүнд унших командыг хүртэл төхөөрөмж бүрийг тодорхойлох шаардлагатай.

#PINO_DE_DADOS A0 -ийг тодорхойлно уу // тодорхойлно уу MAX_SENSORES 16 // тодорхойлох o número máximo para o vetor de sensors

Бид өгөгдлийн шугамд холбогдсон 16 боломжит төхөөрөмж тус бүрийг зааж өгөх вектор үүсгэдэг.

DS1820* мэдрэгч [MAX_SENSORES]; // cria um vetor com 16 posichões para os sensores

Бид DS1820 номын санд агуулагдах "unassignedProbe ()" аргыг ашиглан харилцаа холбооны шугамаас боломжтой бүх төхөөрөмжийг хайж олох үндсэн () аргыг эхлүүлдэг.

Бид мэдрэгчийн векторыг боломжтой мэдрэгч тус бүрийг төлөөлөх тохиолдлуудаар дүүргэдэг.

Бид үүнийг сүүлчийнх нь олдох хүртэл эсвэл дээд тал нь 16 мэдрэгч хүрэх хүртэл хийдэг.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// in sensia sensors sensors [encontrados] = шинэ DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; хэрэв (encontrados == MAX_SENSORES) // мэдрэх чадвар эвдэрвэл; }

Бид шугам дээрээс олсон мэдрэгчийн тоог илгээдэг.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados);

Бид хязгааргүй хүрдийг эхлүүлж, байгаа бүх мэдрэгчийг температураа тооцоолохыг хүсч, дараа нь олж авсан уншилтыг илгээх замаар мэдрэгчийн вектороор дамжуулна.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (үнэн, DS1820:: all_devices); // (int i = 0; itemperature ()) -д зориулагдсан. //… e retorna a temperatura printf ("\ r / n"); хүлээх (1); }

Алхам 7: Өгөгдөл хүлээн авсан

Өгөгдөл хүлээн авсан
Өгөгдөл хүлээн авсан

Нэг мэдрэгч ашиглан бид дараах цуваа гаралтыг олж авна.

Алхам 8: Илүү олон мэдрэгчийг багтаасан болно

Илүү олон мэдрэгчийг багтаасан болно
Илүү олон мэдрэгчийг багтаасан болно
Илүү олон мэдрэгчийг багтаасан болно
Илүү олон мэдрэгчийг багтаасан болно

Кодыг шалгахын тулд бид харилцаа холбооны шугамд өөр нэг мэдрэгчийг нэвтрүүлж, эхний мэдрэгчтэй зэрэгцүүлэн холбоно.

Шинэ мэдрэгчийг холбохын өмнө угсралтыг унтраахаа мартуузай.

Ассемблейг дахин эхлүүлэхдээ бид эх кодыг өөрчлөхгүйгээр дараах гаралтыг авсан.

Алхам 9: Эх сурвалжийг үзэх

#"mbed.h" -ийг оруулна уу // MBED -ийг оруулна уу "DS1820.h" -ийг оруулна уу // inclusão da biblioteca do мэдрэгч DS1820 #PINO_DE_DADOS A0 -ийг тодорхойлно уу // тодорхойлно MAX_SENSORES 16 // тодорхойлох DS1820* мэдрэгч бүхий мэдрэгч [MAX_SENSORES]; // cria um vetor com 16 posichões para os sensores int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a sensors sensor sensors [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; хэрэв (encontrados == MAX_SENSORES) // мэдрэх чадвар эвдэрвэл; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (үнэн, DS1820:: all_devices); // intit = a; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); хүлээх (1); }}

Алхам 10: Файлууд

PDF

Бусад

Зөвлөмж болгож буй: