
Chev
Użytkownicy-
Zawartość
17 -
Rejestracja
-
Ostatnio
Reputacja
3 NeutralnaO Chev
-
Ranga
2/10
- Urodziny 02.10.1995
Informacje
-
Płeć
Mężczyzna
-
Lokalizacja
Kraków
-
Języki programowania
C, C++
-
Zainteresowania
IoT, technologia oświetleniowa, łucznictwo
-
Zawód
elektronik
-
Dzień dobry, Zmagam się z następującym problemem. Potrzebuję ustawić czas jednego bitu Timera4 w stm8s003f3 na 1 uS. Robiąc to w sposób standardowy, a mianowicie: 1. Ustawiając preskaler HSI oraz CPU na DIV = 1 (czyli korzystam z 16 MHz) void clock_setup(void) { ////////////////////////////// Configure Quartz Clock CLK_DeInit(); CLK_LSICmd(ENABLE); CLK_HSICmd(ENABLE); //CLK_ClockSwitchCmd(ENABLE); CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); CLK_PeripheralClockConfig (CLK_PERIPHERAL_TIMER2 , ENABLE); C
-
Pomiar detekcji fazy jako sygnał do wysterowania układu
Chev odpisał w temacie użytkownika Chev • Sprawdzanie schematów
Poradziłem sobie już w ten sposób, że zastosowałem prostownik jednopołówkowy, dzielnik napięcia, by uzyskać napięcie 1,2V na transoptorze oraz prąd 5 mA bodajże. Do tego elektrolit na wejście 220uF + ceramik 100 nF jako filtracja. Na wyjściu w torze kolektora transoptora rezystor 10k, dczytuje sobie stan zbocza na porcie i wszystko działa jak należy. -
STM8S - samoczynne resetowanie się układu po kilku poprawnych operacjach
Chev odpisał w temacie użytkownika Chev • Mikrokontrolery
Jeśli pytasz o środowisko to jest to darmowa wersja IAR EW for STM8 3.11.1. Jest ograniczenie zapisu do 8kB, ale licencja jest nielimitowana, darmowa. Mi osobiście to wystarcza na tą chwilę. Kiedyś pokombinuje jak to przerobić na Eclipsa, bo widziałem, ze się da. -
STM8S - samoczynne resetowanie się układu po kilku poprawnych operacjach
Chev odpisał w temacie użytkownika Chev • Mikrokontrolery
Przy przekaźniku jest dioda. Problem był prozaiczny. Brak kondensatora 100 nF przy wejściu NRST powodował czasami falowanie napięcia, co wprowadzało reset. Dobry zwyczajem jest podwieszać wszystkie, niewykorzystane porty do przeciwnego stanu, aby nie dopuścić do takich dziwnych sytuacji. Widać, lenistwo dało górę. Najważniejsze, że się poprawiło i jest lekcja na przyszłość -
Dzień dobry, kontynuując swój projekt, natchnąłem się na dziwną sytuację. Jest to timer, który odmierza czas, który ustawiony jest za pomocą trzech klawiszy (na każdym wybieramy 1). Wszystko działa do momentu rozpoczęcia wykonywania się funkcji start();. Mało tego. Do procedury odliczania czasu do rozpoczęcia pracy (countdown) wszystko gra. Problem pojawia się w linii GPIO_WriteHigh(GPIOC, GPIO_PIN_6);, kiedy wystawiam stan wysoki na porcie. Generalnie wszystko działa i program wykonuje się poprawnie, ale zdarzają się sytuacje, kiedy funkcja dochodzi do tej linii, wystawia stan wysoki i r
-
Dziękuję Panom za pomoc. Udało mi się to wykonać w przerwaniu timera jak napisał @rajszym. Daje kod dla przyszłych pokoleń. Mało informacji jest ogólnie o procesorze STM8S. Myślę, że taki przykład się komuś przyda w przyszłości INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13) { if((GPIO_ReadInputPin(GPIOA, GPIO_PIN_3) == 0)) // sprawdzam stan przycisku { timeTIM2++; // jeśli wciśnięty, liczę czas +1ms TIM2_ClearITPendingBit(TIM2_IT_UPDATE); //zeruje flagę przerwania } else //jeśli zmienił się stan interrupt = 1; // ustawiam fl
-
Dzień dobry, Mam problem z pozbyciem się debouncingu na wejściu procesora spowodowanego przez przyciski. Do nogi procesora mam oczywiście dołożony rezystor pull-up 10k oraz kondensator 100nF, równolegle z przyciskiem. Walczę z tym od kilku dni i już nie mam pomysłu dlaczego to nie działa. Problem jest taki: staram się stworzyć softwarową eliminacje debouncingu. W tym celu w przerwaniu przycisku sprawdzam stan przycisku na porcie PA3. Timer TIM2 ustawiony jest na takt 1ms, więc ustawiam sobie w pętli while czas 20ms, aby po tym jeszcze raz sprawdzić stan portu, czy oby na pewno jest niski
-
Pomiar detekcji fazy jako sygnał do wysterowania układu
Chev odpisał w temacie użytkownika Chev • Sprawdzanie schematów
Super. Dziękuję za dobre info! Dopytam jeszcze, bo kto pyta nie błądzi. Powiedzmy, że przerwanie pojawi się, gdy na wejściu pojawi się stan niski. Nogę kolektora w takim przypadku podłączam bezpośrednio do uC bez zasilania, tak jak jest na rysunku, tak? -
Pomiar detekcji fazy jako sygnał do wysterowania układu
Chev odpisał w temacie użytkownika Chev • Sprawdzanie schematów
Masz rację, że wystarczy przekaźnik z cewką 230V, ale dla samej nauki chciałbym to zrobić na transoptorze. Przychodzi mi do głowy rozwiązanie dołożenia drugiej diody równolegle w przeciwnym kierunku. Wtedy przepływ napięcia będzie dwukierunkowy. Rozwiąże to problem? -
Pomiar detekcji fazy jako sygnał do wysterowania układu
Chev opublikował temat w Sprawdzanie schematów
Dzień dobry. Postanowiłem zbudować układ, który pozwoliłby mi na monitorowanie poziomu sieci 230V. Chcę wykorzystać czujnik ruchu, aby za jego pomocą zaświecać lampę, jak to się po bożemu robi, a przy okazji dodatkowo wysterować inne urządzenie za pomocą mikrokontrolera i przekaźnika. Zbudowałem schemat pokazany na zdjęciu. Zasada działania jest taka: Zasilam układ i czujnik ruchu z napięcia 230V. W momencie załączenia się czujnika ruchu, przekaźnik w nim zostaje zwarty i ten sygnał chciałbym badać, ale idźmy dalej. Dioda zaczyna przewodzić, wycinając połowę sinusa na fo -
Tak jest to policzone. 1,4V (nowe 1,45V ale biorąc uwagę degradację, biorę pod uwagę gorszy przypadek) osiąga naładowane ogniwo NiCd, więc naładowanie moich 6 pastylek, będzie wymagało 8,4V. Tak samo LiFePo4. Naładowane ogniwo osiąga napięcie 3,65V, lecz to w porównaniu do NiCd można trochę przeforsować napięciowo do 4,1V, co nie wpływa znacząco na jego kondycję. Ja przyjąłem ładować je do 3,85V na celę, bo tak pozwalają na to rezystory użyte w układzie (nie chcę generować nowych elementów, bo później wiąże się to też z kosztami układania przez zewnętrzną firmę. Ciągle kompromisy). Jest kilka
-
Akumulator jest ładowany zawsze stałym prądem 180 mA z możliwością wybrania napięcia ładowania na switchu: 8,5V oraz 11,5V, by ładować ogniwa NiCd (7,2V) lub LiFePo4 (9,6V). Po uzyskaniu napięcia 8,4V dla NiCd oraz 11V dla LiFePo4 nastąpi jakaś zmiana sygnalizacji LED, a w przypadku, gdy napięcie na złączu akumulatora będzie niższe niż 6,5V, co ma sygnalizować błąd lub brak akumulatora, ma na nastąpić adekwatna do tego faktu sygnalizacja LED. Oba akumulatory będą o pojemności 1800mAh. Ładuje je prądem 0,1C z bardzo prostego powodu. Nie chcę generować dodatkowych kosztów na czujnik temperatury,
-
Z gotowych rozwiązań mogę polecić system sterownia Casambi CBU-PWM4. Wystarczy podłączyć zasilacz oraz pasek LED RGB lub RGBW, do sterownika, pobrać aplikacje na telefon i skonfigurować sceny, które mają uruchomić się o danej godzinie. Kosztuje trochę, ale jest to gotowe, przyzwoicie działające rozwiązanie.
-
1. Nie używałem jeszcze nigdy ADC, więc stąd te pokłady niewiedzy. Wiedziałem o separacji fizycznej tych ścieżek, ale jakoś nie przyszło mi do głowy, że to jednak faktycznie ta sam potencjał. Teraz wiem jak to wykonać fizycznie. 3. Faktycznie, chochlik. Wzmacniacz na wejściu dodatnim widzi napięcie 3,3V, a te moje nieszczęsne R3 razem z R1 i R2 mają wpływ na wzmocnienie pochodzące z wejścia nieodwracającego. Trochę doczytałem i narysowałem kolejny schemat. Przy dopasowaniu R1=R3, R2=R4 moje napięcie wyjściowe wyniesie Uwy = R2/R1 (U2-U1), z tym że chcąc zastosować LM258 czy jeg
-
Kubeł zimnej wody jeszcze nikomu na złe nie wyszedł. No chyba, że ktoś złapał po nim katarek. Do rzeczy. Uzupełniłem pokaźne pokłady niewiedzy dot. OPAmpów. Załączam kolejny schemat, przemyślany, nie wykonany ,,od czapy''. Zaczniemy od zasilania. Doprowadzam zasilanie +3V3 - AGND do OPAmpa, z tych samych linii, które doprowadzają zasilanie do uC. W ten sposób zapewniam sobie ten sam punkt odniesienia dla pomiaru napięcia wyjściowego plus dodatkowo robię dzielnik napięcia 1:1 na wejściu nieodwracającym, by przesunąć off-set mojej masy na 1/2Vcc zasilania OPAmpa, czyli 1,65V jak kolega @RF