Skocz do zawartości

Atmega8 + L293DNE


Special11

Pomocna odpowiedź

Witam, mam lekki problem, a mianowicie chcę podłączyć mostek H L293DNE do mikrokontrolera Atmega8. Teraz zrobiłem taki pre-schemat w którym nie uwzględniłem kilku szczegółów, chodziło mi tylko o podłączenie mostka do uC i zasilanie.

Myślę że to dobrze zrobiłem, sterowanie silnikami PD0 (1A) PD1 (2A) PD2 (3A) PD3(4A) i OC1A1 - PWM1 (1,2EN) OC1B1 - PWM2 (3,4EN).

Wyjścia PC0-PC3 do czujników przez LM324N, wzorowałem się na tym schemacie:

https://www.forbot.pl/forum/upload_img/obrazki/IMG_4869ed7514bc61313.gif

https://www.forbot.pl/forum/upload_img/obrazki/IMG_4869db123af687811.gif

Myśle, że jednak raczej wykorzystam 3 czujniki, bo słyszałem że to lepsze rozwiązanie, ponieważ robot trzyma się środka, a kod będzie pewnie prostszy (jako że to mój pierwszy robot na uC którego chce zrobić, więc wole zacząć od czegoś prostrzego).

Moim problemem jest obsługa tego wszystkiego w swoim programie (pisze w języku C).

PWM zamierzam wykorzystać Timer 1 jako Phase & Freqency Correct PWM bo PWM Fast nie nadaje się, chodzi mi o równy sygnał w góre jak i zarówno w dół.

Ale wiadomo, że Correct PWM jest 2x dłuższe od Fast PWM więc zamierzam wykorzystać zewnętrzny kwarc 8MHz.

Nie wiem jakie jeszcze wartości trzeba dać na PWM żeby silniki miały dobrą prędkość, ale to sie potem zobaczy.

Druga rzecz to algorytm dla 3 czujników, myśle że to musi być mniejwięcej coś takiego:

Jeśli środkowy czujnik widzi linie - jedź prosto

Jeśli lewy i prawy czujnik widzą linie - jedź prosto

Jeśli lewy i środkowy czujnik widzą linie - jedź w lewo

Jeśli prawy i środkowy czujnik widzą linie - jedź w prawo

Jeśli prawy czujnik widzi linie - jedź w prawo

Jeśli lewy czujnik widzi linie - jedź w lewo

Ale wtedy czujniki będą musiały być dość blisko siebie.

Czujniki myślę że użyję jakichś z serii TCRT np. TCRT1010.

A więc czy takie podłączenie mostka do uC jest dobre?

Czy algorytm ma wygladać jakoś tak?

Czy Phase & Frequency PWM jest dobry do silnika?

E: a nie sory algorytm powinien być na odwrót chyba

Link do komentarza
Share on other sites

 Wyjścia PC0-PC3 do czujników przez LM324N, wzorowałem się na tym schemacie: 
http://www.forbot.pl/f...7514bc61313.gif
http://www.forbot.pl/f...123af687811.gif

Schematy te są błędne.

Gdy występuje logiczna 1 na wyjściu komparatora, to dioda led gaśnie, gdy jest 0 to się zapala.

Wszystko fajnie, coprawda nieczytałem dalej niż to co cytuję ale zniszczyłeś mnie tą wypowiedzią....

A pomyślałeś że może taki był zamysł konstruktora?? I pokaż mi w którym miejscu czujniki wykonane na tym schemacie nie będą działały, ba w którym miejscu będą błędnie działały...

Link do komentarza
Share on other sites

Zasilał będe to 6V (4xAA) ale to nie będzie miało raczej różnicy.

Właśnie teraz testuje PWM na diodach LED tylko nie wiem czy dobrze zrobiłem:

#include <avr/io.h> 
#define	FOREVER	1
#include <util/delay.h> 

#define	PWM1	PB1		// OC1A
#define	PWM2	PB2		// OC1B

int main(void) 
{ 

DDRB |= _BV(PWM1) | _BV(PWM2) ; //PWM jako wyjście
PORTB &= ~ (_BV(PWM1) | _BV(PWM2)); //Stan niski jako początkowy

ICR1 = 490; // 1 sekunda @ 1MHz

OCR1A = 245; // 0.5 sekundy
OCR1B = 245; // 0.5 sekundy

TCCR1A = _BV(WGM11); 

//Stan wysoki na Compare Match
TCCR1A |= _BV(COM1A1) | _BV(COM1A0); 
TCCR1A |= _BV(COM1B1) | _BV(COM1B0); 
TCCR1B |= _BV(CS12) | _BV(CS10); //Preskaler 1024
//TCCR1B |= _BV(CS10); //Preskaler 64

while (FOREVER) 

	{ 
	_delay_ms(25); 
	OCR1B++; //Test OC1B
	OCR1A++; //Test OC1A
	} 
} 

ICR pełni rolę TOP a OCR1A i OCR1B dwa oddzielne kanały pełnią rolę MAX.

Jeśli dobrze rozumiem to jest ustawione na 50% wypełnienia? (bo 490:2=245)

Dodając w pętli inkrementacje i dekrementacje testuje jak działa PWM i

w rezultacie obie diody led podłączone pod OC1A i OC1B powoli wygasają a potem się resetują i od nowa wygasają, a po zamianie inkrementacji na dekrementacje w pętli, diody działają tak samo tylko się podjaśniają a nie sciemniają. Ale czy tak aby napewno działa Phase & Frequency PWM?

Link do komentarza
Share on other sites

Dobra, już rozwiązałem mniejwięcej swoje problemy, tylko nie wiem jeszcze jednej rzeczy, ile ma trwać jeden cykl w milisekundach jeśli zamierzam kontrolować silniki?

Bo nie wiem na ile ustawić generator rc

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

Jeśli to zwykły silnik DC lub serwo ale z wyjetą elektroniką , to jeśli bedzie 1 kHz w zupełnosci wystarczy. Zawsze można popróbowac róznych ustawień i dobrać doświadczalnie optimum.

Link do komentarza
Share on other sites

Narazie nie będe podłączał rezonatorów kwarcowych, robie wszystko na wewnętrznym generatorze i jest w miare dobrze. Ewentualnie podepne jakiś zewnętrzny kwarc.

Myślałem o jakimś odbiorniku podczerwieni do załączania silników i chyba jakiś podepne.

Równierz myślałem żeby wykorzystać jakoś TIMER2.

Narazie schemat wygląda tak:

Złącze TCRT5000 jest podłączone do czujników przez komparator.

Złącze IN jest podłączone do INPUT1-4 układu L293DNE.

Złącze SV1 jest podłączone do programatora.

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.