Мазмуну:
- 1 -кадам: Колдонулган ресурстар
- 2 -кадам: Ассамблея
- 3 -кадам: MBEDде жаңы программа
- 4 -кадам: DS18b20 китепканасын импорттоо
- 5 -кадам: MBEDде жаңы программа
- 6 -кадам: Булак коду
- 7 -кадам: Маалыматтар алынды
- 8 -кадам: Дагы сенсорлорду камтыйт
- 9 -кадам: Булакты көрүү
- 10 -кадам: Файлдар
Video: Программага укмуш оңой !: 10 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бүгүн мен STM32 Core, L476RG, Ultra Low Powerдин жүзү жөнүндө сүйлөшөм. Сиз муну сүрөттүн сол жагында көрө аласыз. Бул түзмөктө ар бир тарапта эки ургаачы пин барлар бар, алар ардуино калканы үчүн туташтыргычтардан башка эч нерсе эмес. Бул сонун, туурабы?
Менин оюмча, STMicroelectronics муну өзүнүн өнүктүрүү комплектинде жасады, анткени ал адистер бул чипти колдонорун билет. Бул компания барган сайын ардуиного карай баратат. Бул дагы бир нече башка кесиптик STMicroelectronics комплекттерине тиешелүү.
Акырында, бүгүн долбоорго байланыштуу, биз L476RGден тышкары эки DS18b20 сенсорун колдонобуз. Ошентип, биз L476RGди колдонуп, жөнөкөй жыйын курабыз, китепкананы MBED чөйрөсүнө импорттойбуз, MBED чөйрөсүндө программа түзөбүз жана L476RGден USB / Serial аркылуу маалыматтарды алабыз.
Мен бул видеодо L476RG жөнүндө бир аз сүйлөштүм: Микроконтроллерди ПРОГРАММАЛООНУН ОҢОЙ ЖОЛУ, анда мен онлайнда MBED чөйрөсүн кантип конфигурациялоону көрсөтөм.
Менин видеолорумду ээрчиген кээ бир адамдар менден STM32 ESP32нин ордуна келет деп сурашат. Мен бир нерсени айтам: ал алмаштырбайт жана алмаштыра албайт, анткени алар эки башка нерсе.
Бул STM32 чипи микроконтроллер, тагыраагы; бул ESP32 сыяктуу "нерселердин кластери" эмес. Ошентип, аты окшош болушу мүмкүн, бирок алар такыр башка. STM32, мисалы, PIC, Atmel сыяктуу жалпы максаттагы микроконтроллер.
1 -кадам: Колдонулган ресурстар
1 Core L476RG
2 DS18b20 сенсорлор (биз рынокто жалпы суу өткөрбөй турган модулдарды колдонобуз)
1 4k7 каршылыгы
Мини протокол
Байланыш үчүн секиргичтер
2 -кадам: Ассамблея
Биз башында монтажды температура сенсорлорунун бири аркылуу жүргүзөбүз.
Анын күчү 5В болот.
Маалымат линиясында тартуу үчүн 4k7 каршылыгы колдонулат (1-зым).
Биз маалыматтарды A0 пин аркылуу окуйбуз.
3 -кадам: MBEDде жаңы программа
Сиз MBEDде каттоо эсебиңизди орнотуп, ага киргенден кийин, биз жаңы программа түзөбүз. Бул үчүн, "Менин программаларым" дегенди оң баскыч менен чыкылдатып, "Жаңы программа …" тандаңыз.
"Платформа" сиз колдонгон тактага туура келерин ырастаңыз.
Азыр биз "Калыпты" чыкылдатып жатабыз.
Биз "UART аркылуу билдирүүнү компьютерде көрсөтүү" мисалынын негизинде программа түзөбүз.
Программанын атын "Программанын атына" киргизиңиз.
"Бул программаны жана китепканаларды акыркы версияга жаңыртуу" опциясын текшериңиз.
Программаңыз үчүн жаңы папка түзүлөт, анын ичинде демейки MBED китепканасы жана main.cpp файлы.
Сиз баары жакшы иштеп жатканын текшерүү үчүн колдоно аласыз. Бул үчүн, аны түзүп, платформага көчүрүү керек.
Сиз тандаган сериялык терминалды колдонуп, сиз төмөнкү билдирүүлөрдү ала аласыз.
4 -кадам: DS18b20 китепканасын импорттоо
Ds18b20 үчүн китепканалардын бир нече версиялары бар болгондуктан, биз сиздин мисал ошол эле китепкананы колдонушу үчүн url аркылуу импорттойбуз.
5 -кадам: MBEDде жаңы программа
"Булак URL" талаасында толтуруңуз: https://os.mbed.com/users/Sissors/code/DS1820/ жана импорттоону чыкылдатыңыз.
Сиздин DS1820 китепкана программаңыздын папкасында көрүнүшү керек.
6 -кадам: Булак коду
Камтыйт
Биз керектүү китепканаларды кошуудан баштадык.
#"mbed.h" кошуу // MBED менен китепканага#киргизүү "DS1820.h" // inclusão да библиотека DS1820
Биз колдонулган казыктарды чагылдыра турган константаларды аныктайбыз.
Белгилей кетсек, DS18b20-1-WIRE байланышы бар сенсор. Ушул себептен улам, биз түзмөктөр менен баардык байланыш протоколун иштете турган китепкананы колдонобуз. Бул окуу буйруктарына чейин ар бир түзмөктү аныктоону камтыйт.
#аныктоо PINO_DE_DADOS A0 // аны аныктоо MAX_SENSORES 16 аныктоо // сенсорлорду аныктоо
Биз маалымат линиясына туташкан 16 мүмкүн болгон түзмөктүн ар бирин көрсөтө турган вектор түзөбүз.
DS1820* сенсор [MAX_SENSORES]; // сенсордук түйүндөр үчүн 16 функция
Биз main () ыкмасын баштайбыз, мында DS1820 китепканасында камтылган "unassignedProbe ()" ыкмасын колдонуу менен байланыш линиясында болгон бардык түзмөктөрдү издейбиз.
Биз сенсор векторун жеткиликтүү сенсорлордун ар бирин көрсөтүүчү мисалдар менен толтурабыз.
Биз муну акыркысы табылганга чейин же максимум 16 сенсорго жеткенче жасайбыз.
int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// in sensia sensors sensors sensors [encontrados] = new DS1820 (PINO_DE_DADOS); // сенсор encontrados 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 (true, DS1820:: all_devices); // (int i = 0; itemperature ()) encontrados үчүн темпратура менен тематика талап кылынат; //… printf a temperatura printf ("\ r / n"); күтүү (1); }
7 -кадам: Маалыматтар алынды
Бир сенсордун жардамы менен биз төмөнкү сериялык чыгууну алабыз.
8 -кадам: Дагы сенсорлорду камтыйт
Кодду текшерүү үчүн, байланыш линиясына башка сенсорду киргизебиз, жөн гана аны биринчи сенсорго параллель туташтыруу менен.
Жаңы сенсорлорду туташтыруудан мурун куралды өчүрүүнү унутпаңыз.
Жыйынды кайра баштоодо, биз баштапкы коддо эч кандай өзгөрүүсүз, төмөнкү продукцияны алдык.
9 -кадам: Булакты көрүү
#"mbed.h" кошуу // MBED менен #biblioteca padrão do MBED #камтуу "DS1820.h" // inclusão да библиотека DS1820 #PINO_DE_DADOS A0 аныктоо // аныктоо MAX_SENSORES 16 аныктоо // аныктоо сенсорлор DS1820* сенсорлору үчүн [MAX_SENSORES]; // cria um vetor com 16 posichões int sensors int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// in sensia sensors sensors sensors [encontrados] = new DS1820 (PINO_DE_DADOS); // сенсор encontrado encontrados ++; эгерде (encontrados == MAX_SENSORES) // сенсорлор бузулса; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (true, DS1820:: all_devices); // (int i = 0; itemperature ()) encontrados үчүн темпратуранын шарттарын түзүү; //… printf a temperatura printf ("\ r / n"); күтүү (1); }}
10 -кадам: Файлдар
Башкалар
Сунушталууда:
Укмуш аналогдук синтезатор/орган дискреттик компоненттерди колдонуу менен: 10 кадам (сүрөттөр менен)
Укмуш аналогдук синтезатор/Орган гана дискреттик компоненттерди колдонуу менен: Аналогдук синтезаторлор абдан сонун, бирок жасалышы да абдан кыйын, ошондуктан мен аны жөнөкөй эле кылып жасагым келди, андыктан анын иштеши оңой эле түшүнүктүү болушу мүмкүн. бир нече негизги чакан схемаларга муктаж: резисти бар жөнөкөй осциллятор
Укмуш чырак: 5 кадам (сүрөттөр менен)
ЭҢ СҮЙҮКТҮҮ ЛАМП: Түстөр менен эмоциялар ажырагыс. Түстөр маанай атмосферасын түзүүдө абдан маанилүү роль ойнойт. Бул бизди кубантууга же кайгыртууга, көңүлүбүздү чөгөрүүгө же эс алдырууга, көңүлүбүздү бурууга же алагды кылышыбыз мүмкүн. Күнүңүздү жагымдуу кылуу үчүн туура түстү коюу гана жетиштүү
Укмуш мектеп шпион гаджети! Invisible Ink Pen Hack: 6 кадам
Укмуш мектеп шпион гаджети! Invisible Ink Pen Hack: Бул укмуштуу хак менен сиз кимдир бирөөгө жашыруун билдирүүлөрдү жөнөтө аласыз же класс тесттеринде алдайсыз
Программага негизделген айлануучу күн плиталары: 9 кадам
Программага негизделген айлануучу күн плиталары: Калктын саны жана муктаждыгына жараша, биз азыраак чыгымдарды көбүрөөк өндүрүүнү талап кылабыз. Биз программага негизделген айлануучу күн плитасын сунуштадык. Ал ар дайым күн нурунун интенсивдүүлүгүнүн багытында иштейт. Бул сынакта биз өзгөчө түрдү сунуштадык
DIY MusiLED, Windows менен Linuxтун бир чыкылдатуусу менен музыканын синхрондуу LEDлери (32-бит жана 64-бит). Оңой жаратуу, колдонууга оңой, портко оңой: 3 кадам
DIY MusiLED, Windows менен Linuxтун бир чыкылдатуусу менен музыканын синхрондуу LEDлери (32-бит жана 64-бит). Оңой жаратуу, колдонууга оңой, портко оңой .: Бул долбоор сизге 18 LED (6 Кызыл + 6 Көк + 6 Сары) Arduino тактасына туташтырууга жана компьютериңиздин Үн картасынын реалдуу убакыт сигналдарын талдоого жана аларды өткөрүүгө жардам берет. Светодиоддор аларды эффекттерге жараша күйгүзүшөт (Snare, High Hat, Kick)