Rafi212 Napisano Lipiec 10, 2016 Udostępnij Napisano Lipiec 10, 2016 Witam czy takim programem który napisałem będę mógł regulować pozycje w której silnik ma sie zatrzymać int dlugosckreceniawlewo = 0; //A5 int dlugosckreceniawprawo = 0; //A4 int czujnikpozycji = 0; //A3 void setup() { pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); } void loop() { dlugosckreceniawlewo = analogRead(A5); dlugosckreceniawprawo = analogRead(A4); czujnikpozycji = analogRead(A3); if (digitalRead(9) == HIGH){ if (dlugosckreceniawlewo > czujnikpozycji){ digitalWrite (7, HIGH); digitalWrite (8, LOW); }else if (dlugosckreceniawlewo < czujnikpozycji){ digitalWrite (7, LOW); digitalWrite (8, HIGH); } } else if (digitalRead(10) == HIGH){ if (dlugosckreceniawprawo > czujnikpozycji){ digitalWrite (7, LOW); digitalWrite (8, HIGH); }else if (dlugosckreceniawprawo < czujnikpozycji){ digitalWrite (7, HIGH); digitalWrite (8, LOW); } } } proszę o pomoc ponieważ nie moge sobie z tym poradzić __________ Komentarz dodany przez: Treker Kod programu, dla lepszej czytelności, należy umieszczać w tagach . Proszę to poprawić.
marek1707 Lipiec 10, 2016 Udostępnij Lipiec 10, 2016 Ale konkretnie z czym nie możesz sobie poradzić? Co to jest czujnik pozycji? Potencjometr? Co to za silnik? Co napędza?
Rafi212 Lipiec 10, 2016 Autor tematu Udostępnij Lipiec 10, 2016 chce poruszać za pomocom silniczka pewna dźwignia ale za każdym razem chce zmieniac jak daleko ma się odchylic w prawo lub w lewo jeden przycisk będzie od ruchu w lewo a drugi w prawo a czujnik to potencjometr który bedzie widział pozycje dźwigni jeszcze beda 2 potencjometry z pomocą których bede sobie wybierał pozycje jak daleko ma sie odchylić dźwignia w prawo np. 4 cm a w lewo 2 cm a silnik jest od wycieraczek z samochodu mostek h mam na 2 przekaźnikach zwierno rozwiernych i załączam je przez tranzystory
marek1707 Lipiec 10, 2016 Udostępnij Lipiec 10, 2016 No dobrze, na razie napisałeś co chcesz zrobić - to już wiemy i nie wydaje się to wielkim wyzwaniem. A teraz napisz (jak najdokładniej) jak działa to co już zrobiłeś i jaki masz z tym problem, czego próbowałeś żeby to poprawić i na jakim etapie się poddałeś.
Rafi212 Lipiec 10, 2016 Autor tematu Udostępnij Lipiec 10, 2016 Gdy wszystko podłączyłem to silniczek kręcił tylko w jedna strone i bez przerwy a arduino sie bardzo szybko grzało.Chciałem tylko aby ktos sprawdził czy to co napisałem będzie działać tak jak ma lub czy można to jakos lepiej napisać
marek1707 Lipiec 10, 2016 Udostępnij Lipiec 10, 2016 Skoro podłączyłeś i coś się dziwnie grzało to tu jest być może pierwszy problem. Na razie nie myśl o programie tylko pokaż schemat tego Twojego urządzenia i może opisz z czego je zasilałeś, jakieś zdjęcie? Układ przede wszystkim powinien być poprawny elektrycznie. Dopiero później możesz zacząć bawić się w programowanie.
Rafi212 Lipiec 10, 2016 Autor tematu Udostępnij Lipiec 10, 2016 zasilanie z akumulatora 12 v co znaczy poprawny elektrycznie ?
marek1707 Lipiec 11, 2016 Udostępnij Lipiec 11, 2016 To znaczy, że wszystkie elementy do siebie pasują, że zasilania mają poprawne poziomy, a wyjścia jednych bloków poprawnie sterują wejściami następnych. Jest mnóstwo takich reguł a wszystkie razem składają się na ogromną wiedzę. Nie sposób podać chociaż niewielkiej części, bo trzeba by napisać kolejny podręcznik elektroniki. Umiesz narysować schemat tego co zrobiłeś? Przecież powinieneś go stworzyć zanim dotknąłeś się do lutownicy, jakoś musiałeś to połączyć wiec co za problem wrzucić rysunek tutaj? Co tam się grzeje? Jak podłączyłeś przekaźniki? Jak potencjometry? Sam procesor będzie poprawnie wykonywał program (nikt nie twierdzi, że bezbłędny) tylko wtedy gdy sprzęt będzie OK. Jeśli coś zrobiłeś głupio lub niezgodnie z zasadami, to nawet najlepszy program nie pomoże. Dlatego musimy zweryfikować Twoje urządzenie zanim zabierzemy się za analizę programu. Dawaj schemat. Narysuj swoje Arduino, dodaj potencjometry, przekaźniki, zasilanie, silniki, połącz to wszystko kreskami tak jak idą kable i powstawiaj nazwy użytych elementów tak by można je było jednoznacznie identyfikować i poznać ich parametry z dokumentacji producentów. Pomyśl: jeśli na schemacie będzie źle podłączony potencjometr, to możemy do śmierci szukać błędu w programie i proponować kolejne zmiany a i tak pomiary napięcia nie będą się udawać więc cały algorytm działać nie będzie. To samo z przekaźnikami i wszystkim innym.
Rafi212 Lipiec 11, 2016 Autor tematu Udostępnij Lipiec 11, 2016 Przylutowałem tylko nóżki od przekaźnika do przewodów a reszta była na płytce stykowej która była w zestawie z arduino Tranzystory to bc547
marek1707 Lipiec 11, 2016 Udostępnij Lipiec 11, 2016 To jeszcze zostały Ci do opisania oporniki i przekaźniki. O silnik nie pytam jest mniej ważny, choć byłoby dobrze wspomnieć co to za jeden. Napisałeś, że zasilasz to z 12V, ale ja widzę dwie szyny zasilania (linie 15 i 30). Do czego je podłączyłeś? I do czego podłączyłeś masę (linia 31) i zasilanie (linia 15) w ECU? I czy "ECU" to Arduino? Jakie? Weź się ogarnij, mam po kolei wyciągać każdą informację bo nie raczysz napisać od razu? Chcemy pomóc, szukamy błędu, wszystko jest ważne. Zdjęcie kartki papieru nie musi ważyć ponad 2 magabajty, możesz je obcinać i skalować. Nie wszyscy mają internet po światłowodzie..
piter161 Lipiec 11, 2016 Udostępnij Lipiec 11, 2016 Rafi212, Jeśli myślę o tym co chcesz zrobić czyli o EHR, to pomyśl może również o szybkości poruszania tego silniczka. 1
Rafi212 Lipiec 16, 2016 Autor tematu Udostępnij Lipiec 16, 2016 Tak chce zrobić ehr. Tylko czy ten program jest dobrze napisany. [ Dodano: 16-07-2016, 13:40 ] Poprawiłem program ale podczas testów zamiast silnika i tranzystorów podłączyłem dwie diody i po naciśnięciu świeciła sie jedna ale nie gasła wtedy gdy sygnał z potencjometru (czujnika) był taki sam ja z potencjometru do regulacji i nie wiem dlaczego a tu program poprawiony : int regulacjapodnoszenia = 0; //A5 int regulacjaopuszczania = 0; //A4 int czujnikramion = 0; //A3 void setup() { digitalWrite(11, HIGH); // zasilania na potencjometry digitalWrite(12, HIGH); digitalWrite(13, HIGH); pinMode(7, OUTPUT); //sterowanie pinMode(8, OUTPUT); // sterowanie pinMode(9, INPUT_PULLUP); //PODNOSZENIE pinMode(4, INPUT_PULLUP); //OPUSZCZANIE } void loop() { regulacjapodnoszenia = analogRead(A5); regulacjaopuszczania = analogRead(A4); czujnikramion = analogRead(A3); if (digitalRead(9) == LOW){ if (regulacjapodnoszenia > czujnikramion){ digitalWrite (8, HIGH); }else if (regulacjapodnoszenia < czujnikramion){ digitalWrite (7, HIGH); } else if (regulacjapodnoszenia = czujnikramion){ digitalWrite (7, LOW); digitalWrite (8, LOW); } } else if (digitalRead(4) == LOW){ if (regulacjaopuszczania > czujnikramion){ digitalWrite (8, HIGH); }else if (regulacjaopuszczania < czujnikramion){ digitalWrite (7, HIGH); }else if (regulacjaopuszczania = czujnikramion){ digitalWrite (7, LOW); digitalWrite (8, LOW); } } } __________ Komentarz dodany przez: Treker Kod programu, dla lepszej czytelności, należy umieszczać w tagach . Proszę to poprawić. [ Dodano: 16-07-2016, 21:22 ] Podłączyłem wszystko tylko że bez silnika,tranzystorów zamiast tego na piny od sterowania przekaźnikami dałem dwie diody i po naciśnięciu przycisku 1 dioda odpowiedzialna za ten przycisk się świeciło cały czas mimo tego że ja obracalem potencjometrem (powinna zgarnąć przy odpowiedniej wartości z potencjometru) niewiem dlaczego
Pomocna odpowiedź
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ę »