Skocz do zawartości

Podajnik karmy z wykorzystaniem ardulino uno i serwo sg90


pocjan

Pomocna odpowiedź

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15 ms for the servo to reach the position
  }
}

Witam, zaznaczam że jestem zielony z programowania, potrzebuję zmodyfikować załączony kod , aby po naciśnięciu przycisku ramię robiło obrót pełny 0-180-0  a następnie  zatrzymywało się w poz. 0, sterowanie proste włącz/wyłącz, po wyłączeniu ramię w poz. 0.

 

1.jpg

2.jpg

Edytowano przez pocjan
zmiana treści
Link do komentarza
Share on other sites

@pocjan witam na forum 🙂 Chętnie pomożemy, ale powiedz na czym dokładnie utknąłeś? Co dokładnie masz na myśli pod hasłem włącz/wyłącz - będziesz odłączał urządzenie od prądu, czy będzie ono włączone cały czas, a ruch ma się odbywać po naciśnięciu przycisku?

Link do komentarza
Share on other sites

Witam ponownie, chciałbym aby karmnik działał w wyznaczonych porach, miałem na myśli zwykły wyłącznik czasowy, chyba że istnieje jakiś inny sposób, fotokomórka odpada bo kocur jak zauważy że działa to będzie co chwile podżerać, a tak 2 x dziennie po małej porcji x cały tydzień. Przycisk też wchodziłby  w grę bo są takie karmniki z klapką, do której zamontowałbym przycisk, tylko nie wiem czy kocur będzie na tyle pojętny i nauczy się naciskać klapkę, ale można zaryzykować. Dzięki serdeczne za zainteresowanie się sprawą.

Link do komentarza
Share on other sites

@pocjan to masz tutaj dwie opcje - albo zrobić to porządnie w taki sposób, że dodasz tam zegar czasu rzeczywistego (RTC) i układ będzie o stałych godzinach uruchamiał mechanizm. Albo możesz też obejść ten problem robiąc coś takiego, że serwomechanizm będzie poruszał się raz po włączeniu zasilania, a cały układ podłączysz przez zasilacz, który... będzie wpięty do jakiegoś smart gniazdka z opcją tworzenia harmonogramów.

Drugie rozwiązanie to straszna prowizorka, ale jeśli nie chcesz nauczyć się programowania Arduino i zakup takiego gniazdka nie robi Ci różnicy to będzie to dla Ciebie po prostu najłatwiejsze rozwiązanie. Daj znać, w którą stronę chcesz iść, bo nie wiem czy po prostu chcesz mieć taki działający "karmnik", czy chcesz się nauczyć programowania Arduino, a to jest tylko przykładowy projekt 🙂

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

ze względu na prostotę skłonny raczej będę do opcji 1b, czyli z wykorzystaniem wyłącznika czasowego (mam go na stanie, zasilacz 9V 1A też), który będzie uruchamiał serwomechanizm,   , opcja 1a jest ciekawa, jeśli to nie byłoby trudne do wykonania poszedł bym także w tym kierunku powiedzmy sobie z ciekawości, może trochę poczytam w zimowe długie wieczory i potem podejmę próby, dzięki za ukierunkowanie. 🙂

Edytowano przez pocjan
korekta
  • Lubię! 1
Link do komentarza
Share on other sites

W takim razie, jeśli układ ma zadziałać raz po włączeniu to w praktyce wystarczy, że przeniesiesz zawartość funkcji loop na koniec funkcji setup 😉 

Link do komentarza
Share on other sites

dzięki za pomoc, wracając do wersji pierwszej chciałbym się dowiedzieć w jaki sposób  kod zegara RTC  wstawić do kodu serwomotoru, mniej więcej czuję temat, wiem że dzwonią, tylko nie wiem w jakim kościele

Link do komentarza
Share on other sites

@pocjan niestety to nie działa w taki sposób, że weźmiesz jeden kod, wkleisz w drugi i zadziała. Całkowicie rozumiem Twój punkt widzenia, bo wiem, że dopiero zaczynasz. Jednak naprawdę nie ma większego sensu, aby robić to taką metodą prób i błędów. Musiałbyś przynajmniej przejść przez zawartość tego kursu Arduino. Mówię to na bazie XX lat obserwacji innych początkujących. Tylko się zniechęcisz podczas takich ślepych prób 😉

Link do komentarza
Share on other sites

Może poszukaj gotowca do odczytu godziny z RTC, czy ustawiania alarmu (wbudowanego, jeśli jest albo lepiej modułu - dokładniejszy) i wtedy taki kurs przyspieszony modyfikacji gotowca, żeby PWM dorobić do obsługi serwomechanizmu - "kilka" linijek do tego dopisać. Obsługa GPIO (PWM), jakiś warunek, pętla, na bieżąco możesz się doszkolić, co potrzebne i osiągnąć cel.

Edytowano przez matsobdev
  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.