Skocz do zawartości

Manipulator sterowany potencjometrami


Dotli

Pomocna odpowiedź

Nawyk daj koledze możliwość popisania, bo chyba nie ma z kim pogadać w domu. Inaczej obiadu jutro nie dostaniesz! >.<

Buziaczki Misiu =** 😋

__________

Komentarz dodany przez: Treker

No, piwko poszło - ktoś tu musi pilnować porządku 😉

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

Witam ,

Po kilku dniach przyszły do mnie wszystkie części , zamówiłem jeszcze taki programator stk200 . Mam nadzieje że się spisze , podczas przerwy wykonałem płytki :

1.

2.

Chciał bym żebyście w chwili wolnego czasu mogli sprawdzić czy dobrze wykonałem płytkę bo wykonuje projekt płytki 2 raz w życiu . Już od poniedziałku biorę się za program

Doklejam schemat , zapomniałem sorry :

https://www.forbot.pl/forum/upload_img/obrazki/IMG_4cd3138d801625471.jpg

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

autorouterm ? Jakie zworki tak jest źle ?

No to mi wygląda na robotę autorotera. Ścieżki cienkie i do tego pod takimi a nie innymi kątami. Najprościej zworkę zrobić prowadząc ścieżki w warstwie niebieskiej (bootom), dojeżdżasz do jakiegoś miejsca odkąd ma być zwora i przerzucasz się na warstwę czerwoną (top), robisz zworkę i na powrót myk na niebieską.

Link do komentarza
Share on other sites

Może odświeżam stary temat, ale właśnie miałem potrzebę sterowania sobie serwem o jakieś wychylenie z wygodną możliwością zmiany, zrobiłem na potencjometrach i nie mam pojęcia skąd się wzięły 3 strony w tym temacie, skoro to takie proste... Odczytujemy wartość przez ADC, dzielimy odpowiednio, dodajemy liczbę która jest minimalną możliwością wychylenia serwa, jeżeli dobrze podzieliliśmy to nie przekroczy maksymalnej i to wszystko. Zajęło mi to 30s. Jeżeli by te serwa i potencjometry odpowiednio zamontować mechanicznie to mamy manipulator - koniec projektu.

Link do komentarza
Share on other sites

Witam ,

Zaczynam już właśnie pisac program w Bascomie i tutaj jest problem . Znalazłem w sieci taki kod :

$regfile = "m8def.dat"
$crystal = 1000000

Config Portd = &B11111111
Config Portb = &B00000011

Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc

Dim Vu As Byte                          ' wartosc diod dla chwilowej wartosci
Dim Hold As Byte                        ' wartosc diody dla opcji hold
Dim Hold_time As Byte                   ' czas w jakim opada hold
Dim Sample As Word                      ' wartosc odczytana z przetwornika

Dim Wtemp As Word
Dim Temp_portd As Byte                  ' tymczasowa zawartosc PORTD
Dim Temp_portb As Byte                  ' tymczasowa zawartosc PORTB

Do
 Waitms 5

Convert:
 Sample = Getadc(0)                    ' pobierz napiecie z ADC0
 Select Case Sample                    ' przeskaluj na ilosc diod
   Case 0 To 10 : Vu = 0
   Case 11 To 112 : Vu = 1
   Case 113 To 214 : Vu = 2
   Case 215 To 316 : Vu = 3
   Case 317 To 418 : Vu = 4
   Case 419 To 520 : Vu = 5
   Case 521 To 622 : Vu = 6
   Case 623 To 724 : Vu = 7
   Case 725 To 826 : Vu = 8
   Case 827 To 928 : Vu = 9
   Case 929 To 1023 : Vu = 10
 End Select

Hold_peak:
 If Vu >= Hold Then                    ' jesli przetworzona wartosc wieksza niz zapamietana max
   Hold = Vu                           ' to przypisz max nowa wartosc odczytana
   Hold_time = 60                      ' i ustaw liczniczek czasu podtrzymania
 Else
   Decr Hold_time                      ' w przeciwnym wypadku wartosc max bedzie opadac
   If Hold_time = 0 Then               ' jesli liczniczek sie przekrecil
     Decr Hold                         ' opusc diode max o jeden
     Hold_time = 48                    ' i zmien czas po jakim ma opadac w nast. kroku
   End If
 End If

Displ:
 Wtemp = Lookup(hold , Hold_table)     ' czas na wyswietlanie
 Temp_portd = Low(wtemp)               ' wg danych z linii data
 Wtemp = Lookup(vu , Vu_table)
 Temp_portd = Temp_portd And Low(wtemp)       ' po prostu zmiksuj dane chwilowej wartosci z max

 Wtemp = Lookup(hold , Hold_table)
 Temp_portb = High(wtemp)
 Wtemp = Lookup(vu , Vu_table)
 Temp_portb = Temp_portb And High(wtemp)

 Portd = Temp_portd                    ' jak dane gotowe to na porty!
 Portb = Temp_portb
Loop

End

Vu_table:
 Data &B0000001111111111%
 Data &B0000001111111110%              '1
 Data &B0000001111111100%              '2
 Data &B0000001111111000%              '3
 Data &B0000001111110000%              '4
 Data &B0000001111100000%              '5
 Data &B0000001111000000%              '6
 Data &B0000001110000000%              '7
 Data &B0000001100000000%              '8
 Data &B0000001000000000%              '9
 Data &B0000000000000000%              '10

Hold_table:
 Data &B0000001111111111%
 Data &B0000001111111110%              '1
 Data &B0000001111111101%              '2
 Data &B0000001111111011%              '3
 Data &B0000001111110111%              '4
 Data &B0000001111101111%              '5
 Data &B0000001111011111%              '6
 Data &B0000001110111111%              '7
 Data &B0000001101111111%              '8
 Data &B0000001011111111%              '9
 Data &B0000000111111111%              '10 
Czy przy swoim projekcie tez muszę użyc funkcji Config Adc , czy powyzszy kod przy odpowiednim przerobieniu spisał by sie przy moim projekcie ?

__________

Komentarz dodany przez: Sabre

Na przyszłość proszę o zamieszczanie programu w znacznikach code.

Link do komentarza
Share on other sites

Config ADC musisz, natomiast nie mam pojęcia dlaczego ten kod jest aż tak pokomplikowany. Zaraz zamieszczę swój.

[ Dodano: 28-11-2010, 20:42 ]

Myślę że opis jest zbędny.

$regfile = "m8def.dat"
$crystal = 10000000
$baud = 4800

Config Portb.1 = Output
Config Portb.2 = Output

Dim A As Integer
Dim B As Integer

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Config Servos = 2 , Servo1 = Portb.1 , Servo2 = Portb.2 , Reload = 8

Start Adc
Enable Interrupts


Servo(1) = 120   'wartość zerowa serwa, należy ustawić samemu
Servo(2) = 120


Do

A = Getadc(5)
B = Getadc(4)
A = A / 8.5
B = B / 8.5
A = A + 60
B = B + 60

Servo(1) = A
Servo(2) = B

Print "A:" ; A ; "  B" ; B

Loop
End

Odczyt z ADC jest 0-1023. Dzieląc przez 8,5 uzyskałem zakresy wychyleń mojego serwa. Serwo nie wychyla się od parametru równego 0, dlatego dodałem 60 jako minimalną wartość wychylenia dla mojego serwa - maksymalna jest wtedy 180 (wychylenie + 60). Teraz kombinuj sam.

Link do komentarza
Share on other sites

Witam ,
Mam problem z zaprogramowanie Atmegi po przez programator stk200 , robie wszystko zgodnie z ta instrukcja :

http://mirley.firlej.org/jak_zaprogramowac_pierwszy_avr?page=2

i gdy daje hip->Identify wyskakuje taki komunikat :

Nie wiem w czym tkwi problem proszę o szybką odpowiedz , bo właśnie się z tym męcze

[ Dodano: 12-12-2010, 14:22 ]

jeszcze jedno gdy daje program chip wyskakuje taki komunikat :

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.