Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino
SP9MRN Offline
MAc
*****

Liczba postów: 817
Dołączył: 29-08-2009
Post: #71
RE: Arduino
ok. sprawdź testowo czy biblioteka encodera jest poprawnie zainstalowana. najprościej - czy potrafisz skorzystać z przykładów dołączonych do biblioteki.
W jaki sposób ją zainstalowałeś (gdzie, czy zgadza się nazwa katalogu, itp)
MAc
28-09-2013 17:22
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,033
Dołączył: 20-09-2009
Post: #72
RE: Arduino
Dziękuję za zainteresowanie.Już, mam program skompilowany bez błędów.
Nie umiem kopiować katalogu.Tam gdzie jest do pobrania katalog encodera wszystkie pliki otwierałem i dopiero cały tekst kopiowałem do arduino.exe.Potem zapisywałem jako plik.Stworzyłem katalog Encoder_Polling i wszystkie pliki do katalogu.Katalog Encoder_Polling do katalogu libralies w katalogu arduino_1.0.5.
Coś pisałeś o instalowaniu.Pobrałem arduino do windows ver.1.0.5. rozpakowałem i to wszystko.klikam na arduino.exe i od razu jestem w otartym okienku.Mam drugą wersję tego programu którą dostałem przy zakupie arduino uno na CD i tą wersję się instaluje.Która jest dobra tego nie umiem określić.Obecnie wykorzystuję wersję bez instalacji pobraną z arduino.Na niej testowałem miganie diody.Teraz biorę się za montaż drutowy .Trzeba to wszystko do kupy połączyć,ale już jestem zadowolony.Mam skompilowany program.Robię to wszystko na laptopie LENOVO w systemie XP.Już jestem bogatszy w wiedzę.Mac, dziękuję za zainteresowanie.Pozdrawiam

Andrzej
28-09-2013 18:05
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9MRN Offline
MAc
*****

Liczba postów: 817
Dołączył: 29-08-2009
Post: #73
RE: Arduino
Na przyszłość - na githubie - tam gdzie ściągałeś encoder, po prawej stronie na dole jest przycisk "download ZIP". ściągasz nim całą bibliotekę. W środku jest katalog o nazwie takiej jak nazwa biblioteki - i cały katalog wrzucasz albo do folderu "libraries" w katalogu z rozpakowanym "arduino IDE" albo do katalogy "libraries" w folderze z Twoimi projektami.
Ja wrzucam do własnego katalogu, bo mi się wtedy nie mieszają oryginalne biblioteki z dodatkowymi i nie gubię się w czasie aktualizacji.
Uwaga - czasami zdarza się, że nazwa katalogu z Githuba nie zgadza się z nazwą bibloteki i trzeba ją zmienić - ale w tym przypadku jest poprawnie.

MAc
mrn
30-09-2013 10:51
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,033
Dołączył: 20-09-2009
Post: #74
RE: Arduino
Witam Maćku.Dzięki. Wykonałem wg twojej instrukcji i katalog oryginalny jest już pobrany, rozpakowany i siedzi na swoim miejscu.Mam takie efekty na wyświetlaczu na dolnej linijce 10.000.000MHz, na górnej STEP= 10,100,1000,10000,10,100,1000 cały czas wędruje.Coś trzeba chyba zrobić z pinem 6.
int encoderPin_A = 4;
int encoderPin_B = 5;
int PushButt = 6; // pin encodera PushButton
To jest zmiana kroku,ale na co zamknąć ten przełącznik. Na zdjęciach nie widać.Są tam jakieś rezystory i kondensatory
Może Ktoś ma jakieś sugestie.Za wszystko dziękuję.

Andrzej
30-09-2013 13:16
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9MRN Offline
MAc
*****

Liczba postów: 817
Dołączył: 29-08-2009
Post: #75
RE: Arduino
wieczorem popatrzę
Istotny jest ten kawałek:

void obsluga_buttona()
{
if (digitalRead(PushButt))
{
// nie wcisniety - nierob nic
}
else
{
//wcisniety
.............................................
}

Z niego wynika, że jeżeli button jest 1 (high) to ma nie robić nic, jeżeli low, to z każdym kolejnym naciśnięciem zmienia krok. U ciebie wisi w powietdzu, zatem skacze po kolejnych krokach.
W kodzie nie widzę, żeby był wewnętrznie podciągany, zatem wystarczy podłączyć go (tzn pin6) przez 10k do plusa i przestanie skakać.
Generalnie tak:
1. 10k do +
2. druki koniec opornika do pin6
3. włącznik między pin6 a masą

no pierwszy rysunek w ulubionej magicznej książce:
http://pgdev.pighixxx.com/ABC/SET/s1.pdf

tu są wszystkie:http://www.pighixxx.com/abc-arduino-basic-connections/ wystarczy klinąć w numerek "seta" to się pdf ściągnie.
Polecam wszystkim.


73
MAc
(Ten post był ostatnio modyfikowany: 30-09-2013 15:28 przez SP9MRN.)
30-09-2013 14:58
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,033
Dołączył: 20-09-2009
Post: #76
RE: Arduino
Idzie jak po sznurku.Twoja instrukcja działa. Po włączeniu jest 10Hz i trzyma.Dopiero po krótkim zwarciu do gnd następuje zmiana na 100Hz.I tak dalej.Myślę,że pin4 i pin5 też trzeba podciągnąć przez 10k do +5V i podłączyć impulsator. Później kupię prawdziwy encoder copal.Mam w tej chwili podłączone:arduino uno, I2C, wyświetlacz 1602, przycisk (zmiana kroku), skompilowany i wgrany program.Zostało podpiąć impulsator (mam taki za 3zł) i moduł AD9850.Pozdrawiam.

Andrzej
30-09-2013 16:39
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9MRN Offline
MAc
*****

Liczba postów: 817
Dołączył: 29-08-2009
Post: #77
RE: Arduino
na pierwszy rzut oka w kod - to encoder jest normalnie - wspólnym do masy a A i B do odpowiednich nóg. może nawet jest to bez znaczenia bo ciągle porównuje stan poprzedni (przed obrotem) z obecnym.

dodatkowo do poprzedniego posta:

Zamiast podłączania dodatkowego rezystora można włączyć wewnętrzny rezystor w Arduino. Spełni tą samą funkcję co zewnętrzny - potrzebna jest dodatkowa linijka kodu:

digitalWrite(PushButt, HIGH);

wpisana zaraz po:
pinMode(PushButt, INPUT);

ona ustawia na tym pinie stan wysoki. Podłączamy tylko przycisk do masy.
Dolny rysunek pod napisem "using internal pullups" w załączonym pedeefie.

MAc
mrn
(Ten post był ostatnio modyfikowany: 30-09-2013 17:32 przez SP9MRN.)
30-09-2013 17:32
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,033
Dołączył: 20-09-2009
Post: #78
RE: Arduino
Wykonane.Jest HIGH i działa.Jest jeszcze jeden problem.Podczas weryfikacji

int dir = encoder_data(); //sprawdz Encoder
if(dir > 0) //jeśli w prawo to ...
{
Freq = Freq + Krok; //zwieksz f o krok
}
else if (dir { TU POKAZUJE BŁĄD
Freq = Freq - Krok; //zmniejsz f o krok
}
else
{
}

delay(50);
tak dopisałem
else if (dir < 0)
{
i to zweryfikowało.

Andrzej
(Ten post był ostatnio modyfikowany: 30-09-2013 20:29 przez SP6AUO.)
30-09-2013 20:29
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9MRN Offline
MAc
*****

Liczba postów: 817
Dołączył: 29-08-2009
Post: #79
RE: Arduino
Dokładnie tak - ewidentnie zjedzony przy kopiowaniu na stronę kawałeczek kodu.
widać to wyraźnie wskutek przesunięcia klamry do górnej linijki.
;-)

MAciek
30-09-2013 21:21
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6AUO Offline
Andrzej
*****

Liczba postów: 1,033
Dołączył: 20-09-2009
Post: #80
RE: Arduino
Witam Maćku.Mam jeszcze taki problem.Górna linijka świeci,a dolna cały czas mruga.
Czy znajdzie się na to jakaś rada.

Andrzej
02-10-2013 7:24
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 3 gości