Skocz do zawartości

Silnik z czujnikiem połozenia (EHR do ciagnika)


Rafi212

Pomocna odpowiedź

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ć.




     
            
   

			
		
Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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ś.

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

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ć

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

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

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.