Serwisy partnerskie:
Close icon
Serwisy partnerskie

Sterowanie serwomotorem za pomocą Arduino w Proteusie

Article Image
Kompletny poradnik, krok po kroku pokazujący jak sterować serwomotorem za pomocą Arduino w Proteus ISIS.
1. Praktyczny Kurs Arduino - przewodnik po artykułach składających się na kurs 2. Czym jest Arduino? 3. Porównanie Arduino z Raspberry Pi 4. Instalacja sterownika Arduino w systemie Windows 5. Generowanie pliku hex w Arduino 6. Jak wgrać bootloader w Atmega328? 7. Rozpoczęcie pracy z oprogramowaniem Arduino 8. Rozpoczęcie programowania w Arduino 9. Programowe resetowanie Arduino 10. Wprowadzenie do Arduino UNO 11. Wprowadzenie do Arduino NANO 12. Wprowadzenie do Arduino Pro Mini 13. Wprowadzenie do Arduino Mega 2560 14. Wprowadzenie do Arduino Due 15. Wprowadzenie do Arduino Lilypad 16. Wprowadzenie do ATmega328 17. Biblioteka Arduino dla Proteusa 18. Projekt płytki drukowanej Arduino UNO dla Proteus ARES 19. Biblioteka Arduino Lilypad dla Proteusa 20. Odczyt z portu szeregowego Arduino 21. Projektowanie układów LCD z Arduino 22. Łączenie klawiatury z Arduino 23. Wartość ADC na LCD przy użyciu Arduino 24. Symulacja czujnika ultradźwiękowego w Proteusie 25. Połączenie czujnika ultradźwiękowego z Arduino 26. Wiele czujników ultradźwiękowych z Arduino 27. Czujnik temperatury 18B20 z Arduino 28. Jak używać 18B20 w Proteus ISIS? 29. Łączenie LM35 z Arduino w Proteusie 30. Współpraca siedmiosegmentowego wyświetlacza z Arduino w Proteusie 31. Łączenie czujnika PIR z Arduino 32. Współpraca czujnika płomienia z Arduino 33. Interfejs NRF24L01 z Arduino 34. NRF24L01+ i Arduino - Response Timed Out 35. Połączenie RFID RC522 z Arduino 36. Komunikacja Bluetooth z Arduino przy użyciu HC05 37. Sterowanie serwomotorem za pomocą Arduino w Proteusie 38. Projekt sterowania sygnalizacją świetlną przy użyciu Arduino 39. Przewijanie tekstu na matrycy LED 8×8 z użyciem Arduino 40. Inteligentny system oszczędzania energii 41. Komunikacja USB pomiędzy Androidem i Arduino 42. Automatyka domowa z użyciem XBee i Arduino 43. Domowy system bezpieczeństwa oparty na GSM 44. Wysyłanie SMS-ów za pomocą Arduino UNO i SIM900 45. Odbieranie SMS-ów za pomocą komend AT przy użyciu Arduino 46. Projekt rozpoznawania głosu przy użyciu EasyVR Shield 47. Rozpoczęcie pracy z programem EasyVR Commander 48. Połączenie EasyVR z Arduino UNO 49. Błąd szkolenia - niepowodzenie rozpoznawania w EasyVR 50. Połączenie XBee z komputerem 51. Wprowadzenie do modułu XBee 52. Interfejs XBee z Arduino 53. Rozpoczęcie pracy z kamerą Pixy 54. Jak zainstalować oprogramowanie kamery Pixy - PixyMon 55. Aktualizacja firmware kamery Pixy do najnowszej wersji 56. Jak wytrenować kamerę Pixy za pomocą komputera 57. Sterowanie kierunkiem obrotu silnika prądu stałego za pomocą Arduino 58. Sterowanie prędkością obrotów silnika prądu stałego za pomocą Arduino 59. Sterowanie kierunkiem obrotu silnika krokowego za pomocą Arduino 60. Sterowanie prędkością obrotów silnika krokowego za pomocą Arduino 61. Pobieranie danych z serwera internetowego za pomocą Arduino Wi-Fi 62. Wprowadzenie do Arduino YUN 63. Dostęp do serwera Linux Arduino YUN za pomocą Putty
Rozwiń cały spis treści Zwiń spis treści

Witajcie przyjaciele, mam nadzieję, że wszystko u was w porządku i dobrze się bawicie.

Dzisiejszy post jest o sterowaniu serwomotorem za pomocą Arduino w Proteus ISIS. Serwomotor jest powszechnie stosowanym silnikiem w projektach inżynierskich do precyzyjnego ruchu po okręgu. Możemy poruszać serwomotorem pod dowolnym kątem, co nie jest możliwe w przypadku innych silników np. krokowych czy prądu stałego.

Na przykład, załóżmy, że chcę przesunąć antenę pod dokładnym kątem 47,5 stopnia. Jeśli używam silnika prądu stałego, muszę użyć enkodera. Więc w takich przypadkach zamiast używać silnika prądu stałego, będę wolał serwomotor.

Już zamieściłem kontrolę kąta serwomotoru przy użyciu Timera 555, w którym kontrolowałem serwomotor używając timera 555 i inny poradnik o sterowaniu serwomotorem za pomocą mikrokontrolera PIC, w którym kontrolowałem go za pomocą PIC16F877a. A dzisiaj będziemy kontrolować serwomotor za pomocą Arduino i zaprojektujemy symulację w Proteus ISIS.

Na początek przyjrzymy się prostemu sterowaniu serwomotorem za pomocą Arduino w Proteus ISIS, a następnie sprawdzimy sterowanie serwomechanizmem za pomocą Arduino z wykorzystaniem przycisków, w którym będziemy poruszać serwomotorem pod precyzyjnymi kątami, właśnie za pomocą przycisków. Tak więc zaczynajmy.  

Proste sterowanie serwomotorem za pomocą Arduino w Proteusie

Po pierwsze, otwórz oprogramowanie Proteus ISIS i zaprojektuj poniższy prosty układ.

Powinieneś również spojrzeć na te biblioteki komponentów Proteusa.

Serwomotor ma trzy piny:

  1. Pierwszy pin to Vcc.
  2. Drugi pin to Pin kontrolny.
  3. Trzeci pin to GND.

Środkowy pin jest pinem sterującym i idzie do dowolnego pinu cyfrowego Arduino. Podłączyłem pin sterujący do pinu 4 Arduino.

Kod Arduino do sterowania serwomotorem

Następną rzeczą, którą musimy zrobić, jest zaprojektowanie kodu dla Arduino. Otwórz więc program Arduino i wklej do niego poniższy kod.

#include <Servo.h> 
 
Servo myservo;  
int pos = 0;    

void setup() 
{ 
  myservo.attach(4);  
}
 
void loop() 
{ 
  for(pos = 0; pos <= 180; pos += 1) 
  {
    myservo.write(pos);              
    delay(15);                      
  } 
  for(pos = 180; pos>=0; pos-=1)     
  {                                
    myservo.write(pos);             
    delay(15);                      
  } 
}

Teraz skompiluj ten kod i uzyskaj swój plik hex.

Jest to ten sam kod, który jest podany w folderze Servo w Examples w oprogramowaniu Arduino.

Prześlij swój plik hex do płytki Arduino w Proteus.

Uwaga: Powinieneś przeczytać tekst jak pobrać plik Hex z Arduino jeśli jeszcze nie wiesz jak to zrobić.

Rezultaty symulacji Proteusa

Teraz, uruchom symulację i zobaczysz, że twój serwomotor zacznie się poruszać od 90 stopni do -90 stopni, a następnie z powrotem do 90 stopni i będzie się poruszał w ten sposób, jak pokazano na poniższych rysunkach:

Teraz, gdy go uruchomisz, najpierw pokaże pozycję A na powyższym rysunku, następnie przesunie się w kierunku przeciwnym do ruchu wskazówek zegara i minie pozycję B, a na końcu zatrzyma się w pozycji C, a następnie przesunie się zgodnie z ruchem wskazówek zegara i wróci do pozycji A po minięciu pozycji B.

W ten sposób będzie się on przemieszczał pomiędzy pozycją A i C.

Do tej pory widzieliśmy prostą kontrolę serwomotoru z Arduino w Proteus ISIS. Teraz spójrzmy na nieco złożoną kontrolę serwomotor z Arduino.

Sterowanie serwomotorem z Arduino za pomocą przycisków

W poprzedniej sekcji, widzieliśmy proste sterowanie serwomotoru z Arduino, w którym po prostu ruszaliśmy serwomotor z pozycji 90 stopni do -90 stopni i odwrotnie.

Teraz zamierzam sterować serwomotorem za pomocą pięciu przycisków, a każdy przycisk będzie przesuwał serwomotor o dokładny kąt.

Tak więc, najpierw zaprojektuj mały projekt, jak pokazano na poniższym rysunku:

Dodałem pięć przycisków za pomocą Arduino i teraz za pomocą tych pięciu przycisków będę poruszał serwomotorem do 90, 45, 0, -45 i -90 stopni. Tak więc, każdy przycisk ma swój dokładny kąt i tylko pod tym kątem będzie poruszał silnikiem.

Kod Arduino

Zatem następną rzeczą jest kod. Skopiuj i wklej poniższy kod w swoim oprogramowaniu Arduino i uzyskaj plik hex:

#include <Servo.h> 
 
Servo myservo;   

int degree90 = 8;
int degree45 = 9;
int degree0 = 10;
int degree_45 = 11;
int degree_90 = 12;

void setup() 
{ 
  myservo.attach(4);  
  pinMode(degree90, INPUT_PULLUP);
  pinMode(degree45, INPUT_PULLUP);
  pinMode(degree0, INPUT_PULLUP);
  pinMode(degree_45, INPUT_PULLUP);
  pinMode(degree_90, INPUT_PULLUP);
}
 
void loop() 
{ 
  if(digitalRead(degree90) == LOW)
  {
    myservo.write(180);
  }
  
  if(digitalRead(degree45) == LOW)
  {
    myservo.write(117);
  }
  
  if(digitalRead(degree0) == LOW)
  {
    myservo.write(93);
  }

  if(digitalRead(degree_45) == LOW)
  {
    myservo.write(68);
  }
  
  if(digitalRead(degree_90) == LOW)
  {
    myservo.write(3);
  }
}

Prześlij ów plik hex do swojej płytki Arduino w Proteusie i uruchom symulację.

Rezultaty symulacji Proteusa

Teraz naciskaj te przyciski, po kolei, od góry do dołu, a otrzymasz poniższe wyniki:

Powyższy rysunek jest dość oczywisty, ale mimo to, trochę go wyjaśnię.

Na pierwszym rysunku nacisnąłem pierwszy przycisk i silnik przesunął się do -90 stopni.

Na drugim rysunku nacisnąłem drugi przycisk i silnik przesunął się na -45 stopni.

Na trzecim rysunku nacisnąłem trzeci przycisk i silnik przesunął się do 0 stopni.

Na czwartym rysunku nacisnąłem czwarty przycisk i silnik przesunął się do 45 stopni.

Na piątym rysunku nacisnąłem piąty przycisk i silnik przesunął się do 90 stopni.

Na szóstym rysunku wszystkie przyciski są wciśnięte, a silnik pozostał w ostatniej pozycji.

Było to dość proste i mam nadzieję, że wyjaśniłem to poprawnie. Jeśli nadal masz jakieś pytania to pytaj w komentarzach, a ja postaram się je na nie odpowiedzieć.

To wszystko na dzisiaj. Do zobaczenia w następnym poradniku.

Trzymajcie się!

Artykuł Control Servo Motor with Arduino in Proteus opracowano w wersji polskiej na podstawie współpracy z portalem www.theengineeringprojects.com.

1. Praktyczny Kurs Arduino - przewodnik po artykułach składających się na kurs 2. Czym jest Arduino? 3. Porównanie Arduino z Raspberry Pi 4. Instalacja sterownika Arduino w systemie Windows 5. Generowanie pliku hex w Arduino 6. Jak wgrać bootloader w Atmega328? 7. Rozpoczęcie pracy z oprogramowaniem Arduino 8. Rozpoczęcie programowania w Arduino 9. Programowe resetowanie Arduino 10. Wprowadzenie do Arduino UNO 11. Wprowadzenie do Arduino NANO 12. Wprowadzenie do Arduino Pro Mini 13. Wprowadzenie do Arduino Mega 2560 14. Wprowadzenie do Arduino Due 15. Wprowadzenie do Arduino Lilypad 16. Wprowadzenie do ATmega328 17. Biblioteka Arduino dla Proteusa 18. Projekt płytki drukowanej Arduino UNO dla Proteus ARES 19. Biblioteka Arduino Lilypad dla Proteusa 20. Odczyt z portu szeregowego Arduino 21. Projektowanie układów LCD z Arduino 22. Łączenie klawiatury z Arduino 23. Wartość ADC na LCD przy użyciu Arduino 24. Symulacja czujnika ultradźwiękowego w Proteusie 25. Połączenie czujnika ultradźwiękowego z Arduino 26. Wiele czujników ultradźwiękowych z Arduino 27. Czujnik temperatury 18B20 z Arduino 28. Jak używać 18B20 w Proteus ISIS? 29. Łączenie LM35 z Arduino w Proteusie 30. Współpraca siedmiosegmentowego wyświetlacza z Arduino w Proteusie 31. Łączenie czujnika PIR z Arduino 32. Współpraca czujnika płomienia z Arduino 33. Interfejs NRF24L01 z Arduino 34. NRF24L01+ i Arduino - Response Timed Out 35. Połączenie RFID RC522 z Arduino 36. Komunikacja Bluetooth z Arduino przy użyciu HC05 37. Sterowanie serwomotorem za pomocą Arduino w Proteusie 38. Projekt sterowania sygnalizacją świetlną przy użyciu Arduino 39. Przewijanie tekstu na matrycy LED 8×8 z użyciem Arduino 40. Inteligentny system oszczędzania energii 41. Komunikacja USB pomiędzy Androidem i Arduino 42. Automatyka domowa z użyciem XBee i Arduino 43. Domowy system bezpieczeństwa oparty na GSM 44. Wysyłanie SMS-ów za pomocą Arduino UNO i SIM900 45. Odbieranie SMS-ów za pomocą komend AT przy użyciu Arduino 46. Projekt rozpoznawania głosu przy użyciu EasyVR Shield 47. Rozpoczęcie pracy z programem EasyVR Commander 48. Połączenie EasyVR z Arduino UNO 49. Błąd szkolenia - niepowodzenie rozpoznawania w EasyVR 50. Połączenie XBee z komputerem 51. Wprowadzenie do modułu XBee 52. Interfejs XBee z Arduino 53. Rozpoczęcie pracy z kamerą Pixy 54. Jak zainstalować oprogramowanie kamery Pixy - PixyMon 55. Aktualizacja firmware kamery Pixy do najnowszej wersji 56. Jak wytrenować kamerę Pixy za pomocą komputera 57. Sterowanie kierunkiem obrotu silnika prądu stałego za pomocą Arduino 58. Sterowanie prędkością obrotów silnika prądu stałego za pomocą Arduino 59. Sterowanie kierunkiem obrotu silnika krokowego za pomocą Arduino 60. Sterowanie prędkością obrotów silnika krokowego za pomocą Arduino 61. Pobieranie danych z serwera internetowego za pomocą Arduino Wi-Fi 62. Wprowadzenie do Arduino YUN 63. Dostęp do serwera Linux Arduino YUN za pomocą Putty
Rozwiń cały spis treści Zwiń spis treści
Firma:
Tematyka materiału: Kurs Arduino, pierwsze kroki, Projekty Arduino, Symulator Arduino, Serwomechanizm, Proteus
AUTOR
Źródło
www.theengineeringprojects.com
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
Oceń najnowsze wydanie EdW
Wypełnij ankietę i odbierz prezent
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"