Мазмұны:

Бағдарламалау өте оңай!: 10 қадам
Бағдарламалау өте оңай!: 10 қадам

Бейне: Бағдарламалау өте оңай!: 10 қадам

Бейне: Бағдарламалау өте оңай!: 10 қадам
Бейне: Басқа тышты деген осы 😡 2024, Қараша
Anonim
Image
Image
Бағдарламалаудың керемет оңай!
Бағдарламалаудың керемет оңай!

Бүгін мен STM32 Core, L476RG туралы айтатын боламын, бұл Ultra Low Power. Сіз оны суреттің сол жағында көре аласыз. Бұл құрылғыда ардуино қалқанының қосқыштарынан басқа ештеңе жоқ, екі жағында бір әйел штырь бар. Бұл керемет, иә?

Менің ойымша, STMicroelectronics мұны өзінің даму жинағында жасады, себебі ол бұл чипті кәсіпқойлар біледі. Бұл компания ардуиноға көбірек барады. Бұл басқа STMicroelectronics кәсіби жинақтарына да қатысты.

Ақырында, бүгін жобаға қатысты біз L476RG -ге қосымша екі DS18b20 сенсорын қолданамыз. Сонымен, біз L476RG көмегімен қарапайым құрастыруды жасаймыз, кітапхананы MBED ортасына импорттаймыз, MBED ортасында бағдарлама құрамыз және USB / Serial арқылы L476RG деректерін аламыз.

Мен бұл видеода L476RG туралы аз ғана айттым: МИКРОКОНТРОЛЛЕРДІ БАҒДАРЛАУДЫҢ ОҢАЙ ЖОЛЫ, онда мен желіде MBED ортасын қалай баптау керектігін көрсетемін.

Менің бейнелерімді қадағалайтын кейбір адамдар STM32 ESP32 ауыстырады ма деп сұрайды. Мен бір нәрсені айтамын: ол алмастырмайды және алмастыра алмайды, өйткені олар екі түрлі нәрсе.

Бұл STM32 чипі микроконтроллер, дәлірек айтқанда; бұл ESP32 сияқты «заттардың жиынтығы» емес. Атау ұқсас болуы мүмкін, бірақ олар мүлдем басқа. STM32 - бұл жалпы мақсаттағы микроконтроллер, мысалы, PIC, Atmel.

1 -қадам: Қолданылған ресурстар

Қолданылған ресурстар
Қолданылған ресурстар

1 ядролы L476RG

2 DS18b20 сенсоры (біз нарықта су өткізбейтін жалпы модульдерді қолданамыз)

1 4k7 резистор

Шағын протон тақтасы

Қосылу үшін секіргіштер

2 -қадам: құрастыру

Ассамблея
Ассамблея

Біз бастапқыда температура сенсорларының бірін қолдана отырып құрастыруды жүргіземіз.

Оның қуаты 5 В болады.

Деректер желісінде (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» қосу // bblioteca padrão to 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)) {// сенсор сенсоры [encontrados] = жаңа DS1820 (PINO_DE_DADOS); // сенсор 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 (true, DS1820:: all_devices); // intontrados (int i = 0; itemperature ()) үшін, температура мен температура талап етіледі; //… printat a temperatura printf («\ r / n»); күту (1); }

7 -қадам: Деректер алынды

Деректер алынды
Деректер алынды

Бір сенсордың көмегімен біз келесі сериялық шығуды аламыз.

8 -қадам: Қосымша сенсорлар

Қосымша сенсорлар
Қосымша сенсорлар
Қосымша сенсорлар
Қосымша сенсорлар

Кодты тексеру үшін біз байланыс желісіне басқа сенсорды енгіземіз, оны бірінші сенсорға параллель қосу арқылы.

Жаңа датчиктерді қосар алдында қондырғыны өшіруді ұмытпаңыз.

Жинақты қайта іске қосқанда, біз бастапқы кодты өзгертпестен келесі шығымды алдық.

9 -қадам: Дереккөзді қарау

#«mbed.h» қосу // bblioteca padrão to MBED #include «DS1820.h» // inclusão da biblioteca do sensor DS1820 #PINO_DE_DADOS A0 анықтаңыз // MAX_SENSORES 16 анықтаңыз DS1820* датчиктерінің датчиктері [MAX_SENSORES]; // main main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// сенсор сенсоры [encontrados] = жаңа 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); // intontrados (int i = 0; itemperature ()) үшін, температура мен температура талап етіледі; //… printat a temperatura printf («\ r / n»); күту (1); }}

10 -қадам: файлдар

PDF

Басқалар

Ұсынылған: