Мазмуну:

Программага укмуш оңой !: 10 кадам
Программага укмуш оңой !: 10 кадам

Video: Программага укмуш оңой !: 10 кадам

Video: Программага укмуш оңой !: 10 кадам
Video: Топ 5 скрытых полезных программ Windows 10 2024, Ноябрь
Anonim
Image
Image
Программага таң калыштуу оңой!
Программага таң калыштуу оңой!

Бүгүн мен 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де жаңы программа
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" кошуу // 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 -кадам: Файлдар

PDF

Башкалар

Сунушталууда: