• Ten serwis używa "ciasteczek" (cookies). Korzystając z niego, wyrażasz zgodę na użycie plików cookies. Learn more.
  • Szanowny Użytkowniku, serwisy w domenie modelarstwo.info wykorzystują pliki cookie by ułatwić korzystanie z naszych serwisów. Jeśli nie chcesz, by pliki cookies były zapisywane na Twoim dysku zmień ustawienia swojej przeglądarki.

Układ sterowania semafora KLUBA z Arduino UNO

OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#21
Eh. przykre, że na tym forum są tak butne i nieprzyjemne osoby jak Ty.

Nie zadałeś niestety sobie zbyt wiele trudu w odczytaniu mojego posta. Nawet nie przyjrzałeś się układowi podłączonych przewodów bowiem gdybyś się przyjrzał, wiedział byś, że czerwona dioda jest podłączona pod PWM nr 6 (a zielona pod PWM 3). Wiedziałbyś także, że sterowanie tą diodą działa - pulsuje ona prawidłowo o czym napisałem w poście. Pytałeś o program więc napisałem jaka komenda steruje diodą czerwoną. Absolutnie nic ponadto ten program nie robi. Napisałem także, że problemem jest jedynie to, że przy obecnym podłączeniu diody zielonej i czerwonej, program powoduje pulsowanie nie tylko diody czerwonej ale także zielonej (i każdej innej, którą podłączę w podobny sposób). Wedle mojego punktu widzenia przekazałem wszystkie istotne informacje aby podjąć problem.

Wspomniałem o płytce PCA9685 jako rozwiązanie dla wielu diod = wielu semaforów. Nie użyłem jej bowiem pokazałem przykład dla jednego semafora a nie kilku, dla których zabrakłoby już wyjść PWM w Arduino (i wtedy ta płytka byłaby potrzebna).

PS
HTML to też programowanie a nawet poprawnie nie potrafisz zacytować treści.
Nieprawda. HTML się nie programuje -> nie jest on językiem programowania.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#22
Nawet nie przyjrzałeś się układowi podłączonych przewodów bowiem gdybyś się przyjrzał,
Nie ja mam problem i nie będę teraz dedukował co gdzie jest podłączone bo to nie inżynieria wstweczna po kilkaset zł za godzinę pracy. Na schemacie wszystko byłoby jasne w kilka minut.

Napisałem także, że problemem jest jedynie to, że przy obecnym podłączeniu diody zielonej i czerwonej, program powoduje pulsowanie nie tylko diody czerwonej ale także zielonej (i każdej innej, którą podłączę w podobny sposób)
Masz błąd w połączeniach lub programie bo Arduino jest jakie jest o czym już pisałem

Pokaż schemat połączeń bo duża szansa, że diody mają wspólny rezystor lub jego brak.
Wracamy więc do: "Bez schematu nie ma wspólnego tematu".


PS
Chcesz pomocy to się minimalnie wysil bo nikt za Ciebie raczej tego nie zrobi.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#23
Mimo tych "Jestem na nie" pomogę:
1. Sprawdź czy jeden PWM nie wpływa na inne. Jeśli tak błąd w sofcie, wystarczy poprawić.
2. Jeśli PWM działają poprawnie sprawdź czy włączenie kolejnej diody nie wpływa na jasność pozostałych, jeśli wpływa to błąd w sprzęcie. Wystarczy schemat aby wywnioskować gdzie może być błąd. Być może będzie potrzebny podstawowy sprzęt pomiarowy.
3. Jeśli 1 i 2 jest ok, a po połączeniu w całość jest źle to najprawdopodobniej problem ze "stykówką". Pomiń ją i sprawdź, jeśli nadal jest źle to bardziej złożony problem ale raczej niepoprawnie zrobione testy 1 i 2.
Tyle mogę pomóc bez schematu i kodu programu. Więcej nie oczekuj.
 

route

Aktywny użytkownik
Reakcje
415 2 0
#24
Cześć, po dłuższej przerwie wróciłem do tematu i znalazłem rozwiązanie na powielenie portów PWM. Z tego co widzę, rozwiązaniem powinno być zamontowanie dodatkowej płytki (lub kilku płytek) PCA9685. Niestety trafiłem na kolejny problem mianowicie nie wiem jak podłączyć inne diody z semafora tak aby dało się nimi niezależnie sterować za pomocą wyjść PWM z Arduino. W załączeniu przesyłam schemat połączenia. Dla czerwonej diody - wszystko ładnie działa jednak gdy w podobny sposób podłączam kolejne diody, np. zieloną to zmieniając napięcie PWM tej czerwonej inne tak samo się zmieniają. Czy ktoś z Was ma pomysł jak to prawidłowo podłączyć? Może nie jest to w ogóle możliwe bez dodatkowych układów scalonych.. Zobacz załącznik 765320 Zobacz załącznik 765321
Według załączonych zdjęć masz coś nie tak z podłączeniami.
Port 3 z UNO (przewód zielony) idzie donikąd.
Zakładając, że czarny przewód semafora to wspólna anoda (tak sugeruje twój układ) to masz obecnie połączone równolegle światło zielone z czerwonym i sterujesz je portem 6 z UNO (przewód czerwony).
Więc nie dziw się, że kolega @r-mik prosi o schemat podłączenia w oparciu, o który zrobiłeś ten układ, żeby móc coś poradzić.
 
OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#25
Według załączonych zdjęć masz coś nie tak z podłączeniami.
Port 3 z UNO (przewód zielony) idzie donikąd.
Zakładając, że czarny przewód semafora to wspólna anoda (tak sugeruje twój układ) to masz obecnie połączone równolegle światło zielone z czerwonym i sterujesz je portem 6 z UNO (przewód czerwony).
Więc nie dziw się, że kolega @r-mik prosi o schemat podłączenia w oparciu, o który zrobiłeś ten układ, żeby móc coś poradzić.
Dzięki wielkie, faktycznie ten zielony przewód był błędnie podłączony. Hmm, niestety nie widzę jeszcze jak to inaczej podłączyć aby odseparować sygnał zielony, który ma być sterowany z PWM 3 od tego czerwonego PWM 6 ponieważ anoda wychodzi wspólna. Postaram się zrobić jeszcze w wolnej chwili schemat taki uproszczony na ile potrafię i załączę.
 
OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#26
A nie prościej połączyć kabelki od semafora bezpośrednio do płytki z procesorem?
To rowiązanie byłoby pewnie najlepsze tylko w takim układzie nie za bardzo wiem do jakiego wtyku w Arduino podłączyć czarny przewód idący od semafora (wyjście jest w nim oznaczone jako +). Wyjście GNU oznaczone w Arduino to "-" a więc to też nie będzie to. Jeśli zaś czarny przewód podłączę do wtyku 5V wówczas świecą się wszystkie diody jednocześnie, które są podłączone pod złącza PWM i nie ma możliwości sterowania ich świeceniem.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#27
Więc nie dziw się, że kolega @r-mik prosi o schemat podłączenia w oparciu, o który zrobiłeś ten układ, żeby móc coś poradzić.
Komuś, kto się nie zna na na elektronice może się wydawać, że wystarczy fotografia. Ja się nie znam na medycynie i uważam, że do wycięcia wyrostka robaczkowego wystarczy nóż kuchenny i igła i nicy krawieckie. Otóż tak nie jest!
W przypadku elektroniki schemat to podstawa! Fotografie mogą być pomocne w celu weryfikacji zgodności schematu z rzeczywistością ale nie zastępują go. Beznadziejne Arduino wprowadziło "standard" dla ubogich (w wiedzę i umiejętności) i jakieś rysowanki zamiast schematu gdzie ciężko analizować układ (trochę łatwiej niż z fotografii) i łatwo o błąd w połączeniach.

Jeśli zaś czarny przewód podłączę do wtyku 5V wówczas świecą się wszystkie diody jednocześnie, które są podłączone pod złącza PWM i nie ma możliwości sterowania ich świeceniem.
Bo program jest zły.
Niestety początkujący prawie ZAWSZE twierdzą, że ich program jest poprawny i nie ma powodu aby pokazywać ich "tajne" lub "wybitnie kosztowne" oprogramowanie, że kompilator się myli, itp.
Na 90% wiem co jest źle w programie ale dopóki go nie zobaczę nie mogę napisać jak go poprawić.
Nadal twierdzisz, że program jest dobry?

Gdyby autor załączył schemat i program już dawno miałby rozwiązanie zarówno sprzętowe jak i programowe. Niestety lepiej pisać o bucach, dawać "Jestem na nie" itp próbując maskować w ten sposób swoje braki w wiedzy ale prawda prędzej czy później wyjdzie na jaw.
Jak się teraz czujesz @MarGe?
 
Ostatnio edytowane:

WM-MODEL

Znany użytkownik
FREMO Polska
Reakcje
1.730 14 0
#28
Ach... napisałem co napisałem ;) bo nie zwróciłem uwagi na to, że LEDy sterowane są z tego Arduino bezpośrednio z procesora, tzn. anodą do wyjścia a katodą do masy, zaś semafor to układ ze wspólną anodą.
Najprościej byłoby na tej Twojej płytce stykowej dołożyć jeden bele jaki scalak pt. ULN2003A, np. taki https://www.tme.eu/pl/details/uln2003a/drivery-uklady-scalone/stmicroelectronics/ i zasilać to Arduino z osobnego zasilacza.
Trochę na szybko :) ale tak mógłby wyglądać układ połączeń:
semafor.jpg
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#29
Nie trzeba komplikować tego banalnego układu i dodawać bufora. Jest prostsze rozwiązanie programowe. Od początku czułem, że w sofcie jest błąd! Nie myliłem się! Ale niestety, jestem "butny"! Dlaczego? Bo się nie myliłem? Bo prosiłem o podstawowe informacje?
 
OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#30
Nie trzeba komplikować tego banalnego układu i dodawać bufora. Jest prostsze rozwiązanie programowe. Od początku czułem, że w sofcie jest błąd! Nie myliłem się! Ale niestety, jestem "butny"! Dlaczego? Bo się nie myliłem? Bo prosiłem o podstawowe informacje?
Jak wspomniałem, to jedna prosta linijka + inicjalizacja, oto mój program w całości:

Code:
// Arduino initialization
const five = require('johnny-five');
const board = new five.Board();
const leds = new five.Leds([6]);

board.on('ready', function () {
   leds[0].pulse();
});
obsługuje diodę czerwoną. Jeśli bym chciał tylko zieloną to zmieniam 6 na 3 i wówczas pulsuje zielona. Niestety przy obecnym układzie nie umiem tego uzyskać bo świecą obie diody.
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#31
Poddaję się! Jak z dzieckiem w przedszkolu, prosi się o coś robi coś innego. Prosiłem o program a nie jego fragment bo gdzie setup, gdzie loop?
Może ktoś inny ma cierpliwość aby pomóc, moja się wyczerpała ale z Arduino nie masz problemu to szybko znajdziesz błąd w znalezieniu, którego pomógł by schemat bo widać "o czo chodzi".
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#33
Matko, człowieku, podałem Ci CAŁY program! Żaden fragment.
No to coś się w Arduino zmieniło i nie ma już "setup()" i "loop()", nie dołącza się bibliotek.
To się nawet nie skompiluje o poprawnym działaniu nie ma mowy.
Kompletnie nie znasz sie na programowaniu. Na Forbot jest darmowy kurs, zapoznaj się z nim.
 
Ostatnio edytowane:
OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#34
No to coś się w Arduino zmieniło i nie ma jusz setup i loop.
Jak widzisz, korzystam z bilbioteki Johnny-Five więc czysty JS. Być może muszę coś jeszcze zainicjować aby działało bez dodatkowego układu jak sugerujesz ale w tym wypadku nie wiem jak. W każdym razie pewnym rozwiązaniem faktycznie będzie rozwiązanie kolegi @WM-MODEL.
 
OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#35
Ach... napisałem co napisałem ;) bo nie zwróciłem uwagi na to, że LEDy sterowane są z tego Arduino bezpośrednio z procesora, tzn. anodą do wyjścia a katodą do masy, zaś semafor to układ ze wspólną anodą.
Najprościej byłoby na tej Twojej płytce stykowej dołożyć jeden bele jaki scalak pt. ULN2003A, np. taki https://www.tme.eu/pl/details/uln2003a/drivery-uklady-scalone/stmicroelectronics/ i zasilać to Arduino z osobnego zasilacza.
Trochę na szybko :) ale tak mógłby wyglądać układ połączeń:
Zobacz załącznik 765472
Oj, masz rację, to ta wspólna anoda jest tu problemem. Dzięki wielkie za propozycję, nie wpadłbym na to, że trzeba to rozwiązać przez dodatkowy układ. Czasem coś wydaje się prostrze a okazuje bardziej złożone ;)
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#36
Jak widzisz, korzystam z bilbioteki Johnny-Five więc czysty JS.
Czego jeszcze nie wiem?
Swoją drogą pchasz się w kłopoty. Nikt rozsądny na mikrokontrolerze, zwłaszcza z 2kB RAM, nie użyje JS. Tak samo ogrom kłopotów jest przy używaniu Ethernetu na 2kB RAM, gdzie jedna ramka ma do 1,5kB.

Zły pomysł.
Pierwszy zły to uC AVR.
Drugi, to obciążenie go niepotrzebne interpreterami i innymi bajerami bo "para idzie w gwizdek", ram się "kurczy", dynamiczna allokacja robi swoje, stos się przepełnia. Biblioteki pełne błędów, nie wiadomo co w nich "nawywijane".
Szkoda czasu i zdrowia!
 

r-mik

Pan Chlewik
Reakcje
145 30 0
#37
Dzięki wielkie za propozycję, nie wpadłbym na to, że trzeba to rozwiązać przez dodatkowy układ.
Wystarczy zanegować w kodzie programu.
Od początku pisałem, że w kodzie może być błąd i jak widać miałem rację, ja buc miałem rację. Przepraszam, że miałem rację.

Kiedyś dużo udzielałem się na forach i po sposobie opisania problemu jestem w stanie ocenić gdzie szukać błędu. Jak ktoś pisze, że kod na pewno jest dobry i go nie pokazuje, to w pierwszej kolejności tam należy szukać błędu i przeważnie tam on jest.

Dziękuję że mogłem pomóc.
 
Ostatnio edytowane:
OP
OP
MarGe

MarGe

Aktywny użytkownik
Reakcje
10 1 0
#38
Wystarczy zanegować w kodzie programu.
Od początku pisałem, że w kodzie może być błąd i jak widać miałem rację, ja buc miałem rację. Przepraszam, że miałem rację.

Kiedyś dużo udzielałem się na forach i po sposobie opisania problemu jestem w stanie ocenić gdzie szukać błędu. Jak ktoś pisze, że kod na pewno jest dobry i go nie pokazuje, to w pierwszej kolejności tam należy szukać błędu i przeważnie tam on jest.

Dziękuję że mogłem pomóc.
Przepraszam ale mi ta pomoc nie pomogła - coż za pomocne jest stwierdzenie "wystarczy zanegować w kodzie programu". Naprawdę nic mi to nie mówi ani gdzie jest błąd ani jak to poprawić.
 

Bolesław 102

Bolesław Wielki Znawca Wszystkiego
Reakcje
361 98 10
#39
Ni
Przepraszam ale mi ta pomoc nie pomogła - coż za pomocne jest stwierdzenie "wystarczy zanegować w kodzie programu". Naprawdę nic mi to nie mówi ani gdzie jest błąd ani jak to poprawić.
Nie przejmuj się Szanowny Kolego, ja też nic z tych wywodów kolegi r-mika nie po raz pierwszy nie rozumiem?
Kolega r-mik uchodzi na tym forum na wielkiego teoretyka-elektronika, a tacy zwykli (praktycy) z tych "rad" nic dla siebie nie mogą wykorzystać.:niepewny::(:)
 
Ostatnio edytowane:

r-mik

Pan Chlewik
Reakcje
145 30 0
#40
Przepraszam ale mi ta pomoc nie pomogła - coż za pomocne jest stwierdzenie "wystarczy zanegować w kodzie programu". Naprawdę nic mi to nie mówi ani gdzie jest błąd ani jak to poprawić.
Cytuję "Z Arduino nie mam problemów" do tego zaparte ukrywanie kodu. Jeżeli ktoś deklaruje, że doskonale potrafi pisać programu to wskazówka, że wystarczy zanegować sygnał wystrczy. Co innego, gdyby kolega napisał, że na programowaniu się nie zna.

tacy zwykli (praktycy) z tych "rad" nic dla siebie nie mogą wykorzysta
Mylisz się. Setki osób korzytały z mojej pomocy (wskazówek) na różnorodnych forach. Ile tysięcy "pomógł" miałem na Elektrodzie i innych forach nie jestem w stanie zliczyć. Jeśli ktoś oczekuje, że za niego napiszę program, narysuję schemat, zbuduję prototyp, przetestuję go i zrobię fotografie to się myli. Mogę to zrobić ale nie za darmo, bo to zajmuje czas a czas po pieniądz. Co innego wskazówka, jem posiłek, czekam aż PCB się umyje itp to parę minut mogę poświęcić dla dobra ludzkości.
Ja daję wędkę a nie rybę!
 
Autor wątku Podobne wątki Forum Odpowiedzi Data
Elektryka 9
Elektryka 36
Elektryka 25
Elektryka 2
Elektryka 29

Podobne wątki