Witam, Mam problem z programem na Atmege8a, mianowicie: Piszę program sterujący pracą silnika (za pomocą L293D) który dodatkowo będzie zliczał w czasie impuls od przerwań zewnętrznych i tu pojawia się problem: kiedy napisałem program obsługujący tylko pracę silnika, wszystko działa sprawnie, kiedy napisałem program zliczający impulsy w czasie, również...
Niby prosty problem, ale za to jakże denerwujący. Robię licznik impulsów (obrotów) który powinien także rozpoznawać kierunek obrotów. Na wale jest magnes, a dookoła 3 czujniki halla. Obroty prawe, po każdej sekwencji 1,2,3 powinno dodać 1 Obroty lewe, po każdej sekwencji 1,3,2 powinno odjąć 1 Staram sobie to rozpisać rozrysować na wszelki sposób, ale...
Witam Chciałem do kuchni wstawić czujnik PIR, ale z dodatkową zaletą, czyli stopniowym zwiększaniem i zmniejszaniem PWM, dodatkowo jeśli podczas zmniejszania PWM nadejdzie przerwanie INT1 od czujnika PIR, to program ma przestać zmniejszać, tylko zacząć zwiększać i to nie od zera, ale od wartości na której "zastało" go przerwanie INT1 od PIR. W sumie...
No to powodzenia ! Co do End If to przede wszystkim Basic, a to nawet ma małe znaczenie. Ta konstrukcja jest co najmniej "dziwna", a ja się szczerze dziwię, że się kompiluje. Spróbuje ten fragment na moim AVR skompliwać. Spróbowałem. Kompilue się. Moim zdaniem kompilator nie wykrywa tewgo błędu. W środku instrukcji warunkowej jest tam Loop, a to nie...
Dzięki za przykład z samochodzikiem. Pokombinuje jeszcze w BASCOM z odczytem danych z Rs232. Sprawdzę tez jak działa kontrolka comm.ocx Znalazłem tez ciekawe opracowanie: www.serasidis.gr/circuits/RS232interface... ale można tym jedynie włączać lub wyłączać 8 urządzeń (1 bajt) a ja potrzebuje odbierać w jednym pakiecie 3 informacje...
Raczej najpierw musisz sie nauczyć C No właśnie próbuję. Przez ostatnie kilka dni przewertowałem więcej PDF od kontrolerów, niż przez ostatnie 3 lata :D Na razie największy problem dla mnie to operacje bitowe - wiadomo w Bascom łatwiej. Kupiłem nawet Attiny4313, coby nie brakło pamięci. Problem był jednak w momencie polecenia włączenia przerwań, były...
Mam takie pytanie do mądrzejszych od siebie, czy jest możliwe żeby wysterować tym mikrokontrolerem 5 do 6 silników prądu stałego? Oczywiście, że możesz obsłużyć 5, a nawet 6 silników. Tylko jest jeden problem. Będziesz musiał je sterować programowym PWM'em, a nie sprzętowym. Do tego celu wystarczy np. przerwanie, z któregoś licznika. Oczywiście możesz...
Nie analizowałem Twojego programu- ale może to Ci się przyda. Może moje stare belferskie umiejętności (teraz to się nazywa- zdolności pedagogiczne) jeszcze całkiem nie zanikły. 'Program poglądowy do unikania wait 'Prescale oczywiście można zmienić 'licznik też i Temp0 też $regfile "m8def.dat" $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin...
Witam Mam pytanie dotyczące obsługi encodera... ................. Przy zmianie kierunku pierwsza cyfra na wyświetlaczu zostaje "zamrożona" a zmianie podlega druga cyfra, znów w pętli. i tak dalej. Każda zmiana kierunku powoduje przeskok na kolejną pozycje wyświetlacza Jest to w zasadzie prosta operacja, lecz brakuje tu zasadniczego warunku –...
Witam. Potrzebuję wykonać układ licznika obrotów wału silnika (poglądowy rysunek http://obrazki.elektroda.net/56_12518220... ) . Licznik musi zliczać obroty do przodu i do tyłu. O ile z samym liczeniem w jedną stronę i wyświetleniem wyniku nie mam problemu, o tyle nie wiem jak wykonać sekwencję zmiany kierunku liczenia. Domyślam się że trzeba to...
Po prostu badasz, która fotokomórka została pierwsza zasłonięta i wtedy jeśli po niej druga też się zasłoni to przypuśćmy, że ktoś wszedł i analogicznie jeśli jako pierwsza zostanie zasłonięta druga fotokomórka, a następnie pierwsza to znaczy, że ktoś wyszedł i licznik się zmniejsza. To popularna metoda wykorzystana w sterowaniu enkoderami i pod takim...
Ten program co Ci go podałem w linku zajmuje 1538 bajtów ( z obsługą LCD- tak naprawdę niepotrzebne). Dla sześciu synałów z programowym PWM.. W Bascomie Ci nie pomogę bo zanim się go nauczyłem to przesiadłem się na C. Ale zasada jest taka sama. Sprawdzamy co 20us sygnał na PINX- albo na kilku PINX. Sprawdzenie jest wykonywane w przerwaniu od jakiegoś...
Dobrze by było, gdyby przekaźnik wyłączający światła dzienne był nie zależny od programu, ani program od niego. Taki kierunek w wersji modułowej pasował by do każdego auta. Kierunkowskaz ma 2-3Hz i w tym minimalnym czasie musi zmieścić się Twoja sekwencja. Pomijam już fakt stosowania takiej niehomologowanej lampy (bo zaraz się ktoś doczepi ;) ) Dodano...
Witam, w ramach pracy mgr tworze automatyke do bramy. Napęd itd to jest rzecz malo istotna, ale sterowanie zrobiłem na atmedze 16, program napisłem w bascom, wydaje mi sie z reszta bardzo prosty, ale jakieś cuda sie robią:P mianowicie. brama po otwarciu czeka sobie pewien czas i sie zamyka. W trakcie czekania aktualny czas wyświetlany jest na lcd. I...
Poprzednio prezentowany kod nie był sprawdzany w kompilatorze, miał być jednie wskazówką do napisania prawidłowego programu. Ten prezentowany poniżej został przetestowany i sprawdzony na symulatorze programowym Bascom'a. Powinien również działać na procesorze. W prezentowanym kodzie jest wstawiona instrukcja $sim którą należy usunąć przy kompilacji...
To trzeba zmienić priorytet z 12 bitów stałokodowego pilota na odbiór HCSa lub całkiem usunąć obsługę pilota 12 bitowego. może tak: [syntax=vbnet]'*************************... '========================= przerwanie przy kazdym zboczu ICP, odczyt czasu trwania impulsu...
Dr_dead....źródłem impulsów są kontaktrony, albo poprawniej zwarcie styku kontaktronu powoduje powstanie impulsu. Sprawdzę oczywiście wydajność żródła zasilania ale nie sądzę aby tu była przyczyna problemu. Raczej liczone sa jakieś"śmieci" z drgającego styku....i moje pytanie raczej skierowane było w tym kierunku. Zastosowałem parametr , przy konfiguracji...
Po prostu w momencie wciśnięcia wyłącznika schodowego wykonujesz instrukcje "Toggle Portd" wtedy wszystkie jedynki zamieniają się w zera, ponowne wciśnięcie wyłącznika zamienia zera w jedynki. Do licznika MUSISZ poznać timery. Nie napiszę Ci nic jeśli nie zrozumiesz ich podstawowego działania (jakaś inicjatywa musi być z Twojej strony ;-) ) Rozpoznawanie...
Witam Mam płytkę z Atmega8 połączoną z czujnikiem PIR ( wejście INT1 przez transoptor ), do tego pomiar ADC ( od wartości adc zależy czas po jakim PWM będzie zmniejszone, opcjonalnie chcę też pod INT0 podpiąć przycisk, coby włączyć światło, gdybym nie znalazł się w zasięgu czujnika. Dodatkowym "bajerem" jest to, że światło ( listwa LED ) powoli się...
No widzisz musisz się nawrócić i uwierzyć. Wiara czyni cuda. :D A tak na poważnie układ już działa , jest elektrycznie poprawny. I na pewno chcielibyście wiedzieć co było nie tak w programie ? Jeden mały parametr określający kierunek zliczania licznika a mianowicie : zamiast Compare B Pwm = Clear Down użyłem Compare B Pwm = Clear Up i zaczęło działać....
Generalnie idziesz w dobrym kierunku, ale jeszcze musisz troszkę dopracować to wszystko No to jak to wszysto sprawdzić? Tę fagę zmieniałem zaraz po podniesieniu w poprzedniej wersji- ale jak to zepsuć? Podaj mi jakiś test. Może licznik co 0,256ms- sprawdzę. Dobra- sprawdziłem. Flaga_przygotowanie_odczytu działa dobrze po breakpoint. A przed- źle.
Stworzyłem kod który powinien wyświetlać czas trwania stanu niskiego na lcd. Na wyświetlaczu pojawia się 0.0 ms oraz na przemian 1 lub 2 takt(czyli ile zliczył timer). Proszę o naprowadzenie na właściwy kierunek osiągnięcia zamierzonego celu. kod: [syntax=basic4gl]$regfile = "M8def.dat" $crystal = 4000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4...
Może przybliżę bardziej zastosowanie. Chodzi mi o program sterujący silnikiem krokowym (w założeniu unipolarnym) z progrmów typu mach3, step2cnc, turbocnc. Programy te jak wiadomo podają przez port LPT step i dir. Step czyli krok można wykorzystać jako sterowanie przerywaniem int1 w naszej atmedze. Natomiast dir określa kierunek i przyjmuje stan niski...
No chciałbym użyć najlepiej tylko 3 pinów. Ktoś sugerował że jak dioda będzie szła raz w gorę a raz w dół - to przez te zmiany kierunków będzie się zapalać z wyraźnym opóźnieniem. Można więc dać rejestr przesuwny na 16 diod i tylko użyć 3 nóg mikroprocesora ? Program ma być bardzo prosty i krotki : obsługa LCD 2x16, 16 diod led i klawiatury (8 lub 11...
..... Na pewno da się to zdobić porgramowo.... Hmmmm, można pokusić się o implementację programowa zliczania (pisałem o metodzie wyżej) i wtedy sprawdzić maksymalne osiągi procesora lub niestety może okazać sie, że nie bedzie wyjścia i bez "uładu dodatkowego" a mysle tu o QEP - Quadrature Encoder Pulse (standardowo implementoany w DSP i niektórych...
Wg mnie trochę niepotrzebnie komplikujecie temat. Są gotowe liczniki pomiaru energii z komunikacją po modbusie, atmega z bascom i sterowanie grzałki. U mnie to działa z powodzeniem od 3 miesięcy. Do sieci "wyrzuciłem" niecałą 1kWh Kolego to nie tylko oto chodzi żeby kupić i zainstalować ,ale coś samemu zrobić.A tematy są po to żeby coś wykombinować....
Witam. Podłączyłem sobie GPSa do MEGA16 w celu czytania danych jak: Wysokość, prędkość, kierunek, czas itp. Z komunikacją nie ma żadnych problemów, problem pojawia sie jak chce odczytać tylko wybrane wartości. Oto programa $regfile = "m16def.dat" $crystal = 16000000 $baud = 4800 '---------------------------------------...
(...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...
Miałem dokładnie ten sam problem ale szybciutko go rozwiązałem :) W moim urządzeniu (to nie brama ale jeździ w te i we wte) sprawa wygląda następująco: obie krańcówki spięte są równolegle i podłączone do jednego portu - chciałem nieco uprościć konstrukcje i oszczędzić jeden port. Wykrywanie kierunku nie jest problemem, bo definiuje to program i zaznacza...
Jest to proste korzystasz z przerwań jakie generuje timer0 podobnie jak to opisał kolega z innego tematu tego fora w bascom napisał '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111111...
zastanawiam się czy przypadkiem nie mam problemu z zasilaniem( obok falownik i napęd silnika prądu stałego ) a zasilacz prosty -trafo +7805 +po 100nano +100 mikro. W takim otoczeniu niewykluczone że jest to problem zakłóceń spróbuj podbić pojemności zasilacza (np. po 220uF) i zblokować sygnał reset jakąś większą pojemnością. Jeśli to zmniejszy błędy...
Witam! Pierwsze kroki z uC, czyli próba stworzenia zegara matki dla czasomierza podobnego do $regfile = "m8def.dat" $crystal = 2000000 Config Pind.0 = Output Config Pind.1 = Output Config Timer1 = Timer , Prescale = 64 Dim Licz_2s As Byte Dim Parz As Bit Enable Interrupts Enable Timer1 Load Timer1 , 62500 Licz_2s = 0 Parz = 0 Do Loop End Odmierz_1m:...
A więc Twój projekt ma właściwie do wykonania cztery zadania: - obsługę LCD (inicjalizację i procedury wysyłania danych i rozkazów) - obsługę przycisków (detekcja zbocza opadającego, likwidacja efektu drgania styków) - obsługę liczenia czasu (odpowiednie skonfigurowanie licznika) - obsługę wyliczeń matematycznych (max. 9!=362880, a więc mówimy tu o...
Witam obecnych. Czy ktoś z Was ma program którym można byłoby obsłużyć enkoder impulsowy tak aby dla pewności każdy impuls był próbkowany 2 razy.Zmienna licznika w programie byłaby zmniejszana lub zwiększana w zależności ok kierunku obrotów. Jest taka opcja w bascomie "encoder"lecz nie wiem czy jest to wystarczająco niezawodna metoda na pewny oczyt...
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
Tak prosto to się nie da. Musisz zrobić tak: 1. Pełny cykl licznika zmieniającego się co sekundę, określa pełny cykl zmian świateł na całym skrzyżowaniu. 2. Na wyjściu licznika jest dekoder z tyloma wyjściami ile jest lamp na skrzyżowaniu (przy założeniu pełnej niezależności sterowania światłami czyli bez uproszczeń typu, że jak na jednym kierunku zielone...
Usiadłem przy Atmedze328P i uruchomiłem SPWM dla Twojego przykładu. Zdefiniowałem następujące wyjścia sygnałów: - PD0 - sterowanie lewym dolnym MOSFETem mostka H - PD1 - sterowanie prawym dolnym MOSFETem mostka H - PD5 - sterowanie lewym górnym MOSFETem mostka H - PD6 - sterowanie prawym górnym MOSFETem mostka H Wyjścia PD5 i PD6 są niezmienialne, ze...
No i następnej sprawy nie rozumiem. Dlaczego ten licznik liczy do 99999 a nie "po bożemu" do 65535? Przynajmniej tak się wyświetla. I z 1000 przy decr "zmniejsza" się na 9999? 'Program do sterowania małych silników krokowych za pomocą ATMega8 i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 30V 'set i reset zastosowałem w celach poglądowych-...
Nie do końca tak to działa. Silnik jest załączany i faktycznie wyłącza się gdy prąd przekroczy wartość graniczną. Musi to być szybko zrobione bo przekaźnik sterujący silnikiem jest wolny i przy dłuższym czasie zabezpieczenie zasilacza wyłącza wcześniej zasilacz. Licznik błędów jest tylko po to że gdyby przekaźnik się skleił to po czasie awaryjnym program...
6000 * 360 = 2 160 000 czyli 460ns na impuls. więc co najwyżej 9 cykli zegara ATMEGI na impuls :( Kolego, Każdy impuls z kanału A lub B w/g programu autora wywołuje interrupt, którego pełna obsługa zabierze ok 100 cykli zegara tak jak wyżej określił kol. tmf. Ale, Tmf nieporawnie rachuje: .....Jeżeli chcesz go rzeczywiście rozkręcać na 6000 obr/min...
1) Dałeś tytuł "multipleksowanie", w programie i twojej wypowiedzi widzę że multipleksu tam nie ma. Czyli że chcesz najzwyklejsze sterowanie równoległe, było tak odrazu pisać. Więc bajer z odpowiednim połączeniem nie jest ci potrzebny 2) Płynne zapalanie i gaszenie, tak więc potrzebujesz programowy PWM (no bo chcesz sterowanie równoległe) 3) Twój program...
Przepraszam za drobna nieobecność . Co do pierwszego postu z uwagami czemu atmega 32 itp taka mam na zl3avr założoną . Natomiast jeśli chodzi o to jak chce zbudować cały termostat to użyje atmegi 8 i MCP 1525 (wala się gdzieś w skrzynce :)) jako napięcia odniesienia (ok 2,5 V) . Chociaż rozdzielczość nie jest tu bardzo dokładna bo nie potrzebna jest...
A ja napisałem program sterownika dwóch silników krokowych na jednym Attiny2313 i powiem że chodzi to pięknie :) . Jest możliwość wybrania 4 prędkości obrotowych , oprócz tego oba koła mogą kręcić się w tą samą stronę (w tył lub w przód) , albo też pojedyncze kółko (też do wyboru kierunek) . Za pomocą 2 + 4 przycisków ' Sterowanie silnikami krokowymi...
Witam, Napisalem wieksza czesc kodu lecz po drodze napotkalem na przeszkode w postaci waita przy odczytywaniu temeratury. Chcialbym calkowicie zrezygnowac z waitow, bitwaitow itp wiec mysle nad wykorzystaniem timera. Napisalem maly programik testujacy lecz nie do konca dziala prawidlowo $regfile = "m8def.dat" $crystal = 8000000 Config Lcd...
Paavo91 - Takie zabawki robi się na Pic200 lub ATtiny4, w Twoim przypadku w zupełności wystarczy ATtiny13. Gdzie w Twoim programie jest instrukcja zakończenia porównania END IF? .Pobaw się poniższym kodem. [syntax=basic4gl] $regfile = "ATTiny13.dat" $crystal = 9600000 $hwstack = 8 $swstack = 8 $framesize = 8 Config Portb = &B00001000 ' Ustawienia pinów...
Uwaga! Przedstawione przez autora urządzenie nie spełnia wymogów standardu I²C (IIC) co zostało wyjaśnione w dalszej części dyskusji w szczególności od tego postu: http://www.elektroda.pl/rtvforum/viewtop... Dlatego też decyzją grona moderatorów zmieniono tytuł na "Izolowany galwanicznie interfejs jednokierunkowy open-drain...
Toż to BASCOM! '$sim $regfile = "ATtiny2313.dat" $crystal = 20000000 $hwstack = 64 $swstack = 16 $framesize = 32 Enable Interrupts Config Int1 = Falling Enable Int1 'włączenie przerwania On Int1 Imp Config Timer1 = Timer , Prescale = 64 Enable Timer1 'włączenie przerwania On Timer1 Wylacz Stop Timer1 Config Timer0 = Timer , Prescale = 1024...
Zdaje mi się że przy tym programie wyłapanie sygnału z pilota będzie bardzo trudne a mianowicie usypiasz program na 1 sek (wait 1) a następnie przez ułamkowe części sekundy chcesz odebrać kod z pilota. Wrzuć na początek sobie do uK przykładowy program z bascoma [syntax=basic4gl] 'Ten przykład pokazuje jak odczytać sygnały w kodzie RC5 'odbierane przez...
a czy mógłbym w takim razie prosić o jakiś przykład z getrc5? ja używam czegoś takiego: '---------------------------------------... ' RC5.BAS ' (c) 2000 MCS Electronics ' oparte na nocie aplikacyjnej AVR410 f-my Atmel '---------------------------------------... $regfile "m1280def.dat"...
Dzięki za zainteresowanie tematem. Rzeczywiście mogłem lepiej opisać problem na samym początku. Już naprawiam błąd. System wygląda w ten sposób, że Atmega128 taktowana sygnałem o częstotliwości 14.745600 MHz (F_CPU = 14745600) podłączona jest bezpośrednio do 3 osiowego drivera silników krokowych TB6560. Konkretnie mówiąc pin 3 portu D podłączony jest...
bascom kierunek licznik bascom bascom licznik
lutowanie izolowanych przewodów klatka schodowa esp32 camera
blaupunkt zworki blaupunkt monterey
Demontaż pompy wtryskowej S231 1HC102 - instrukcja Głośne zawory w silniku K4J - przyczyny i rozwiązania