Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 kwi 2026, o 09:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 136 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4, 5  Następna strona
Autor Wiadomość
PostNapisane: 6 paź 2014, o 19:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Kolega daj sobie taki program pętli głównej, jeżeli zaśmiga to Ci wytłumaczę co i jak ;)

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 19:08 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

ten sygnał wejściowy do tranzystorów jest skąd ? Czy nie jest w jakiś sposób modulowany tak jak IRDa ? Jak mierzysz napięcie na pinach wejściowych z tranzystorów? multimert czy oscyloskop ? Czasami miałem takie zachowanie jak były drgania na stykach wtedy trzeba odczytać port poraz drugi za jakiś czas sprawdzić czy faktycznie pojawiło się przyciśnięcie podczas tego atmega dawała bardzo szybki sygnał zmienny i na multimetrze pojawiają się dziwne odczyty (bezwładność ) na oscyloskopie to fajnie było widać.
Zwróć uwagę że w pętli masz odczyt i od razu zmianę na pinie wyjściowym , spróbuj dać jakieś opóżnienie w pętli delay_ms(1000) i zobaczy czy sygnał się ustabilizował po naciśnięciu przycisku niech trwa przez sekundę i będziesz wiedział.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 19:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Witam. Podepnę się pod temat.

część biblioteki:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Piszesz że LED_PORT |= D1_PIN ma załączyć diodę, ale to definicja wyłączenia.
To samo LED_PORT &= ~D1_PIN - załączenie.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 19:22 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

chyba sie pomyliłeś akurat |=(1<<Jakiś pin) to ustawia bit pin na 1 ........



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 19:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Lex_ napisał(a):
Witam. Podepnę się pod temat.

część biblioteki:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Piszesz że LED_PORT |= D1_PIN ma załączyć diodę, ale to definicja wyłączenia.
To samo LED_PORT &= ~D1_PIN - załączenie.


Kolega ma jakąś szklaną kulę?

LED_PORT |= D1_PIN

Jeżeli anodę podłączymy do pinu, a katodę przez rezystor to masy to w/w instrukcja załączy diodę.
Jeżeli anodę podłączymy przez rezystor do Vcc, a katodę do pinu to w/w instrukcja wyłączy diodę.

A skąd kolega wnioskuje jak autor postu ma to podłączone, skoro nie ma tego na schemacie?

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 19:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Kulę chciałbym mieć :)

Być może rozpędziłem się trochę bo faktycznie zależy to od rodzaju sterowania - anoda/katoda.

Ale schematu podłączenia nie ma więc zwróciłem na to uwagę.

edit:
kod się ładnie kompiluje ale te instrukcje warunkowe też można by poprawić: wstawić case albo dać else if jak kolega wyżej napisał.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 19:49 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

To co wysłałeś wcale nie podaje sygnałów wyjściowych pomimo pojawienia się masy na nóżce procka

Co do tego pomiaru na tranzystorze to chyba się zapędziłem, po prostu sprawdzałem różnicę potencjałów pomiędzy masą podawaną poprzez emiter na kolektor a masą (dowolną) i gdyby były jakieś (widoczne) przerwy w działaniu to byłbym w stanie je zauważyć, ale radio działa dobrze...Przydał by mi się oscyloskop..no ale niestety nie mam niczego takiego pod ręką


Co do podłączenia...sygnały wyjściowe procka powinny pojawić się na wejściach sterownika silników (link gdzieś wcześniej) np: jeżeli na AIN1 pojawi się stan wysoki to sterownik powinien "otworzyć" kanał A na "prawych" obrotach ;]

------------------------ [ Dodano po: 4 minutach ]

PS kodu, to mój pierwszy kod(udany wcześniej z tydzień walczyłem z kompilatorem :]), nigdy nie pisałem czegoś takiego, nawet dla diody ;[ Pisałem to z pomocą nauczyciela od Mechatroniki ;] Tak więc nie dziwcie się że jest nieprofesjonalny ;]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 20:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Widziałem gorzej napisany kod także nie jest źle - nie czepiam się.

Jeszcze z hardwaru jedno:

bazy tranzystorów masz podłączone do GND. Tak ma docelowo być ?

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 20:20 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

Nie, rzuć okiem na schemat płytki:http://pl.tinypic.com/view.php?pic=2howyzl&s=8#.VDLqYvl_tIE i tu: http://pl.tinypic.com/view.php?pic=29ku ... DLqm_l_tIE Na bazie dołączony jest sygnał z modułu (wcześniej te "sygnały" były po prostu kablami od silników napędzających samochód, wykorzystuję je na takiej zasadzie że np jak na pilocie daję "przód" to na jednym z kabli pojawia się 5V które poprzez rezystor 1k om trafia na bramkę która poprzez emiter zwiera do masy (jednocześnie podając na pin mikrokontrolera masę) Rozumiesz? ;]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 20:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Chyba wszystko nie do końca.
Używasz tak jak na płytce tranzystory 2N3704 czy całkiem inne ?

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 20:37 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

http://botland.com.pl/tranzystory/1239- ... 5-szt.html Takie są w tej chwili wlutowane w płytkę...no ale co do poprawności ich działania jak i spełnianie założeń projektu nie było dotychczas żadnych zastrzeżeń...

W sumie mogłem poprawić te nazwy tranzystorów...niepotrzebnie wprowadzam ludzi w błąd..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 20:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

To teraz wszystko jasne skoro takich używasz.

Mam coś takiego - poprawiony nieco:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 20:55 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

Działa! 5VDC na wyjściu! Dzięki kolego! ;] Mógłbyś mi wyjaśnić w czym popełniłem błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Świetnie. Jasne, że tak:

miałeś instrukcję warunkową napisaną tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


LED_PORT = 0x00 - nie miał klamerek - niby drobiazg.

poprawione:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zakomentowałem też instrukcje else bo niczego nie wnosiły.

Cieszę się, że mogłem pomóc.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Skoro mój kod nie działał, to może mi kolega Lex_ wytłumaczy co ja miałem źle? Patrze na ten kod i nie widzę różnic :( Niezła zagwozdka dla mnie :/

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Zerowałeś kolego nieświadomie wszystkie porty na końcu wszystkich instrukcji.
Ja też tego na początku nie skojarzyłem.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Ale teoretycznie trzymając wciśnięty guzik, mamy spełniony jeden z warunków, czyli else się nie wykona. No chyba, że ma działać na zasadzie wciskam i jedzie mimo, że puszczę przycisk.

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Moim zdaniem popełniłeś choć to za dużo powiedziane - nie skojarzyłeś tego, że

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ma być też warunkiem a nie pozycją "spoczynkową" jak gdyby.

Zbliżamy się więc do kwestii czy jest ona tutaj w ogóle potrzebna.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:14 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

Możliwe jest też że zrobiłem błąd przy wgrywaniu programu...;]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Koniec końców, ważne, że kolega ma problem rozwiązany, a ja już nie myślę nad tym bo mi czacha paruje :lol:

z Niebieskim pozdRowieniem,
Doman89


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:17 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

W każdym razie..wielkie dzięki za pomoc ;]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Definitywnie się zgadzam :)

edit: nie ma sprawy.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:38 
Offline
Użytkownik

Dołączył(a): 01 paź 2013
Posty: 305
Lokalizacja: Olsztyn
Zbananowany użytkownik

Pomógł: 20

dla mnie dziwne jest to że po if(...) jedna instrukcja zawsze daje się ; jeżeli więcej komend to wtedy {}. To chyba nie jest do końca rozwiązanie problemu. W tym przypadku mamy jedną komendę. Faktem jest że jeżeli cały czas przycisk jest przyciśnięty to coś jedzie jeżeli puścimy powinno się zatrzymać, w zależności od sposobu sterowania.
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 21:46 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

Panowie...mam jeszcze jedno pytanie:

Planuję podłączyć ten sterownik: http://botland.com.pl/sterowniki-silnik ... modul.html zgodnie z założeniami:
sterowanie m1 (silnik z lewej strony pojazdu)
-M1 obr prawe: Ain1=1 Ain2-0 (Aout1=1 , Aout2=0)
-M1 obr Lewe Ain1=0 A in2=1 (Aout1=0 , Aout2=1)

Sterowanie m2 ( silnik z prawej strony pojazdu)
-M2 obr prawe: Bin1=1 Bin2-0 (Bout1=1 , Bout2=0)
-M2 obr Lewe Bin1=0 B in2=1 (Bout1=0 , Bout2=1)


Przód:
M1-prawe
M2-prawe

tył:
M1-lewe
M2-lewe

prawo:
M1-prawe
M2-lewe

Lewo
M1-lewe
M2-prawe

Prawo-przód
M1=prawe
M2=niewysterowany/stan niski

prawo-tył
M2=niewysterowany/stan niski


Lewo-przód
M1=niewysterowany/stan niski
M2-prawe

Lewo-tył
M1=niewysterowany/stan niski
M2-lewe

Podłączenia:

Pc3-Ain1
Pc2-Ain2
Pc1-Bin2
Pc0-Bin1

czy takie podłączenie do pinów będzie odpowiednie? Mam to na płytce stykowej i wolałbym być pewien że robię to dobrze zanim zacznę lutować go do gold pinów ;]....



Ostatnio edytowano 6 paź 2014, o 22:14 przez Rygart_z_Tarrs, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 22:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Cytuj:
dla mnie dziwne jest to że po if(...) jedna instrukcja zawsze daje się ; jeżeli więcej komend to wtedy {}.


Pytanie jak to traktował kompilator - mnie doświadczenie nauczyło aby łapać to w klamry tak samo jak do każdej powołanej nowej zmiennej od razu wpisywać zero.

@Rygart_z_Tarrs: proponuję zrobić to na kablach ze złączkami męskie/żeńskie bo praktyka bywa okrutna i niewybaczalna.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 22:13 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

Właśnie tak robię...z tym że widzę jakieś cuda tzn, przy podaniu 1(5V) na Ain1 i Bin1 (Bin2 jak i Ain2=0 ) a wyjścia zachowują się tak:

Bout1=3VDC
Bout2=0VDC
Aout2=3VDC
Aout1=0VDC

:o Co robię nie tak?

Przecież w dokumentacji pisze jak byk że xin1=1 => xout1=1


I co dziwniejsze to 0 nie jest w połączone z masą bo gdy stykam silnik bezpośrednio do masy to działa a jak do Bout2/1 to nie ma zadnej reakcji



Ostatnio edytowano 6 paź 2014, o 22:25 przez Rygart_z_Tarrs, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 22:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Rygart_z_Tarrs napisał(a):
Właśnie tak robię...z tym że widzę jakieś cuda tzn, przy podaniu 1(5V) na Ain1 i Bin1 (Bin2 jak i Ain2=0 ) a wyjścia zachowują się tak:

Bout1=3VDC
Bout2=0VDC
Aout2=3VDC
Aout1=0VDC

:o Co robię nie tak?

Przecież w dokumentacji pisze jak byk że xin1=1 => xout1=1


A kolega przypadkiem nie zasila układu z przetwornicy 3.3 V??

Jeżeli tak to wszystko w normie ;)

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 22:25 
Offline
Użytkownik

Dołączył(a): 02 maja 2014
Posty: 78
Pomógł: 0

Z 3.3 ale mogę regulować napięcie (nowy objaw dopisany post wyżej)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 paź 2014, o 22:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Kolega jak podłączysz jakiś silnik tak żeby chodził, to weź jakiś dobrego przekroju kabelek i połącz do nóżki stabilizatora (GND) i tego układu (GND), być może masz za cienką ścieżkę i prąd nie przepływa o odpowiednim natężeniu.

Sugeruje się tym schematem:
http://pl.tinypic.com/view.php?pic=29ku ... DLqm_l_tIE

Zobacz jakie cieniutkie jest połączenie masy pomiędzy TSOP a tranzystorem.

z Niebieskim pozdRowieniem,
Doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 paź 2014, o 07:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

A co do tych warunków to nie lepiej napisać czytelniejszy taki: if !(KEY_PIN & W1_PIN ) mniej pisania i od razu wiadomo o który przycisk chodzi.

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 136 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4, 5  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO