Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 lut 2025, o 22:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 16 kwi 2012, o 13:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

Witam,
posiadam płytkę startową Atnel. Chciałbym do niej podłączyć to serwo:
http://allegro.pl/serwo-tower-pro-micro ... 18681.html
W związku z tym ma kilka pytań.
Bez problemu mogę podłączyć to serwo do płytki, raczej w żaden sposób go nie spale, jeżeli podłącze w jakis niewłaściwy sposób?:D
Gdzie można znaleźć informacje jak takim serwem sterować oraz jak odbierać informacje ze sprzężenia zwrotnego? :)
Interesują mnie kody w C



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 14:15 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

serwo ma 3 przewody ...

+5V , GND i Signal

jak podłączysz odwrotnie zasilanie to oczywiście zamordujesz elektronikę

sterowanie natomiast to podawanie odpowiedniego sygnału na wejście Signal serwa z PWM
serwo nic nie wysyła wiec nic z niego nie odbierzesz:)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 14:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

A w jaki sposób zmieniać kierunek obrotów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 14:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

Kolega SunRiver pisał już co nieco o sterowaniu serwami, może nie w czystym C ale Arduino:

post890.html

Tutaj sporo informacji o serwach i ich sterowaniu.

http://www.societyofrobots.com/actuators_servos.shtml

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 14:30 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

ruben napisał(a):
A w jaki sposób zmieniać kierunek obrotów?


No to zajrzyj do byle linku w google - i szybko się zorientujesz jak zmieniać kierunek obrotów ;) .... chodzi o sterowanie szerokością impulsu w granicach (o ile się nie mylę i pamiętam) od 1,5ms do 2,5ms

gdy 2ms to stoi po środku
gdy 1,5ms to skręcone w lewo
gdy 2,5ms to skręcone w prawo

czasy mogłem pomylić ale zasada jest dokładnie taka

ciężko coś spalić podłączając servo. Jak pisał SunRiver to tylko 3 przewody. DWA z nich to zasilanie a trzeci to sygnał do logiki serwa i może iść bezpośrednio z pinu procka.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 14:34 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

no w praktyce to wygląda tak:

Obrazek

a reszta to bajka :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 15:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

Mam pomysł... można zaprzęgnąć takie serwo do pozycjonowania np. kolektorów słonecznych.
Kąt 120' .... praktyczny....ale napęd mechaniczny takiego serwa.... nie wiem czy da się zrobić w drugą stronę, duża przekładnia !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 15:47 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

oczywiście takie rozwiązanie stosuje w mojej balkonowej bateryjce
ale musisz pamiętać że serwa modelarskie są małe i do dużych i ciężkich rzeczy się nie nadają

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 16:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

SunRiver napisał(a):
oczywiście takie rozwiązanie stosuje w mojej balkonowej bateryjce
ale musisz pamiętać że serwa modelarskie są małe i do dużych i ciężkich rzeczy się nie nadają

Miałem na myśli użyć serwo jako czujnik położenia sprzęgnięty mechanicznie z zestawem obrotowym (o dowolnej wadze kolektorów).
Przemyślałem to i będę utrzymywał moje założenia, że podstawą pozycjonowania kolektorów słonecznych będzie tylko zegar-kalendarz !
Wykluczam wszelkie czujniki "opto" i inne.
Przecież cały kosmos oparty jest na zegarze. Zbędne są jakiekolwiek czujniki wykrywania, światła itp.
Wystarczy napisać odpowiedni program zgodny z kalendarzem astronomicznym ! w sterowaniu kolektorów słonecznych (grzanie wody).
Wystarczający jest kąt obrotu w azymucie (120',.... full to 270') i w elewacji (70'). Taki system można też zastosować do kolektorów fotowoltaicznych. Tak myślę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 16:57 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

a ja miałem na myśli że cała balkonowa bateryjka jest ustawiana przy pomocy serw modelarskich i ma 2 stopnie swobody.

tyle że moja nie śledzi światła jak ta tutaj :

http://www.youtube.com/watch?v=mFAsc1DcoFE

ale pozostałe aspekty działają na podobnej zasadzie i takiej mechanice :) temu nie musisz od razu atakować:)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2012, o 17:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

Zastosuj to realnie, do czego zmierzam... przedstawiłem założenia, to ma być jak PRALKA do użytku domowego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2012, o 14:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

Czyli, żeby podłączyć serwo wystarczy, że jego 3 wejścia podłącze do pinów na płytce od mikrokontrolera. Na jeden pin dam san wysoki, drugi będę modulował sygnał pwn a trzeci będzie miał stan niski i powinno działać?
Bo coś się nie rusza i nie wiem czy to źle podłączyłem czy kod błędny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2012, o 15:04 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

ruben napisał(a):
Czyli, żeby podłączyć serwo wystarczy, że jego 3 wejścia podłącze do pinów na płytce od mikrokontrolera. Na jeden pin dam san wysoki, drugi będę modulował sygnał pwn a trzeci będzie miał stan niski i powinno działać?


ABSOLUTNIE NIE !!!! Oj panie kolego ;) trzeba czytać - przecież masz WYRAŹNIE napisane.

Jaki stan niski i jaki stan wysoki ????? Dwa przewody SERWA to Z A S I L A N I E !!!!!! CZYLI NORMALNE +5V ORAZ GND

NIGDY NIE PODŁĄCZAJ TYCH PINÓW DO MIKROKONTROLERA JEŚLI NIE CHCESZ GO UŚMIERCIĆ ;)


ruben napisał(a):
Bo coś się nie rusza i nie wiem czy to źle podłączyłem czy kod błędny.


No no - coś się rusza ;) ..... pewnie jakby ktoś ciebie tak torturował jak ty procka - pewnie też byś się coś tam ruszał ;)

Przecież pisałem także ja zdaje się wyżej - że tylko jeden przewód do sterowania podłączasz do pinu mikrokontrolera .... skąd ci do głowy przyszedł ten stan niski i wysoki ? ;) ..... Zasilanie - panie kolego zasilanie - a przecież zasilanie też masz wyprowadzone na listwach kołkowych w zestawie uruchomieniowym prawda ? ;)

no - to podłącz jak należy i zobacz czy procek nie zesmażony już jest ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2012, o 15:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

Jestem bardzo początkujący :D Procek na szczęście ma się dobrze. O ile dobrze zlokalizowałem to VCC i GND znajdują sie na górze zestawu koło pokrętła od ostrości wyświetlacza LCD. jest tylko jeden problem jeżeli chodzi o te piny. Jak można zobaczyć na aukcji, której link dałem w pierwszym poście wszystkie 3 złącza są ze sobą połączone i ciężko mi będzie dostać każdym kabelkiem w inne miejsce na płytce ;) Chyba jedynym wyjściem będzie zakupienie jakiejś przedłużki do kabli tak, żeby każdy szedł osobno.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2012, o 15:54 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27360
Lokalizacja: Szczecin
Pomógł: 1042

Ok - rozumiem że początkujący - dlatego starałem się szybko odpowiedzieć żeby procek nie zginął w mękach ;)

A co do kabelków - no to niestety nie da radę bawić się w elektronikę nie mając pod ręką jakichś kabeków , kawałka lutownicy pod ręką, kombinereczek czy szczypiec itp itp

przecież możesz nawet w tym celu wykorzystać przewody połączeniowe które masz do zestawu. Wystarczy dwa z nich z jednej strony obciąć, pobielić cyną końcóweczki równo - i teraz już masz możliwość wpięcia się nimi z jednej strony (te pobielone końcówki) do dziurek zasilania w złączu serwa a środkowe tak samo możesz podłączyć Pan do pinu mikrokontrolera

no niestety trzeba pokombinować ;)

żadnych jakichś taki specjalizowanych przedłużek nie znajdziesz - nawet nie masz co marzyć o tym - to się robi z rzeczy, które się ma pod ręką

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2012, o 16:29 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

niestety musisz , albo sobie zrobić złączkę , albo po prostu rozciąć kabelki innego wyjścia niema

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2012, o 14:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

Pojawił się u mnie nowy problem dotyczący serw, więc żeby nie tworzyć nowego, pokrewnego tematu będę kontynuował tutaj ;)
Serwami steruje sobie bazując na tych liniach kodu.
Kod:
  TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);       
  TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10);

Wszystko ładnie działa. Mam podłączone 2 serwa i mogę nimi sterować odwołując się kolejno do OCR1A bądź OCR1B i wtedy poruszam któreś z nich.
Jednak potrzebowałbym podpiąć jeszcze 3 serwo. Nie wiem jednak co muszę teraz zrobić bo są tylko 2 kanały PWM.

Drugi problem jest taki, że w projekcie, który teraz tworzę posługuję się także bibliotekami dotyczącymi obsługi podczerwieni i wyświetlacza ledowego.
Jednak kod zaczyna się ze sobą gryźć. Biblioteka do podczerwieni także używa TCCR1B.
Próbowałem dlatego zmienić sterowanie serwami w ten sposób:
Kod:
TCCR2A|=(1<<COM2A1)|(1<<WGM21);
   TCCR2B|=(1<<WGM22)|(1<<CS22);

Ale nie działa, w ogóle nie jestem pewien czy za pomocą TCCR2B da rade sterować serwami. :roll:

Jak można rozwiązać te problemy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2012, o 14:56 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

hmmm dziwne trochę rzeczy piszesz z tego co wiem Atmega32 ma 4 kanały PWM sprzętowe , a na reszcie można zrobić programowe PWM
a zakładam że masz właśnie ATMega32

Sprzętowe masz na PINACH


Obrazek

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2012, o 15:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

mam atmega644PA, ale chyba się to pokrywa na obu mikrokontrolerach bo u siebie mam podłączone te dwa działające serwa do pinów PD4 i PD5 więc kolejne serwo wystarczy, że podłącze do ktoregoś ze wskazanych przez Ciebie pinów na schemacie i powinno działać. ;) Zaraz wypróbuje.
Jednak pozostaje jeszcze ten drugi problem. Jak uniknąć tego, że kod serwa gryzie się z kodem podczerwieni, która jest podłączona do pinu PD6? Ona również odwołuje się do TCCR1B.
Tak jak wyżej próbowałem przenieść serwa na TCCR2B, ale bezskutecznie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 maja 2012, o 15:24 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8610
Pomógł: 338

atmega 644 ma 6 kanałów sprzętowego PWM

Obrazek

w sumie nie bawiłem się jeszcze serwami z IR , więc bez kodu wiele nie pomogę

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 maja 2012, o 22:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

Kod:
   

   // ****** inicjalizacja *********
   DDRB &= ~KEY_PIN & ~KEY_PIN2 & ~KEY_PIN3;      // kierunek pinu PC6 - wejściowy
   PORTB |= KEY_PIN | KEY_PIN2 | KEY_PIN3;      // podciągnięcie pinu do VCC
 

  //Configure TIMER1
  TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11);        //NON Inverted PWM
  TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(1<<CS10); //PRESCALER=64 MODE 14(FAST PWM)





DDRB |= (1<<PB3);
// ustawienia TIMER2 w Fast PWM
   TCCR0A |= (1<<WGM01)|(1<<WGM00);      // tryb Fast PWM
   TCCR0A |= (1<<COM0A1) | (1<<COM0A0);            // clear at TOP
   TCCR0B |= (1<<CS00) | (1<<CS01);               // preskaler = 64



   

   ICR1=4999;  //fPWM=50Hz (Period = 20ms Standard).

   DDRD|=(1<<PD4) | (1<<PD5);   //PWM Pins as Out
 
   OCR1A=150;
   OCR1B=150;
   OCR0A=150;


To jest fragment odpowiedzialny za działanie serw. Serwa podpięte do pinów PD4 i PD5 działają. Jednak to podpięte do PB3 już nie. Co jest źle ustawione?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 maja 2012, o 23:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

Praktycznie używam aparatury MX-12. Moje hobby to modelarstwo.
Serwomechanizmy (serwa), są tu nieodzowne. Cieszy mnie temat, który poruszacie.
Oczekuję coś nowego, co nie ma w typowych nadajnikach firmowych.

A może nasz moderator utworzy dział modelarstwo ? czego nie ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 maja 2012, o 08:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 paź 2011
Posty: 48
Pomógł: 0

Udało mi się uruchomić 3 serwo :D Podłączyłem go do pinu PB7. Powstał jednak kolejny problem.
Serwa podpięte do pinów PB5 i PB4 ładnie płynnie działają natomiast to podpięte do PB7 straszni się trzepie przy poruszaniu. Chciałbym jakoś to zniwelować.
Przypuszczam, że chodzi częstotliwość. W kodzie mam taką linijkę:
Kod:
ICR1=4999;  //fPWM=50Hz (Period = 20ms Standard).

gdy zmniejszę wartość ICR1 to serwa podpięte do PB5 i PB4 też się trzęsą przy ruszaniu.
Jaki będzie odpowiednik ICR1 dla timera współpracującego z PB7 bo nie mogę się doczytać w dokumentacji? ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 mar 2013, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2012
Posty: 177
Pomógł: 9

A czy takie coś będzie działało? Trzy przyciski po naciśnięciu serwo obraca się w dane położenie?:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



bo jak próbuje to uruchomić to wszystkie przyciski kręcą w prawo

________________________

dodano:

ahhh już widzę gdzie mam błąd, zamiast:

PORTA |= 0xff;

powinno być:

PORTA &= ~0xff;



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO