Skocz do zawartości

Moj pierwszy robot - Robi


Pomocna odpowiedź

Układ działa dobrze poza wąsami (wąsy testuje na zasadzie - zgaś diodę jak wciśnięty) i fototranzystorem (no i silnikami - byłem w 3 elektronicznych i nigdzie nie mają L293 ani L298...)

Portc.5 to fototranzystor

Portc.4 to wąs

portb.0 to dioda

$regfile = "m8def.dat"
$crystal = 1000000


Config Portc.5 = Output
      Portc = &B00000000
Config Portb.0 = Output
      Portb = &B0000000
Config Portc.4 = Input
      Portc = &B0000000



Portb.0 = 1
Portc.5 = 0
Portc.4 = 0



Do
 If Portc.5 = 1 Then
 Portb.0 = 0
 Else
 Portb.1 = 1
End If



If Portc.4 = 1 Then
Portb.0 = 0
Else
Portb.1 = 1
End If
Loop


End

Dioda ma być na starcie zapalona, ma się gasić jak fototranzystor wykryje że pomieszczenie jest oświetlone lub (do testów wąsa) jak wąs przewodzi prąd do GND.

Błąd pewnie jest w programie...

Myślę że o wiele prościej ten kod napisać tak

$regfile = "m8def.dat"
$crystal = 1000000


Config Portc.5 = Input
Config Portc.4 = Input
Config Portb.0 = Output

Portb.0 = 1
Portc.5 = 0
Portc.4 = 0



Do
 If Portc.5 = 1 or Portc.4 = 1  Then
   Portb.0 = 0
 Else
   Portb.1 = 1
 End If
Loop


End

Najlepiej niech ktoś jeszcze sprawdzi bo dopiero się uczę BASCOM'a i byc może też coś źle napisałem;]

pi1er, Tak jak napisałeś to dioda zgaśnie tylko jak zarówno wąs będzie wciśnięty i pomieszczenie będzie oświetlone. Powinieneś użyć ilorazu logicznego, alternatywy.

Czyli tak jak napisał lopez321.

Dalej coś nie działa ten wąs, może źle że na początku jest

Portc.4 = 0 

Czy to nie sugeruje Atmega - żeby nie dawała prądu na ten pin?

Zamiast krańcówki próbowałem już zwykły drut - też nie idzie.

Somethings wrong... a połączenia są dobre - sprawdziłem multimetrem.

[ Dodano: 26 Sty 10 07:54 ]

Chwila chwila, wąsy na pewno idą do GND?

https://www.forbot.pl/forum/topics20/kurs-bascom-lekcja3-zaczynamy-programowac-vt1091.htm#6436

https://www.forbot.pl/forum/upload_img/miniaturki/IMG_4889012f61d0f2487.jpg

W kursie bascoma jest wąs do zasilania?

[ Dodano: 26 Sty 10 08:14 ]

Zamieniałem też

if portb.4 = 1 then

na

if pinb.4 = 1 then

ciągle nie działa?

Masz podłączone tak jak tu https://www.forbot.pl/forum/upload_img/miniaturki/IMG_4889012f61d0f2487.jpg ? czy tak jak tu https://www.forbot.pl/forum/upload_img/obrazki/IMG_4b5a224e8b6784950.jpg ? Bo w tym drugim schemacie jest błąd. Źle podłączony tranzystor o ile się nie mylę.

Foto tranzystor odłączyłem w ogóle. Mam wąsa z jednej strony do pinu atmegi z drugiej do ziemi.

Na schemacie pierwszym wąs (krańcówka) idzie z atmegi do plusa +. U mnie jest do GND, ale wcześniej pisano że tak ma być?

To w końcu do ziemi czy do plusa?

To jest bez różnicy jak się podłączy wąsy, kwestia tylko programu jak ma różne sytuacje interpretować (tylko wkradło się drobne niedopatrzenie jak masz wąsa do masy to musisz go podciągnąć do zasilania jakimś rezystorem np 100k który jedną stroną do zasilania a drugą pomiędzy pin a wąs, chyba że użyjesz wewnętrznych rezystorów podciągających) 😉 Tranzystor jest dobrze podpięty (ten co do diody super jasnej idzie). Nie wiem jaki schemat testujesz ale ta super jasna dioda jest na PB6 nie PB0 gdzie znajduje się wąs (jeśli jest to drugi układ). Tak samo odwrotnie z tymi wejściami jest PC5 to wąs, a PC4 to fototranzystor ale to nie powinno mieć wpływu. Takie jest moje zdanie, chociaż bascoma nie znam 😉

No i naprawione, kod był po prostu zły.

A oto poprawiony kod (może komuś się przyda):

$regfile = "m8def.dat"
$crystal = 1000000

Config Portc.4 = Input
Config Portb.0 = Output

Portb.0 = 1
Portc.4 = 1

Do

 If Pinc.4 = 0 Then
   Portb.0 = 0
 Else
   Portb.0 = 1
 End If

Loop
End

➡️➡️ PROGRESS (Czyli - jak mi idzie)

Na chwilę obecną mam zbudowana płytkę główna z diodą sygnalizującą i podłączonym wąsem. Wbudowałem gniazdo do programatora na płytkę robota - ciągłe wyciąganie i przenoszenie atmegi do programatora jest kiepskim pomysłem.

Przerobiłem jedno serwo, drugie czeka w kolejce. Zaczynam obudowę - będzie ze sklejki.

Próbowałem dzisiaj zbudować czujnik odbiciowy w oparciu o fototranzystor - jednak fototranzystor nie reaguje ani na światło z latarki ani na światło podczerwieni. Dioda na pewno się świeci (sprawdzałem kamerką w telefonie).

A całość złożyłem tak ->

Mój kod w Bascom:

$regfile = "m8def.dat"
$crystal = 1000000

Config Portb.1 = Input #FOTOTRANZYSTOR - WYJSCIE
Config Portc.4 = Input #WĄS
Config Portb.0 = Output #DIODA SYGNALIZUJĄCA

Portb.0 = 1
Wait 1
Portb.0 = 0
Portc.4 = 1
Portb.1 = 0


Do

 If Pinc.4 = 0 Or Pinb.1 = 1 Then
   Portb.0 = 1
 Else
   Portb.0 = 0
 End If

Loop


End

Jednak znalazłem u siebie diodę odbiorczą SFH-06

O taką jak tutaj:

http://sklep.monster.pl/ProduktSzczegoly.aspx?TowarId=30962

I pytanie, jak przerobić schemat abym mógł ją zastosować zamiast fototranzystora?

Czy w ogóle się tak da...

Niestety nie mogę znaleźć datasheet tej diody, więc nie wiem co i jak.

Edit:

To nic z tych rzeczy nie będzie, to ma być zwykły robot z kilkoma czujnikami 🙂

Zostaw fototranzsytor. Sprawdź, czy nie jest wlutowany odwrotnie, diodę sygnalizującą działanie spróbuj podłączyć bezpośrednio na wyjście dzielnik fototranzystor-rezystor i do masy, zobaczysz wtedy, czy reaguje toto na przeszkodę (linię).

Źle podłączyłeś odejście od fototranzystora, powinno być z punktu połączenia fototranzystora z rezystorem.

EDIT:

Widzę, że już poprawiłeś schemat.

Źle podłączyłeś odejście od fototranzystora, powinno być z punktu połączenia fototranzystora z rezystorem.

EDIT:

Widzę, że już poprawiłeś schemat.

Tak, pomyliłem się przy robieniu schematu 🙁

Fototranzystor jest podłączony dłuższą nózką do +.

Może zły program?

Zależy od fototranzystora (producenta) - spróbuj podłączyć odwrotnie, nie spali się. Znalazłem jednak 'błąd' w programie - fototranzystor zwraca wartość analogową, niekoniecznie 'widzenie' będzie w zakresie napięć logicznego zera, a 'niewidzenie' w zakresie logicznej 1 - bez dobrania opdpowiedniej wartości pull-upa ani rusz, albo naucz się korzystać z adc. Sprawdź miernikiem czy fototranzystor reaguje.

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