Pelajaran Teach
STM32 dengan API Arduino (1/4): jadikan LED pertama berkelip
Pelajar menggunakan STM32 CodeIDE dan API Arduino untuk menulis setup() dan loop(), membuat keluaran sebenar berkelip serta merekod bukti kompilasi dan muat naik.
Log masuk dengan akaun pendidik untuk menyediakan sesi kelas. Pelajar menyertai dengan kod kelas.
Kali pertama menggunakan LabsLand? Cipta akaun guru anda
Hasil pembelajaran
Menulis atur cara Arduino minimum untuk papan STM32.
Membezakan kod yang menyediakan papan daripada kod yang berulang.
Merekod bukti yang boleh diperhatikan daripada keluaran digital sebenar.
Pratonton aktiviti pelajar
Kandungan aktiviti
Pratonton sahaja. Dalam sesi kelas, pelajar boleh mengisi jawapan dan menyerahkan hasil kerja mereka kepada guru.
Sebelum membuka makmal
8 min
Mikropengawal tidak “memahami” ayat; ia melaksanakan arahan. Hari ini kita hanya memerlukan satu keluaran digital, satu LED dan dua tempoh menunggu.
Dalam lakaran Arduino:
setup()berjalan sekali dan menyediakan papan.loop()berulang semasa papan dikuasakan.pinMode(pin, OUTPUT)menetapkan pin sebagai keluaran.digitalWrite(pin, HIGH)menetapkan keluaran tinggi;LOWmematikannya.
Kitaran utama akan mempunyai bentuk ini:
digitalWrite(BLUE_LED, HIGH);
delay(1000);
digitalWrite(BLUE_LED, LOW);
delay(1000);Jika LED hidup selama 1000 ms dan mati selama 1000 ms di dalam loop(), apakah corak yang sepatutnya berulang?
Cipta dan uji kelipan
24 min
Foto ini membantu anda mengenali papan STM32 Nucleo WB55RG. Foto menunjukkan papan sahaja; dalam makmal jarak jauh, papan itu menjadi sebahagian daripada susunan prawayar dengan LED dan komponen lain yang telah disambungkan. Anda tidak perlu menyambungkan sebarang wayar: gunakan LED yang sudah tersedia dalam susunan tersebut.
Foto rujukan papan STM32 Nucleo WB55RG. Di makmal jarak jauh, papan menjadi sebahagian daripada susunan prawayar; dalam sesi pertama ini, anda akan memprogramkannya sebagai papan berasaskan Arduino dengan kod teks: tulis, kompil, muat naik dan perhatikan.
Lancarkan makmal dari blok ini. Dalam CodeIDE, pilih tab editor
main.ino.Gantikan kandungannya dengan atur cara pemula di bawah.
Gantikan TODO 1 hingga 4. Setiap komen menerangkan jenis kod yang diperlukan tanpa memberikan tokennya. Cari
TODOdalammain.ino; tiada TODO boleh tertinggal sebelum kompilasi.Simpan
main.ino, pilih Compile dan tunggu mesej bahawa kompilasi berjaya. Compile menyemak dan menterjemahkan kod; langkah ini belum mengubah papan sebenar.Selepas kompilasi berjaya, pilih Upload dan tunggu sehingga muat naik berjaya. Upload memasang versi yang telah dikompil pada papan.
Perhatikan LED biru selama sekurang-kurangnya tiga kitaran hidup dan mati yang lengkap. Rekod tingkah laku awal tanpa perubahan ini dalam baris 1.
Tukar hanya
BLINK_MSkepada selang yang kelihatan berbeza daripada250 mskepada2000 ms. Simpan, kompil, muat naik, perhatikan tiga kitaran dan rekod baris 2.
#include <Arduino.h>
const int BLUE_LED = PB5;
const int BLINK_MS = TODO_BLINK_INTERVAL; // TODO 1: selang satu saat, dalam ms
void setup() {
pinMode(BLUE_LED, TODO_LED_DIRECTION); // TODO 2: mod yang membolehkan pin memacu LED
}
void loop() {
digitalWrite(BLUE_LED, TODO_LED_ON_LEVEL); // TODO 3: aras untuk menghidupkan LED
delay(BLINK_MS);
digitalWrite(BLUE_LED, TODO_LED_OFF_LEVEL); // TODO 4: aras bertentangan untuk mematikan LED
delay(BLINK_MS);
}
Isi jadual selepas menguji atur cara pada papan. Gunakan dua baris sahaja dan biarkan baris lain kosong jika TEACH memaparkan lebih banyak:
- Baris 1: versi awal yang lengkap dengan selang
1000 ms. - Baris 2: versi ubah suai anda.
- Dalam Corak yang diperhatikan, tulis perkara yang anda lihat pada papan sebenar.
- Dalam Pelarasan atau masalah, tulis
tiadajika atur cara berfungsi; jika tidak, nyatakan perkara yang akan anda semak.
| Versi diuji | Tempoh menunggu (ms) | Corak yang diperhatikan | Adakah ia sepadan dengan ramalan? | Pelarasan atau masalah |
|---|---|---|---|---|
Terangkan bukti nyata bahawa atur cara anda berjalan pada papan sebenar. Namakan keluaran, berikan kedua-dua nilai delay dalam ms dan bandingkan sekurang-kurangnya tiga kitaran awal dengan tiga kitaran selepas perubahan.
Hantar kod anda
8 min
Sebelum menyerahkan, biarkan kod akhir disimpan dalam main.ino. Guru anda sepatutnya dapat melihat pin yang anda gunakan, pinMode, dua panggilan digitalWrite dan nilai delay yang anda uji. Cari sekali lagi untuk TODO; fail yang diserahkan tidak boleh mengandungi satu pun.
Serahkan main.ino akhir anda
Simpan main.ino sebelum melampirkannya. Tangkapan itu mesti menunjukkan atur cara akhir yang anda kompil, muat naik ke papan dan mahu guru semak.
Tiket keluar
10 min
Terangkan perbezaan antara setup() dengan loop() menggunakan atur cara kelipan anda sebagai contoh. Jelaskan juga sebab hanya satu perkara patut diubah pada satu masa semasa menyahpepijat.
Jadikan pratonton ini satu sesi kelas sebenar
Teruskan ke LabsLand Teach untuk menggunakan pelajaran ini bersama pelajar dan menyemak akses akaun anda.
Kali pertama menggunakan LabsLand? Cipta akaun guru anda