Skocz do zawartości

Wykrywanie przeciążeń (ATtiny 2313, L293D)


Resires

Pomocna odpowiedź

Steruję silniczkiem z CDromu za pomocą attiny'ego poprzez mostek L293D. Chciałbym dodać funkcję, która w razie zablokowania się mechanizmu wykryła zwiększony prąd silnika. Ponoć można to robić za pomocą wejścia ADC, lub pośrednio - mierząc napięcie komparatorem na jakimś rezystorze włączonym szregowo w obwód silnika.

Nie wiem które rozwiązanie jest lepsze. Przy normalnej pracy silnik pobiera 40 mA, gdy się zatrzyma wzrasta do 160 mA. Ideałem by było, gdyby np od 80 była sygnalizacja ostrzegawcza.

Link do komentarza
Share on other sites

Trochę kiepski zestaw do realizowania tego typu funkcji. Raz - ATtiny2313 nie ma przetwornika ADC, jedynie komparator, a dwa - L293D nie ma możliwości podpięcia rezystorów do pomiaru prądu, tak jak to jest w przypadku L298. Przy tak małych prądach przydałby się jeszcze jakiś układ wzmacniający...

Link do komentarza
Share on other sites

Teoretycznie mógłbym zmienić uC - mam socket na 28 pinów, a ATtiny ma tylko 20. W praktyce jednak wolałbym zostać przy tym - musiałbym od nowa konfigurować piny oraz zmieniać połączenia.

A gdyby w lini między silnikiem a mostkiem wpiąć mały rezystor, można by użyć na nim komparatora?

Link do komentarza
Share on other sites

musiałbym od nowa konfigurować piny oraz zmieniać połączenia

Programujesz w asm, czy w czym problem? W kwestii połączeń rozumiem, że chodzi o zasilanie? Tego akurat faktycznie się nie przeskoczy, chyba że estetyka PCB nie jest dla Ciebie najważniejsza.

W kwestii Twojego problemu - można by to zrobić chociażby na wzmacniaczu operacyjnym w identyczny sposób, jak na naszym forum nieraz ludzie dodają transoptory do robota. Poszukaj w gotowych konstrukcjach linefollowerów budowanych na Attiny2313, wtedy granicę możesz ustawić potencjometrem lub odpowiednim rezystorem. Nie jestem pewien, czy komparator w uC wystarczy do takiego zastosowania - nie myślę już, za późna pora 🙂

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

Na pewno wezmę to pod uwagę przy kolejnym projekcie.

Mam jeszcze taki problem:

Znalazłem taki kod na PWM

DDRB |= (1<<PB2);              	  // USTAWIA OC0A JAKO WYJŚCIE
TCCR0B = 0;                     	 // ZATRZYMUJE TIMER 0
TCCR0A = (1<<WGM00)|(1<<WGM01);     // WYBIERA TRYB FAST PWM MODE 3
TCCR0A |= (1<<COM0A1);         		
OCR0A = 0X0F;                   	//WYPEŁNIENIE USTAWIONE NA 50%
TCCR0B |= (1<<CS00);    

Nie mogę jednak odszyfrować, co robi linia czwarta oraz szósta.

Link do komentarza
Share on other sites

Nie mogę jednak odszyfrować, co robi linia czwarta oraz szósta.

Nie możesz odszyfrować, bo to jedyne linijki, których autor nie skomentował, a Ty nie zaglądasz do datasheet, by się dowiedzieć co one robią. Zaglądnąłem więc za Ciebie i znalazłem, że COM0A1 ustawi:

Clear OC0A on Compare Match, set OC0A at TOP

a CS00:

clkI/O/(No prescaling)

czyli preskaler o wartości 1:1

Bez czytania datasheet daleko nie zajedziesz 🙂

Link do komentarza
Share on other sites

Nie mogę jednak odszyfrować, co robi linia czwarta oraz szósta.

Nie możesz odszyfrować, bo to jedyne linijki, których autor nie skomentował

Kod akurat znalazłem bez komentarzy, osobiście je dopisywałem.

Zaglądnąłem więc za Ciebie i znalazłem, że COM0A1 ustawi:
Clear OC0A on Compare Match, set OC0A at TOP

a CS00:

clkI/O/(No prescaling)

czyli preskaler o wartości 1:1

Może źle się wyraziłem. Nie rozumiem, dlaczego jest raz TCCR0A, albo TCCR0B

Link do komentarza
Share on other sites

Powracając do tematu wykrywania przeciążenia silniczka to można sobie jednak wyobrazić układ wykorzystujący komparator z attiny. W szereg z zasilaniem układu L293D (Vcc2)włączyłbym rezystor "pomiarowy". Będzie przez niego płynął cały prąd silnika niezależnie w którą stronę ten się obraca plus niestety prąd samego L293 zaciemniający "obraz całości", ale jego zmiany na poziomie 10mA nie powinny uniemożlwić działania. Normalnie powinno się zdjąć z tego rezystora napięcie wzmacniaczem pomiarowym, odnieść je do masy i zapodać na komparator. Jednak przy założeniu, że zasilanie jest w miarę stałe a różnica prądów w czasie normalnej pracy i podczas zatrzymania jest duża, być może wystarczyłoby przepuścić napięcie z nóżki Vcc2 przez dzielnik napięcia tak, by dopasować je do zakresu pracy komparatora, odfiltrować kondensatorem i wpuścić do attiny. Do drugiego wejścia komparatora trzeba by podłączyć wtedy napięcie np. z małego potencjometru i ustawić tak by komparator odpalał swoje wyjście gdy silnik stoi. Oczywiście tak prosty układ bez wzmacniacza ma wadę w postaci większego rezystora i większych strat ale przy prądach rzędu dziesiątek mA być może można się z takimi staratmi pogodzić. Hm? O, przyszło mi jeszcze do głowy, że gdyby na drugie wejście podać również poprzez dzielnik i filtr napięcie zasilania, mielibyśmy kompensację wpływu rozładowywania się akumulatora. Wszystko możnaby dokładnie policzyć, łącznie z wpływem dryftów (termicznych i od napięcia wspólnego) wejściowego napięcia niezrównoważenia samego komparatora ale to tylko taka zajawka idei. Czy temat jest wciąż aktualny?

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.