Ovládanie rýchlosti jednosmerného motora cez bluetooth: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 30: | Riadok 30: | ||
[[Súbor:330r.jpg|400px|thumb|center|330 ohm rezistor.]] | [[Súbor:330r.jpg|400px|thumb|center|330 ohm rezistor.]] | ||
[[Súbor: | [[Súbor:schemazapojenia_galik.jpg|400px|thumb|center|Schéma zapojenia.]] | ||
RX pin z Bluetooth modulu zapojíme na TX na Arduine a TX z Bluetooth modulu na RX na Arduine. Bluetooth modul je napájaný z Arduina, ktoré je v našom prípade napájané cez USB kábel. Na napájanie samotného jednosmerného motora použijeme externý 12 V zdroj, ktorý sme pripojili na tranzistor. Tranzistor ovládame PWM signálmi z Arduina. | RX pin z Bluetooth modulu zapojíme na TX na Arduine a TX z Bluetooth modulu na RX na Arduine. Bluetooth modul je napájaný z Arduina, ktoré je v našom prípade napájané cez USB kábel. Na napájanie samotného jednosmerného motora použijeme externý 12 V zdroj, ktorý sme pripojili na tranzistor. Tranzistor ovládame PWM signálmi z Arduina. | ||
Riadok 74: | Riadok 74: | ||
Na videu je možne vidieť, že po zmene jazdca v aplikácii sa mení rýchlosť otáčok motora. | Na videu je možne vidieť, že po zmene jazdca v aplikácii sa mení rýchlosť otáčok motora. | ||
[[Súbor: | [[Súbor:projekt_galik.jpg|400px|thumb|center|Projekt.]] | ||
'''Video:''' | '''Video:''' |
Verzia z 12:58, 12. máj 2025
Záverečný projekt predmetu MIPS / LS2025 - Samuel Gálik
Zadanie
Ovládanie rýchlosti otáčania jednosmerného motora pomocou Bluetooth aplikácie

Literatúra:
Analýza a opis riešenia
Pomocou aplikácie Bluetooth Electronics budem ovládať otáčky DC motora. Aplikácia komunikuje s Bluetooth modulom HC-05 pomocou grafického rozhrania aplikácie cez jazdca (slider), ktorý pri zmene hodnoty vyšle 5 znakov. V poradí ide najprv znak „*“, ktorý označuje začiatok posielanej informácie, následne 3 číslice, ktoré predstavujú otáčky motora a nakoniec znak „#“, ktorý označuje koniec vysielaných informácií. Nachádzajú sa tam aj dve tlačidlá jedno vyšle znak F, čo znamená zastavenie motora a druhé vyšle znak N, čo znamená nastavenie motora na polovicu maximálnych otáčok. Bluetooth modul má 6 pinov, z ktorých sa použijú 4: RX a TX na komunikáciu s Arduino Uno, VCC na napájanie 5V a GND na pripojenie k zemi. Následne prijatý signál pomocou Arduina spracujeme. Pomocou Timer1 v mikroprocesore ATmega328p vytvorí PWM signál, ktorý následne pošleme cez ochranný rezistor s hodnotou 330 Ohmov na NPN tranzistor. Tento signál umožní ovládať náš jednosmerný motor.





RX pin z Bluetooth modulu zapojíme na TX na Arduine a TX z Bluetooth modulu na RX na Arduine. Bluetooth modul je napájaný z Arduina, ktoré je v našom prípade napájané cez USB kábel. Na napájanie samotného jednosmerného motora použijeme externý 12 V zdroj, ktorý sme pripojili na tranzistor. Tranzistor ovládame PWM signálmi z Arduina.
Algoritmus a program
Na začiatku pridáme knižnice, potom inicializujeme sériovú komunikáciu a časovač Timer1. Potom kód čaká, kým nepríde znak. Po prijatí znaku skontroluje, či sa nejedná o znak „*“. Ak áno, vynuluje premenné a a i, potom vojde do cyklu while, kde začne načítavať ďalšie prichádzajúce znaky. V tomto cykle zostane dovtedy, kým neprečíta tri znaky alebo kým neprečíta znak „#“. Vnútri cyklu program kontroluje, či je znak medzi 0 až 9. Ak áno, priradí ho k správnej cifre v premennej a. Pomocou premennej i vieme priradiť číslo na správnu cifru vzhľadom na to, že máme string nas z hodnotami: 100, 10 a 1. Premenná i teda určuje, ktorú cifru vyberieme. Následne kód prepočíta hodnotu a nastaví ju do OCR1A, čím sa zmení hodnota pre PWM. Nakoniec ešte kód kontroluje, či neprišiel znak „N“ alebo „F“, ktoré buď nastavia motor na polovicu otáčok, alebo ho úplne zastavia.
#include <avr/io.h>
int main(void)
{
unsigned int measuredValue;
while (1)
{
/* relax */
}
return(0);
}
#include <avr/io.h>
void adc_init(void); // A/D converter initialization
unsigned int adc_read(char a_pin);
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: zdrojaky.zip
Overenie
Na videu je možne vidieť, že po zmene jazdca v aplikácii sa mení rýchlosť otáčok motora.

Video:
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.