Programowanie serwomotoru za pomocą Arduino Nie jest to trudne zadanie, jeśli dokładnie przeczytasz wszystkie akapity tego artykułu. Pokażemy Ci jak tworzyć skomplikowane projekty żadnego błędu.
Musisz wiedzieć, czym jest serwomotor i do czego służą te elementy sprzętowe. ten Wyjaśnimy również zastosowanie tych urządzeń i sposób programowania serwomotoru Arduino ten
Ale to nie wszystko, co zobaczysz Możesz również znaleźć najlepsze projekty Arduino z serwomotorem, który możesz ćwiczyć szybko i łatwo. Sprawdzić.
Co to jest serwomotor i do czego służą te elementy rozwoju sprzętu?
Organizacja Narodów Zjednoczonych Uruchamiacz to specjalny typ silnika charakteryzujący się precyzyjnymi ruchami w określonym czasie Para. Jego główną funkcją jest utrzymanie pozycji wału podczas pracy robota.
Składa się z plastikowej obudowy to zawiera stół arduino w którym silnik prądu stałego, Organizacja Narodów Zjednoczonych potencjometr oraz system transmisji ten Możesz znaleźć 2 rodzaje serwomotorów. Są takie z ograniczonym obrotem, które mogą obracać się do 180° oraz serwomotory z pełnym lub ciągłym obrotem. Mogą mieć pełny obrót o 360 °.
Zastosowania serwomotorów W jakich typach urządzeń możemy je wykorzystać?
NS’ wykorzystanie serwomotoru jest bardzo duże ze względu na główną funkcję, jaką oferuje w robotyce, tj. obracanie części na tej samej osi.
Dlatego często można znaleźć serwomotor w:
- Wewnątrz samochody sterowane radiowo różne rodzaje zabawek oraz w robotach dziecięcych.
- Radar są mieszane w różne przedmioty.
- WL ’ automatyzacja procesów produkcyjnych, ten Roboty te są szczególnie zaangażowane w montaż, budowę samochodów i innych rodzajów produkcji przemysłowej na skalę przemysłową.
- Odciski palców są niezbędne do tworzenia ekranów serwomotory można również znaleźć na winda ten
- W informatyce często można spotkać serwomotor Odtwarzacze DVD ten
Dowiedz się, jak krok po kroku zaprogramować serwomotor Arduino do swoich projektów od podstaw
Jeśli chcesz zaprogramować serwomotor za pomocą Arduino, musisz wykonać poniższe czynności:
Połącz wszystkie naturalne składniki
Pierwszym krokiem, który musisz zrobić, jest: zmontuj wszystkie komponenty na panelu Arduino ten Aby to zrobić, będziesz musiał podłączyć do makiety trzy rodzaje kabli, jeden do masy, drugi do zasilacza 5V i ostatni do pinu PWM. Po prostu to zrób podłączyłem ten obwód, musi włącz serwomotor a jeśli chcesz możesz dodać rezystory.
Zaplanuj prędkość obrotową silnika
To, co musisz teraz zrobić, to iść do IDE Arduino i napisz następujące polecenia, aby obrócić silnik pod trzema rodzajami kątów.
Kody to:
#zawierać Serwosilnik; pusta konfiguracja () { początek (9600); krawat (9); } pusta pętla () {
Teraz musisz skonfigurować ruch na 0º, w tym celu musisz wprowadzić:
napisz (0); opóźnienie (1000); To samo będziesz musiał zrobić z pozycją 90 ° i pozycją 180 °: napisz (90); opóźnienie (1000); napisz (180); opóźnienie (1000); }
Obracaj silnik krok po kroku
W tym kroku powinieneś aktywuj ruchy aby siłownik mógł przetrzyj wszystkie stopnie od 0 do 180 ten
Aby to zrobić, musisz wpisać:
#zawierać Serwosilnik; pusta konfiguracja () {
Następnie musisz uruchomić wyświetlacz szeregowy:
początek (9600);
Następnie należy zaprogramować siłownik od początku za pomocą pinu 9:
krawat (9); napisz (0); }
Twórz pętle
W tym momencie będziesz musiał stworzyć 2 pętle, jedną negatywną i jedną pozytywną:
pusta pętla () { for (int i = 0; i <= 180; i ++) {
Następnie przejdź pod odpowiednim kątem:
pisać (i); opóźnienie (25); }
AKTUALIZACJA Czy chcesz wykorzystać Arduino do zaprogramowania serwonapędu i wykorzystać go w swoich projektach? ⭐ ODWIEDŹ TUTAJ ⭐ i ucz się wszystkiego od początku! »
Powinieneś zrobić to samo dla kierunku ujemnego:
dla (int i = 179; i> 0; i--) { pisać (i); opóźnienie (25); } }
Najlepsze projekty Arduino Servo Motor, które możesz wykonać samodzielnie
Jeśli chcesz przećwiczyć pracę z serwomotorem na panelu Arduino, musisz wziąć pod uwagę następujące zadania:
Kosz na śmieci z czujnikiem ruchu
Ta praca pozwoli Ci otworzyć kosz dzięki czujnikowi ruchu. Będziesz potrzebować panelu Micro Arduino , Ogólny czujnik ultradźwiękowy typu HC-SR04, serwomotor i kosz na śmieci.
Będziesz musiał wprowadzić te kody do programowania:
#zawierać Serwo myservo; const int servo_pin = 2; const int trig_pin = 3; const int echo_pin = 4; const int inter_time = 200; czas int = 0; pusty parametr () { Seryjny. początek (9600); mój serwo. dołącz (servo_pin, 500, 2400); mój serwo. napisz (90); pinMode (trig_pin, OUTPUT); pinMode (echo_pin, INPUT); opóźnienie (3000); } pusta pętla () { czas pływania, odległość; digitalWrite (trig_pin, HIGH); opóźnienieMikrosekund (1000); digitalWrite (trig_pin, LOW); czas trwania = pulseIn (echo_pin, HIGH); odległość = (czas trwania / 2) / 29; Seryjny. druk (odległość); Seryjny. println ("cm"); czas = czas + inter_czas; opóźnienie (inter_time); jeśli (odległość <10) { dla (int i = 1500; i> = 1100; i- = 25) { zapisMikrosekund (i); println ("2"); opóźnienie (100); } opóźnienie (1000); dla (int i = 1100; i <= 1500; i + = 25) { mój serwo. zapisMikrosekund (i); Seryjny. println ("1"); opóźnienie (100); } } }
Ramię robota
Czego potrzebujesz, aby to ramię robota było? Płytka Arduino UNO , 3 Servo SparkFun, 1 dwuosiowy Joystick z konsoli PlayStation2 i zasilacz. Ty też będziesz tego potrzebować kable, radiator, kondensator ceramiczny i kondensator elektrolityczny.
Kody, z którymi musisz pracować, to:
#include "AnalogReader.h" #zawierać AnalogReader :: AnalogReader (const int pin): m_pin (pin) {} / ** Odczytaj wartość analogową z karty ADC * / int AnalogReader :: czytaj () { powrót analogowyRead (m_pin); } #include "Przycisk.h" #zawierać Przycisk :: Przycisk (const int pin): m_pin (pin) { } Unieważnij :: przycisk init () { pinMode (m_pin, INPUT);
Aby ustawić stan początkowy, musisz napisać:
m_lastButtonState = przeczytaj (); } // odczytaj stan przycisku. Przycisk logiczny :: czytaj () { powrót digitalRead (m_pin); }
Jeśli przycisk nie jest wtedy wciśnięty wróci do NISKI (0), ale jeśli jest gotowy, poda cenę Y WYSOKI (1).
Aby to zrobić, musisz wpisać:
Przycisk Boolean :: onChange () { // odczytaj stan przycisku. „1” jest wciśnięte, „0” nie jest wciśnięte. odczyt logiczny = odczyt (); // Jeśli przełącznik się zmienił, czy to z powodu hałasu, czy przez naciśnięcie: if (czytaj! = m_lastButtonState) { // zresetuj licznik odbicia m_lastDebounceTime = mili (); m_pressFlag = 1; } if ((millis () - m_lastDebounceTime)> m_debounceDelay) { // cokolwiek czytasz, to już tam jest // jako opóźnienie debounce, a następnie weź go jako aktualny stan bieżący: // jeśli zmienił się stan przycisku: if (m_pressFlag) {// przeczytaj! = m_lastButtonState) { // zaktualizuj stan przycisku m_pressFlag = 0; // zapisz odczyt. Następnym razem w pętli, m_lastButtonState = przeczytaj; 1 wrócić; } } m_lastButtonState = przeczytaj; 0 wrócić; } Przycisk logiczny :: onPress () { // odczytaj stan przycisku. „1” jest wciśnięte, „0” nie jest wciśnięte. odczyt logiczny = odczyt (); // Jeśli przełącznik się zmienił, czy to z powodu hałasu, czy przez naciśnięcie: if (czytaj == WYSOKI && m_lastButtonState == NISKI) { // zresetuj licznik odbicia m_lastDebounceTime = mili (); m_pressFlag = 1; } if ((millis () - m_lastDebounceTime)> m_debounceDelay) { jeśli (m_pressFlag) {
Następnie musimy to zrobić przez pętlę:
m_pressFlag = 0; m_lastButtonState = przeczytaj; 1 wrócić; } } m_lastButtonState = przeczytaj; 0 wrócić; } Przycisk Boolean :: onRelease () { // odczytaj stan przycisku. „1” jest wciśnięte, „0” nie jest wciśnięte. odczyt logiczny = odczyt (); // Jeśli przełącznik się zmienił, czy to z powodu hałasu, czy przez naciśnięcie: if (czytaj == NISKI && m_lastButtonState == WYSOKI) { // zresetuj licznik odbicia m_lastDebounceTime = mili (); m_pressFlag = 1; } if ((millis () - m_lastDebounceTime)> m_debounceDelay) { // cokolwiek czytasz, to już tam jest // jako opóźnienie debounce, a następnie weź go jako aktualny stan bieżący: // jeśli zmienił się stan przycisku: if (m_pressFlag) {// read == NISKI && m_lastButtonState == WYSOKI) { // zapisz odczyt. Następnym razem w pętli, m_lastButtonState = przeczytaj; m_pressFlag = 0; 1 wrócić; } } m_lastButtonState = przeczytaj; 0 wrócić; } #ifndef _BUTTON_H_ #define _BUTTON_H_ // klasa przycisku: Przycisk zajęć { Publiczny: Przycisk (stały pin int); // zainicjuj instancję przycisku nieważne init (); // Odczytaj stan przycisku - bez odbicia odczyt logiczny (); // zwróć True w przypadku obu zdarzeń przycisków, naciśnij lub puść boolean onChange (); // zwraca True tylko po naciśnięciu wartość logiczna naPress (); // zwróć True tylko przy wyjściu wartość logiczna naZwolnienie (); prywatny: const int m_pin; bool m_lastButtonState; // zmienne stanu długi m_lastDebounceTime = 0; const int m_debounceDelay = 50; wartość logiczna m_pressFlag = 0; }; #endif // _ BUTTON_H_
Owad
Do tego projektu będziesz potrzebować Arduino 3.3V 8MHz, serwomotor, przełącznik, bateria litowa 1000mAh, kable, przewody i klej. Instalacja musi być wykonana przez pobranie wszystkie rodzaje również tak trudne, jak to możliwe za pomocą nici i kleju.
Następnie musisz wprowadzić te kody w IDE:
#zawierać wewn PRZÓD = 4; int POWRÓT = 5; Serwo przódNogi, tyłNogi; pusty parametr () { pinMode (13, WYJŚCIE); krawat (PRZEDNI); dołączyć (ZWROT); napisz (90); napisz (90); opóźnienie (5000); } pusta pętla () { digitalWrite (13, TOP); napisz (70); napisz (70); digitalWrite (13, NISKI); opóźnienie (200); napisz (110); opóźnienie (200); napisz (110); }
Jeśli masz jakieś pytania, zostaw je w komentarzach, skontaktujemy się z Tobą tak szybko, jak to możliwe i będziemy bardzo pomocne dla większej liczby członków społeczności. Kocham cię!