Skocz do zawartości

Pomocna odpowiedź

Napisano

Witam, mam problem z mostkiem H w moim projekcie.

Na wyjściach pokazuje mi napięcie 0,05V pomiędzy pinheadem a GND, natomiast pomiędzy dwoma pinheadami już nie, myślałem że może to być problem z masą ale sprawdziłem napięcie między zasilaniem a Gnd na mostku i było ok.

Załączam kod programu który wrzuciłem oraz schematy.

Pozdrawiam

Nie jestem pewien czy to napewno ten program jest w chwili obecnej załadowany, ale to moim zdaniem to nie wina programu.

#include <avr/io.h> 
void main(void) 
{
DDRA=0;         // PRZYCISK/CZUJNIK
DDRB=0xFF;         // MOSTEK H/LED
DDRD=0xFF;        //ENABLE

while(1)
{
PORTD=1;
PORTB=10001000;
}
}

ROBOT1,4 do druku.brd

Jeśli masz to zmontowane na takiej płytce jaką zamieściłeś, to się nie dziwię ze ci nie działa, bo jest ona tragicznie zaprojektowana i podejrzewam że masz tam dużo błędów. Zamieść trochę większe schematy, bo nie da się tych powiększyć i nic na nich nie widać.

Zdaję sobie sprawę że elementy nie są "ładnie" rozłożone itd. ale bardziej skupiłem się na tym żeby to wszystko działało. Jest to mój drugi schemat w eagle i na dodatek robiony na szybko.

Zamiast diod ze schematu są wlutowane diody Bat43. nie ma ich na schemacie ponieważ zmienić je chciałem gdy schemat brd, był już gotowy a nie mogłem znaleść diod bat43 o takim rozstawie nóżek.

wstawiłem schematy z eagle.

Czyli ograniczasz możliwość podpowiedzi Tobie do osób, które Eagle posiadają, a którzy dodatkowo będą musieli pobrać plik i uruchomić Eagle ... jak chcesz.

płytka działa, kupiłem cyfrowe czujniki sharpa wraz z podstawkami wszystko polutowałem ale:

Gdy podlacze czujnik pod zasilanie i gnd dioda na czujniku działa prawidłowo a na wyjsciu pojawia się napięcie w zaleznosci czy wykrywa cos czy nie, lecz gdy podłącze wyjscie do płytki dioda świeci ciągle i nie zmienia stanu. na pinie do którego podłaczyłem Out jest 0V wzgledem masy.

Czym to może być spowodowane?

kupiłem 3 czujniki i każdy zachowuje się identycznie

Pozdrawiam

Na 99% zwarcie na płytce do której go podłączasz lini sygnałowej do masy, 1% że jeżeli masz tam procesor to ustawiłeś pin jako wyjście.

  • 2 tygodnie później...

Faktycznie było zwarcie, w chwili obecnej mam problem z programem, w symulacji AVR studio wszystko działa jak należy, lecz po podlaczeniu do płytki wszystko się sypie.

Program zapętla się w funkcji dla czujnika środkowego i nie wychodzi, stany poszczególnych wejść czujników zmieniają się albo chaotycznie, albo poprawnie z tym że gdy czujnik PA6 wykrywa to zeruje także PA5 natomiast PA7 zeruje PA6.

Gdyby nie to że kazano nam zrobić ten projekt a dopiero później "pokazano" przerwania to pewnie bym z nich skorzystał ale w chwili obecnej w grę wchodzą tylko pętle if.

Dodam że czujniki to Sharp GP2Y0D810Z0F a silniczki pololu 1:120.

Mam też pytanie co do samego podłączenia:

Czy te czujniki mogę podpiąć wszystkie pod to samo zasilanie i masę ?

gdy próbowałem to robić jeden dzialal normalnie reszta wariowała. Dlaczego???

Symulacja która działa

#include <avr/io.h> 
void main(void) 
{
DDRA=0; //czujniki
DDRB=0xFF; //mostek H 
DDRD|=(1<<5)|(1<<4); //mostek h Enable

while(1)
{

if(!bit_is_clear(PINA,7))	//CZ. LEWY
{
PORTD|=(1<<5);	 //S. L. ON
PORTD|=(1<<4);	 //S. P. ON

PORTB|=(1<<7);	 //SILNIK LEWY DO PRZODU
PORTB&=~(1<<6);

PORTB&=~(1<<5); //SILNIK PRAWY DO TYLU
PORTB|=(1<<4);
}
else if(!bit_is_clear(PINA,6))	//CZUJNIK SRODEK 
{
PORTD|=(1<<5);	 //S. L. ON
PORTD|=(1<<4);	 //S. P. ON
PORTB|=(1<<7);	 //S. L. DO PRZODU
PORTB&=~(1<<6);

PORTB&=~(1<<5); //S. P. DO TYLU
PORTB|=(1<<4);
}	
}
else if(!bit_is_clear(PINA,5))	//CZ. PRAWY 
{
PORTD|=(1<<5);	 //S. L. ON
PORTD|=(1<<4);	 //S. P. ON

PORTB&=~(1<<7);	 //Sl L. DO TYLU
PORTB|=(1<<6);

PORTB|=(1<<5); //S. P. DO PRZODU
PORTB&=~(1<<4);

}
else
{
PORTD|=(1<<5);	 //S. L. ON
PORTD|=(1<<4);	 //S. P. ON

PORTB|=(1<<7);	 //S. L. DO PRZODU
PORTB&=~(1<<6);

PORTB|=(1<<5); //S. P. DO PRZODU
PORTB&=~(1<<4);


}
}
}

__________

Komentarz dodany przez: Nawyk

Używaj znaczników [ code] i [ /code]

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ę »
×
×
  • Utwórz nowe...