Skocz do zawartości

EHR - ATtiny84 sterujące rozdzielaczem hydraulicznym


Waldy

Pomocna odpowiedź

Ech... obaj jesteśmy dobrzy. Ja stary ślepak, o Tobie się nie wypowiem bo @Treker znowu uzna że to sprzeczne z polityką 🙂

Fragment:

if(stanG == LOW) {
    przyciskg == LOW;
  }
    else {
      przyciskg == HIGH;
    }
   
   

jest kompletnie bez sensu.

Po pierwsze: przyciskg to jest stała zdefiniowana, czyli wychodzi na coś takiego:

if(stanG == 0) {
	3 == 0;
} else {
	3 == 1;
}

Oczywiście ten fragment nie robi absolutnie nic (bo nigdzie się nie używa wyniku sprawdzenia czy przypadkiem 3 nie jest równe jeden), więc kompilator najprawdopodobniej w ogóle ten fragment usuwa.

 

Tyle że dalej zaczyna być ciekawie:

if (przyciskg == LOW) {                //wcisnięty przycisk w górę
   if (pozycja < sterowanie - hist) 
     jazda = 1;                                                                     
   }

Jak już wspomniałem, przyciskg to stała 3, czyli w efekcie pierwsza linijka to:

if (3 == 0) {

skrócone do:

if (false) {

czyli w efekcie znowu kompilator pomija całego ifa (jako że dość rzadko się zdarza, aby 3 było równe 0) i w efekcie jazda zawsze jest 0.

A wystarczyło wywalić te pierwsze bezsensowne konstrukcje, a drugą zastąpić:

if (stanG == LOW) {                //wcisnięty przycisk w górę
   if (pozycja < sterowanie - hist)
     jazda = 1;                                                                     
   }
   
    if (stanD == LOW ) {            //wcisnięty przycisk w dół
    if(pozycja > sterowanie + hist)
     jazda = -1;    
   }

I co mamy w efekcie?

Aha, żeby nie było: ponieważ już sam sobie nie wierzę, na wszelki wypadek wrzuciłem to na Arduino. Zgodnie z oczekiwaniami działa.

Edytowano przez ethanak
  • Pomogłeś! 1
Link do komentarza
Share on other sites

To można powiedzieć tak Waldy you...   i będzie sprawiedliwie 😄 

Dziękuje za rozwiązanie zagadki -> tutaj musiał zadziałać prawdziwy majster a nie taki rzemieślnik jak ja...

Kolejne wyzwanie przeskalowanie potencjometru(czujnika) na kąt 70 stopni,może być ciekawie  ^^.

 

 

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

Wrzuciłem z poprawkami i działa aż miło się patrzy ^^.

Tutaj pytanie chcę uzyskać kąt 70 stopni na czujniku - zakres pracy ramienia 0 -70 (orientacyjnie bo i tak pewnie wszystko się zweryfikuje na maszynie). 

Pomysł jest taki; fizycznie ustawić zadany kąt i odczytać wystawianą wartość ADC, później przeskalować ją do zakresu w jakim pracuje potencjometr zadający pozycje czyli 0 - 1023  tak żeby wykorzystać jego pełen zakres pracy/obrotu z uwagi na wygodę użytkowania. Czy warto by było zrobić na odwrót ? A może przeskalować obydwa potencjometry na "jakiś" wspólny zakres ? Chodzi mi o to żeby uzyskać relatywnie dobrą dokładność jeśli można to tak określić.

Link do komentarza
Share on other sites

Jakiś wspólny zakres musi być - czyli co najmniej jeden musi być przeskalowany. Który - jak wygodniej. 70° to w granicach 8 bitów, czyli dokładność i tak jest pewnie wyższa niż możesz osiągnąć swoją hydrauliką (pytanie: jaka to dokładność?).

Zawsze możesz zrobić jakieś mechaniczne przełożenie. Zresztą pisałeś wcześniej o czujniku nachylenia: jeśli chcesz go zastosować to trzeba podejść do tego nieco inaczej - czujnik podaje napięcie z zakresu 1 do 5V, środek ma na 2.5V (czyli tak niezupełnie pośrodku) i trzeba by było w jakiś sposób przeliczyć te jego wolty na stopnie 🙂

(po edycji)

A tak w ogóle to co kogo obchodzą te całe stopnie? Wajcha w dół na maksa, sprawdzamy ile podaje ADC, w górę na maksa, sprawdzamy drugi raz, a potem wystarczy map(x, DOL, GORA, 0, 1023) i porównać to z zadajnikiem...

Edytowano przez ethanak
  • Lubię! 1
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

Mały update tematu,wrzucam poprawiony kod programu (na płytce stykowej działa). Dodatkowo schemat oraz wstępny projekt płytki.Może komuś też się przyda bądź będzie rozwijał dalej temat według własnych upodobań 😉  Całość wykonana jest w EasyEDA 

Tutaj odnośnik do całości klik

Mile widziane sugestie co do schematu bądź wartości elementów,pozdrawiam Waldek.

Projekt_EHR_wersja_1.rar schemat.pdf

  • Lubię! 1
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.