Jak zaprogramować serwomotor Arduino do tworzenia złożonych projektów? Przewodnik krok po kroku

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ę!

Dodaj komentarz