Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'serwomechanizm'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 11 wyników

  1. Witam, Mam pytanie, ponieważ zaczynam swoją przygodę z serwomechanizmami, w moim układzie będą dwa serwa mg995 sterowane za pomocą arduino uno, z tego co zrozumiałem to pobierają one maksymalny prąd (stall current) na poziomie 1,5A, czyli łącznie 3A. Rozumiem że muszę je zasilić za pomocą zasilania a sygnał sterujący do arduino. Czy sam zasilacz 5V/3A wystarczy czy potrzebuję coś jeszcze?
  2. Witam, używam sterownika Adafruit Motorshield v2 do serwomechanizmów i na serwach typu mikro (dokładnie tych załączonych z kursu Forbot), wszystko działa poprawnie. Natomiast gdy podpinam serwo PowerHD LF-20MG to działa ono tylko i wyłącznie gdy każę mu się ustawić w funkcji setup, natomiast już w funkcji loop zaczyna wykonywać ruchy w dziwne strony a także, odcina mi czasami połączenia z Arduino i nie wiem jak to naprawić. Na pewno wiem że nie jest to wadliwy model, gdyż kupiłem ich 4 i wszystkie zachowują się identycznie. Próbowałem na różne sposoby je zasilać (przez sterownik, bezpośrednio, przez przetwornicę, stabilizator napięcia), ale nie wydaje się to pomagać, bardzo proszę o pomoc
  3. Witam, chcąc połączyć arduino uno, klawiaturę i 5 serwomechanizmów MG996R występują dziwne wariacje niektórych serwomechanizmów (nie zawsze tych samych).Po kilkukrotnym szybkim kliknięciu przycisków, zaczynało wariować. Miałem zaprogramowany przycisk, w którym wszystkie 5 serw pracuje w jednym momencie, wtedy jest największe zapotrzebowanie na prąd i po kilkukrotnej pracy serwomechanizmów, któreś (lub dwa) zawsze zaczynało się kręcić wokół własnej osi, bez końca. Początkowo zasilałem to baterią 9V (poprzez regulator napięcia 5V), wariowały. Stwierdziłem że potrzebny jest większy prąd, to podpiąłem to wszystko pod akumulator od ciągnika (oczywiście przez regulatory 5V), nadal to samo [w załączniku wstawiam zdjęcie połączenia, mam nadzieję że dobrze podłączam, albo tu tkwi problem?]. Potem, aby wyeliminować błędny kod, podpiąłem jedno serwo i potencjometr, na nowym kodzie (prostym) kręcąc potencjometrem, wszystko działało pięknie, lecz po jakichś 2 minutach zaczęło się kręcić w kółko. Nie mam pojęcia co może być przyczyną. Koncepcją główną jest sterowanie serwomechanizmami za pomocą zmiany rezystancji, więc w jednej chwili zazwyczaj będą pracowały wszystkie na raz. Potrzebuję pomocy i z góry dziękuję!
  4. Cześć wszystkim. Udało mi się skompletować wszystkie potrzebne rzeczy do stworzenia pewnego mechanizmu. W skrócie mówiąc jest to mechanizm, który ma za zadanie po naciśnięciu przycisku otwierać klapkę. Pozycja otwarcia/zamknięcia klapki ustawiana jest za pomocą krańcówek. Niestety pojawił mi się problem z serwem (PowerHD LF-20MG-360 standard - praca ciągła 360 stopni). W momencie kiedy ma ono otwierać/zamykać klapkę potrafi nierówno pracować. Swój układ testowy zasilam z zasilacza ustawionego na 12V, ponieważ z takiego napięcia mam zasilane krańcówki. Reszta układu zasilana jest z przetwornicy 12V/5V (Pololu D24V22F5 - przetwornica step-down - 5V 2,5A). Spróbowałem sprawdzić, czy może pojedyncze elementy w moim układzie wpływają na pracę serwa. W tym celu napisałem program, który miał załączać serwo, gdy arduino otrzymywało sygnał albo z jakiegoś przycisku, albo z jakiejś krańcówki. Z każdego sygnału serwo chodziło równo. Niestety na docelowym programie serwo cały czas chodzi nierówno, a problem potęguje się jeżeli nastawię niską prędkość obrotową (np. 94 stopnie -serwo stoi przy 91*). Próbowałem naprawić problem poprzez wstawienie na wyjściu z przetwornicy kondensatora 470uF, ale jego obecność nic nie daje. Ostatecznie zauważyłem, że zmieniając wartość "delay" w kodzie programu udaje się trochę poprawić pracę serwo. Przy delay na poziomie 225ms serwo chodzi lepiej niż na 25ms, ale nadal nie jest to praca płynna. Ustawiając duże wartości delay, tracę możliwośc precyzyjnego sterowania klapką, bo zanim sygnał z krańcówki wyłączy serwo, to silnik nadal będzie się kręcił właśnie o tą wartość "delay". Poniżej przedstawiam swój kod, schemat układu i filmiki z pracy serwa (jeden na delay 25ms, drugi na 225ms). #include<Servo.h> Servo servo; void setup() { pinMode(10, INPUT); //przelacznik M pinMode(9, INPUT); //przelacznik D pinMode(8, INPUT); //krancowka na otwarciu pinMode(7, INPUT); //krancowka na zamknieciu pinMode(3, OUTPUT); //servo pin } void loop() { //ruch przesłony if(((digitalRead(10)==HIGH || digitalRead(9)==HIGH)&&(digitalRead(8)==LOW))) { servo.attach(3); servo.write(80); delay(25);} //servo otwiera przesłone else { digitalWrite(3,LOW);} //servo nie działa if((digitalRead(10)==LOW && digitalRead(9)==LOW && digitalRead(7)==LOW)) { servo.attach(3); servo.write(100); delay(25);} //servo zamyka przesłone else { digitalWrite(3,LOW);} //servo nie działa } Jeżeli filmiki są za mało wyraźne to postaram się je wrzucić w lepszej jakości. praca uklad.rar
  5. Hej, Zacznę od swojego backgroundu w temacie - skończyłem infę dobre kilka lat temu, ale tak naprawdę zgłębiam ten fascynujący świat elektroniki od stosunkowo niedawna. Jestem w trakcie wykonywania projektu - zdalnie sterowanej rolety wewnętrznej w kuchni. Celem nadrzędnym jest wykorzystanie jak najbardziej podstawowych elementów, by żona nie krzyczała, że zagracam jej kuchnię 😉 schemat poglądowy wygląda tak: Oraz filmik jak to wygląda na żywo: Filmik jest nagrany dla poprzedniej wersji, w aktualnej zastąpiłem szybkozłączki lutami oraz dołożyłem 2 kondensatory do układu, jak na schemacie. W kwestii zasilania rozciąłem walający się w domu kabel USB i połączyłem czerwony i czarny kabel, pozostałe tj. białe i zielone uciąłem (nie zabezpieczając ich w żaden sposób). Jako zasilacz użyłem zwykłą ładowarkę do telefonu bodajże Samsunga dającą 2A. Wszystko działało dobrze, zarówno w wersji z filmiku jak i z lutami i kondensatorami. Schody zaczęły się, gdy podłączam przedłużacz usb 5 metrowy (potrzebuję przeciągnąć do bo wtyczkę mam trochę dalej od okna). Właściwie, to próbowałem z dwoma przedłużaczami, również z "aktywnym" (https://allegro.pl/oferta/kabel-usb-5m-przedluzacz-aktywny-9272337651) . Próbowałem również 2 różne łatowarki, bez zmian. Rezultat jest identyczny - wygląda na to, że kontroler nodeMCU się resetuje (nie łączy się do sieci WiFi). Czy dodatkowa ilość kabla powoduje jakieś zakłócenia/spadki napięcia układu? Czy powinienem dorzucić jakiś jeszcze stabilizator do tego układu? Myślałem, że kondensator załatwi tę sprawę, ale nie daje on praktycznie różnicy. Pewnie popełniłem dużo błędów przy tym projekcie, więc jeśli macie jakieś sugestie to chętnie posłucham 🙂
  6. Witam!!! Wczoraj otrzymałem zamówieniem z serwem 360 towerPro sg90 360 stopni. Podłączyłem je do arduino, Wgrałem program z biblioteką servo.h, a serwo ani drgnie. Zasilanie serwomechanizmu mam z pakietu 4,8v do odbiorników rc, płytka arduino nano. Kod jakiego użyłem: #include <Servo.h> Servo serwomechanizm; void setup() { // put your setup code here, to run once: attach.serwomechanizm(9) } void loop() { // put your main code here, to run repeatedly: write.serwomechanizm(180) } Czy zna może ktoś przyczynę problemu???
  7. Cześć wszystkim 😁 Czy jest ktoś w stanie mi powiedzieć jak podłączyć zasilanie do części logicznej Modułu PCA9685 Shield Arduino. Wydaje mi się że samo nałożenie shielda na arduino nie wystarczy. Na dolnej części płytki pisze "VCC select" i mam do wyboru 3V i 5V. Jest ktoś w stanie mi powiedzieć jak mogę wybrać czy chce zasilać poprzez 3V czy 5V?🧐
  8. Cześć wszystkim! Zostałem postawiony przed koniecznością stworzenia pewnego mechanizmu. Jedna z jego części ma działać w następujący sposób: Przy załączonym przycisku klapka ma otwierać się w stronę krańcówki K1. W momencie osiągnięcia K1 krańcówka wysyła sygnał do arduino i napęd ma się wyłączyć. Przy wyłączeniu przycisku klapka powinna wrócić w położenie K2. Klapka ma pokonać dystans 80mm w czasie ~2sek. Pierwotna koncepcja zakładała wykorzystanie zwykłego silniczka ze śrubą pociągową, lecz niestety gabaryty nie pozwalają na zastosowanie takiego rozwiązania. Zdecydowałem się więc na użycie serwomechanizmu (jest mały, zapewnia duży moment, łatwo sterować prędkością otwierania klapki). Ogólnie po napisaniu programu wszystko działało zgodnie z założoną logiką, lecz problem pojawił się po ponownym uruchomieniu arduino. Po osiągnięciu pozycji K1 i przy załączonym przycisku odłączyłem zasilanie. Po ponownym uruchomieniu, serwomechanizm ustawił się szybko na pozycję 90 stopni, choć przycisk cały czas był wciśnięty serwo nie dążył do pozycji K1. Dopiero po wyciśnięciu przycisku serwo wykonało ruch (niestety szybki, a nie powolny jak zaprogramowałem) w pozycję K2. Do stworzenia prototypu użyłem elementów z zestawu startowego arduino. Niestety, ale w swoim projekcie nie mogę sobie pozwolić na to by po ponownym podłączeniu zasilania serwo wykonywało jakieś szybkie ruchy na pozycje 0. Czy jest jakiś sposób, który może rozwiązać mój problem? Dodam, że moja wiedza z programowania jest podstawowa, więc proszę o prosty język i wyrozumiałość. W kodzie mam sterowanie na dwa przełączniki, ale nie ma to większego znaczenia. #include<Servo.h> int pos =0; Servo servo; void setup() { pinMode(10, INPUT); //przelacznik 1 pinMode(9, INPUT); //przelacznik 2 pinMode(8, INPUT); //krancowka na otwarciu pinMode(7, INPUT); //krancowka na zamknieciu servo.attach(3); } void loop() { //ruch przesłony if(((digitalRead(10)==HIGH || digitalRead(9)==HIGH)&&(digitalRead(8)==LOW)) && pos< 180) {pos++; servo.write(pos); delay(15);} //servo otwiera przesłone else {digitalWrite(2,LOW);} //servo nie działa if((digitalRead(10)==LOW && digitalRead(9)==LOW && digitalRead(7)==LOW) && pos>0) {pos--; servo.write(pos); delay(15);} //servo zamyka przesłone else {digitalWrite(2,LOW);} //servo nie działa }
  9. Witam, razem z kolegami ze studiów w ramach projektu budujemy auto z ramieniem robota sterowane przez bluetooth. Całość będzie oparta na arduino UNO Rev3 (zdjęcie modelu w załączniku). I z związku z tym chcemy zakupić sterownik do silników do którego będziemy mogli podpiąć 4 silniki DC (po 2 silniki połączymy szeregowo po lewej jak i prawej stronie aby było możliwie skręcanie, przez co potrzebujemy 2 wejść) oraz 4 serwomechanizmy. I własnie chciałbym dostać od was radę jakiego dokładnie sterownika powinniśmy się zaopatrzyć. Oczywiście już się oglądaliśmy za konkretnymi przykładami jednakże chcieliśmy przed dokonaniem zakupu doradzić się bardziej doświadczonych osób. Z góry dziękuję za każdą pomoc z waszej strony.
  10. #include <Servo.h> //Biblioteka odpowiedzialna za serwa Servo serwomechanizm; //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa int pozycja = 0; //Aktualna pozycja serwa 0-180 int zmiana = 6; //Co ile ma się zmieniać pozycja serwa? void setup() { serwomechanizm.attach(9); //Serwomechanizm podłączony do pinu 9 } void loop() { if (pozycja < 180) { //Jeśli pozycja mieści się w zakresie serwomechanizm.write(pozycja); //Wykonaj ruch } else { //Jeśli nie, to powrót na początek pozycja = 0; } pozycja = pozycja + zmiana; //Zwiększenie aktualnej pozycji serwa delay(200); //Opóźnienie dla lepszego efektu } Witam, jest to mój pierwszy post na forum oraz pierwszy tydzień zabawy z Arduino, dlatego z góry dziękuję za pomoc i komentarze, nawet jeśli problem jest banalny. Buduję model, w którym jednym z elementów jest rozdzielacz hydrauliczny z 3 serwami. Zadaniem serw jest pełne otwarcie zaworu oraz odczekanie zadanego czasu. Po jego upływie zawór zamyka się i znowu czekamy, aż upłynie zadany czas. Powyższy kod to kod z kursu do Aruduino (lekcja z zastosowaniem PWM). Kod działa i serwo pracuję non stop, otwiera i zamyka zawór, bez przerwy. Kombinowałem z funkcją delay jednak nic to nie dało, albo zrobiłem to źle. Czytałem, że musi zostać zastosowana tutaj jedna z funkcji arduino - millis(), ponieważ w trakcie pracy rozdzielacza inne elementy będą działać równolegle. Z tym również próbowałem, ale nie wyszło 😕 Przejdźmy do sprawy: jak zmodyfikować kod, aby - 1) Istniała możliwość pracy innych elementów w czasie pracy rozdzielacza 2) Serwa robiły pauzę na określony czas po otwarciu i zamknięciu zaworu
  11. Hej, zbudowałem sobie takie samodzielne Arduino w oparciu o ATmega328p, jako mój programator służy arduino, z jego pomocą wgrałem bootloader na wyżej wymienioną atmege. I pojawił się problem gdy wgrywam za pomocą programatora(arduino as isp) program(miganie diodą) i podpinam zewnętrzne zasilanie, odpinam programator wszystko działa okej, ale gdy wgrałem sobie drugi program(sterowanie serwomechanizmem z pomocą modułu bluetooth HC-05) to jeśli jestem na zasilaniu z programatora(arduino) to program działa, natomiast jeśli odepnę i podłącze zewnętrzne zasilanie 5V to wtedy nie działa, (chyba) układ jest zasilony bo zapala się dioda z funkcji setup(), ale to co dzieje się w loop() tak jakby już nie działało bo nie ma mrugnięcia diodą a więc tym samym i sam serwomechanizm nie działa. Będę wdzięczny za wszystkie pomysły które mogą pomóc rozwiązać problem. Poniżej fragment kodu gdyby był potrzebny. Dodałem również schemat rozważałem rozdzielenie zasilania atmegi 5V i serwomechanizmy odzielnie na 6V(docelowo 4 serwomechanizmy), ale jeszcze nie wiem jak to się do końca łączy czy masy zasilania razem czy osobno czy w jakiś inny sposób(fajnie jakby ktoś się również tą wiedzą podzielił) ale na ten moment jest na jednym zasilaniu 5V całość atmega jak i 1 serwomechanizm. Na rx/tx dałem konwerter poziomów logicznych 5V/3.3V i jest też stabilizator żeby zrobić 3.3V. JP2 na schemacie to goldpiny na podpięcie serwa. #include <Servo.h> #include <SoftwareSerial.h> Servo s1; int bluetoothTx = 11; int bluetoothRx = 10; SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); unsigned int servopos = 0; unsigned int servopos1 = 0; unsigned int servopos2 = 0; unsigned int realservo = 0; void setup() { s1.attach(9); bluetooth.begin(9600); pinMode(8, OUTPUT); digitalWrite(8, HIGH); } void loop() { if(bluetooth.available() >= 2) { digitalWrite(8, LOW); delay(700); digitalWrite(8, HIGH); servopos1 = bluetooth.read(); servopos2 = bluetooth.read(); realservo = servopos1 + (servopos2*256); Serial.print("Realservo - odczyt: "); Serial.println(realservo); if(realservo >=0 && realservo <=180) { digitalWrite(8, LOW); delay(300); digitalWrite(8, HIGH); digitalWrite(8, LOW); delay(300); digitalWrite(8, HIGH); s1.write(realservo); Serial.print("Pozycja serwo s1 "); Serial.println(realservo); delay(200); } }
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.