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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 20 maja 2025, o 00:07


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 21 cze 2018, o 08:43 
    Offline
    Nowy

    Dołączył(a): 13 mar 2018
    Posty: 7
    Pomógł: 0

    Witajcie,

    W związku z tym, że mój brat prowadzi gospodarstwo rolne, a moja dusza inżyniera sprawia, że staram się "ulepszać dobre" zrodziła się koncepcja na elektryczne sterowanie wydajnością siewnika.
    Jako, że z wykształcenia jestem mechanikiem, nie elektronikiem pewne kwestie spędzają mi sen z powiek. Schemat mojego projektu wygląda następująco:

    Obrazek

    Stabilizator U2 zastosowano w celu dostosowania napięcia zasilania dla mikrokontrolera.
    Stabilizator U3 zastosowano w celu dopasowania sygnału wejściowego do logiki mikrokontrolera (Sygnał wejściowy: Stan wysoki powyżej 6,3 V, Sygnał niski poniżej 1,3 V. Częstotliwość max: 1 kHz, sygnał "prostokątny")
    Silnik elektryczny M1 12V DC 3000 obr/min o mocy maksymalnej 220W z przekładnią ślimakową i=60.
    MOSFET - BUZ11
    Masa wspólna.

    Pytania do sprzętu:
    Niewykorzystane piny powinny być podpięte do VCC czy GND ??
    Czy rezystor R1 powinien być podciągnięty do VCC5V czy GND ? Czy wartość 1k ohm wystarczy ?

    2. Pisząc program chciałem bazować na zmodyfikowanej wersji przykładu prędkościomierza z www.mikrokontolery.blogspot.pl.
    Moje umiejętności programistyczne okazały się jednak niewystarczające, żeby odczytać prędkość obrotową nawet na porcie szeregowym :(

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


    Sygnał wejściowy określa prędkość pojazdu (130 Hz/m/s). Chciałbym, aby dla wartości około 4 m/s (520 Hz) PWM dla silnika był 100%, natomiast dla 0,5 m/s (ok 65Hz) 10%.
    Chcę, aby odczyt i zmiana PWM realizowana był najlepiej co 13 Hz. Wiem, że program tej części jeszcze nie uwzględnia. Pokonało mnie samo wyświetlanie wartości prędkości na porcie szeregowym :(

    Z góry dziękuję za pomoc i dyskusję w temacie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 10:07 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 mar 2014
    Posty: 1475
    Pomógł: 167

    rafisoltys napisał(a):
    Stabilizator U3 zastosowano w celu dopasowania sygnału wejściowego do logiki mikrokontrolera (Sygnał wejściowy: Stan wysoki powyżej 6,3 V, Sygnał niski poniżej 1,3 V. Częstotliwość max: 1 kHz, sygnał "prostokątny")
    Nie tak Panie Kolego, nie tak ;)
    Zajrzyj jak to się robi na blog Mirka http://mirekk36.blogspot.com/2015/05/ko ... v-ttl.html

    --
    Pozdrawiam,
    Robert

    ------------------------ [ Dodano po: 2 minutach ]

    rafisoltys napisał(a):
    Niewykorzystane piny powinny być podpięte do VCC czy GND ??
    Niewykorzystanych pinów nie podpinasz bezpośrednio ani do VCC ani do GND (jak bardzo chcesz to stosuje się pull-up).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 10:30 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    Jeszcze dużo nauki przed Kolegą.
    "Program" to na razie jakaś bezładna mieszanka kodu w C oraz wstawek z Arduino.
    Proponuję najpierw nauczyć się "mrugać" diodą LED (zamiast tranzystora BUZ), potem opanować PWM ( sterowanie jasnością tego LED=odpowiednik zmiany szybkości silniczka), potem opanować pomiar częstotliwości. Wtedy można połączyć to wszystko w jedną całość ( a przy okazji już trochę wiedzieć o uC i o programowaniu w C).

    ps.
    Pin 1 w tiny2313 jest Reset-em , nawet jeżeli ten układ z 7805 zadziała to efektem będzie co chwilę reset uC.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 10:53 
    Offline
    Nowy

    Dołączył(a): 13 mar 2018
    Posty: 7
    Pomógł: 0

    Autorem programu nie jestem. W prawdzie z oryginału zamieniłem tylko wyświetlanie wyniku z LCD na port szeregowy.
    Migać diodą potrafię.
    Nie potrafię korzystać z liczników i timerów i przerwań.Tzn nie potrafię napisać kodu, który zmierzy mi czas pomiędzy pierwszym zboczem rosnącym, a na przykład 13 zboczem rosnącym (Rozumiem, że licznik miałby zliczać do 13 i następnie wyzwalać przerwanie ????). Najlepiej byłoby gdyby, udało się z dużą powtarzalnością i dokładnością obliczyć czas pomiędzy następującymi po sobie zboczami.

    Uważam, że aby zjeść chleb nie trzeba od razu zostawać piekarzem, stąd mój post.

    Wiem, już np. ze stabilizator do tego rozwiązania się nie na da i muszę zastosować konwerter poziomów logicznych. I to jest wiedza, którą zdobyłem tutaj za którą dziękuję i proszę o jeszcze :)

    rskup napisał(a):
    Niewykorzystanych pinów nie podpinasz bezpośrednio ani do VCC ani do GND (jak bardzo chcesz to stosuje się pull-up).

    Dzięki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 11:24 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    Ale żeby w domu upiec np. ciasto trzeba mieć przepis i trochę wiedzy i umiejętności.
    Kolega łączy program w "czystym" C z fragmentami programu z Arduino, całość nie ma prawa nawet się skompilować ( o czym nie ma w poście ani słowa) a co dopiero działać.
    Dlatego proponuję podłączyć LED zamiast silnika ( dla bezpieczeństwa eksperymentatora); po opanowaniu PWM ( dopiero podłączać silnik).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 11:34 
    Offline
    Nowy

    Dołączył(a): 13 mar 2018
    Posty: 7
    Pomógł: 0

    krish napisał(a):
    Ale żeby w domu upiec np. ciasto trzeba mieć przepis i trochę wiedzy i umiejętności.
    Kolega łączy program w "czystym" C z fragmentami programu z Arduino, całość nie ma prawa nawet się skompilować ( o czym nie ma w poście ani słowa) a co dopiero działać.
    Dlatego proponuję podłączyć LED zamiast silnika ( dla bezpieczeństwa eksperymentatora); po opanowaniu PWM ( dopiero podłączać silnik).


    Program w obecnej postaci ma jedynie odczytywać prędkość obrotową i wysyłać do portu szeregowego, czego niestety nie robi :(. Gdy będę miał wartość prędkości obrotowej zapisaną do zmiennej to z PWM sobie już poradzę.
    Program się kompiluje bez błędów.

    Czy stabilizator na linii sygnałowej można zastąpić zwykłym dzielnikiem napięcia ??
    Na różnych forach proponują też transoptor.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 12:36 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    Kompiluje się? Chyba nie ten co zamieściłeś ( wklej komunikaty z kompilacji).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 13:35 
    Offline
    Nowy

    Dołączył(a): 13 mar 2018
    Posty: 7
    Pomógł: 0

    krish napisał(a):
    Kompiluje się? Chyba nie ten co zamieściłeś ( wklej komunikaty z kompilacji).


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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 14:10 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    1. Nie wspomniałeś, że używasz kompilacji w Arduino IDE.
    2. Program nie jest zgodny nomenklaturą z Arduino ( setup(), loop(), jest setup(), main()=pomieszane C z Arduino )
    3. To nie jest całość komunikatów: u mnie jest błąd w linii: Serial.println('Pomiar predkosci');
    3. Jaką płytkę wybrałeś do kompilacji (Narzędzia/Płytka:...)?
    4. czy Twoje Arduino wspiera Tiny2313?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 14:48 
    Offline
    Nowy

    Dołączył(a): 13 mar 2018
    Posty: 7
    Pomógł: 0

    Skopiowałem wszystkie komunikaty. Program przeportowany był na ATTIny13A (przynajmniej jeśli chodzi o ustawienia TIMERA i LICZNIKA).
    Krish tak jak wspomniałem, ja tego programu nie napisałem można wręcz powiedzieć, że próbuję go odpalić na swoim ATTiny i wyrzucić wynik prędkości do wyjścia szeregowego. Program mi nie działa. Staram się go zmusić do współpracy.

    Dziękuję, Ci za aktywność w tym wątku, ale problem dalej istnieje i ani trochę nie zbliżyłem się do jego rozwiązania.

    Zastanawiam się nad pójściem w arduinowe pulseIn() i mills() ? Może podsuniesz jakąś koncepcje jak ugryźć ten program ? Na tym etapie nie chcę uczyć się pisania programu od nowa, chciałbym już istniejący dostosować do swoich potrzeb. Na własne programy przyjdzie czas. I na pewno z rady dotyczącej zaczęcia od zmiany jasności diody skorzystam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 15:20 
    Offline
    Użytkownik

    Dołączył(a): 22 gru 2013
    Posty: 296
    Lokalizacja: Szczecin
    Pomógł: 47

    -sorry ale poprzednio zasugerowałem się ,że to ma być tiny2313 a nie tiny13 ( wejście reset pozostaje-aktualne).
    -Arduino nie znam (zbyt dokładnie).
    -Włącz: Plik/preferencje/pokaż szczegółowe... -oba ptaszki; pokaże się cały przebieg kompilacji z błędami i warningami
    -Program na pewno nie jest właściwie przeportowany na tiny13 (np. Tiny13 nie ma rejestru TIMSK1)
    -Nie wszystkie peryferia Tiny działają tak samo jak w Mega.
    -Arduino używa jakichś timerów i przerwań, które mogą kolidować z Twoimi.
    -dlaczego Tiny? nie lepiej jakieś nano lub micro ( 10-20PLN-cała płytka) itp. z Mega328P-nowszy, lepszy, więcej zasobów i dużo oprogramowania bez przeróbek. Wspierany przez arduino bez kombinacji.
    - i ostatnie, gdzie to biedne Tiny13 ma wyjście "serial"? (w "dużych" avr-ach "Tx").



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2018, o 15:48 
    Offline
    Nowy

    Dołączył(a): 13 mar 2018
    Posty: 7
    Pomógł: 0

    Udało mi się w końcu trafić na stronę, gdzie znalazłem potrzebne mi informację i kod.

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


    Komunikacja z Serial jest. Wyświetla mi nawet wartość zmiennej rpm.
    Problem jest tylko taki, że wartość ta jest w granicach 560-580 bez podłączenia czujnika (w wersji testowej chciałbym symulować czujnik przyciskiem).
    Czy zwykły filtr RC powinien to wytłumić ?

    ------------------------ [ Dodano po: 14 minutach ]

    Wynik zmiennej rpm jest zdecydowanie losowy, raz wskazuje 0, raz 300, raz 1000. Nie zależnie czy podłączony jest jakikolwiek przewód do PIN4

    ------------------------ [ Dodano po: 15 minutach ]

    Wciśnięcie przycisku powoduje, że zmienna rpm przyjmuje wartość 0.



    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: 12 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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