Bagian 3. Firmware, konfigurasi dan algoritma kerja
Dalam arsip proyek, saya mengumpulkan firmware yang sudah jadi, perpustakaan yang digunakan, serta artikel dengan proyek asli (sayangnya, saat ini tidak tersedia secara online). Selain itu, ada juga pemindai bus I2C (jika modul jam atau sensor cahaya akan menggunakan alamat non-standar).
Perhatian
Perhatian! Perpustakaan "MicroLED", yang ditulis oleh AlexGyver, telah menerima pembaruan (pada saat artikel ini ditulis - hingga versi 3). Namun, versi yang diperbarui merusak firmware, karena algoritme untuk menentukan warna pita telah diubah.
Versi yang diperbarui menambahkan fungsi yang tidak digunakan dalam proyek ini, dan Anda tidak dapat memperbarui perpustakaan tanpa menulis ulang kode.
Sebelum melakukan flashing, saya sarankan untuk mengatur modul bluetooth, yaitu mengatur nama dan kata sandi, dan juga memeriksa kecepatan baud port.
Anda dapat membiarkan pengaturan default (kata sandi 1234 atau 0000), namanya juga akan menjadi default.
Saat mengerjakan ini dan proyek lainnya, saya mendapatkan dua modul bluetooth (yang, tentu saja, dibeli dari teman-teman Asia kami), model yang tidak mungkin dibuat. Selain itu, mereka ada di tangan saya pada waktu yang berbeda, dan saya tidak dapat membandingkan penampilan mereka. Namun, pengaturan spesifik mereka berbeda (saya yakin mereka adalah HC-05 dan HC-06).
Jadi, pertama-tama Anda perlu menghubungkan modul bluetooth dan arduino sebagai berikut:
Arduino |
Bluetooth |
Pin 2 |
TX |
Pin 3 |
RX |
5V |
VCC |
GND |
GND |
Dalam beberapa artikel, ada skema koneksi dengan resistor, tetapi semua ini tidak berguna. Modul ini dikonfigurasi oleh perintah AT melalui sketsa yang ditentukan.
Selanjutnya, isi sketsa "BluetoothAT" dari arsip ke arduino, buka monitor port, atur pengaturan pengembalian kereta "CR&NL" dan masukkan berikut ini:
AT+BAUD4 ( 9600 (, )
AT - "". ,
:
|
AT+NAME |
AT+NAME? |
|
AT+PSWD |
AT+PSWD? |
|
AT+NAME= |
AT+NAMEname |
|
AT+PSWD:"9999" |
AT+PINpass |
arduino bluetooth RX TX.
! bluetooth RX TX . !
, . ( ), .
"Serial Bluetooth Terminal". , "" .
"Send" "Newline" "CR" ( ). - .
, , , :
;
;
;
.
, - .
# "functions", "LedColor()"
if (time.Hours == 13 && time.weekday != 0 && time.weekday != 6) { //
ledColor = GREEN;
}
else if (time.Hours == 12 && time.minutes >= 40 ) { //
ledColor = LIME;
}
, 13:00 14:00. ( ). , 20 , .
- .
else if (time.weekday != 5 && (time.Hours == (endWorkHours - 1) && time.minutes >= endWorkMinutes) || time.Hours == endWorkHours && time.minutes < endWorkMinutes) {
ledColor = OLIVE; // ( )
}
( - ).
"startWorkHours" "endWorkHours" EEPROM ( ) ( Bluetooth).
, ( ) - , - , - .
info
- .
setdate
- . . - 5 . , , , ( = 0, = 1...).
settime
- . , , - 5 . , .
demo
- ( ).
check
- . ,
setworktimes
- ( ) . - 5 . , ( ). 1 .
setbright
- . , . . 5.
. , , .
( 29 31 ) , 10 .
.
:
- , ;
- , . 210 ( - 256).
- , - , 30 ( max_bright
).
, . , , , .
Sebagai kesimpulan, saya ingin menambahkan bahwa saya tidak berpura-pura cantik atau benar mutlak dalam menulis kode: siapa pun dapat memodifikasinya atas kebijaksanaan mereka sendiri.
Cukup bagi saya bahwa jam bekerja tanpa macet, mengubah kecerahan dan warna tanpa macet (insiden terjadi di versi firmware sebelumnya, dan fungsinya ditulis ulang dari awal).
Batasan saat ini, gangguan, dan bahkan penghematan energi - semua ini, tentu saja, dapat diterapkan, hanya satu pertanyaan yang harus diajukan: mengapa semua ini ada dalam proyek khusus ini?
Itu hanya jam tangan.