Witam. Zaczynam zabawe z procesorkami i już mam pare pytań: 1 Jest formułka GetADC (czy coś, analog-digital conv.) -w jakim "formacie" czy formie dostaje z tego polecenia wynik?? 2 Jak te kilka wyników ustawić w kolejce? 3 I co można zrobić z danymi z adc? - np czy można przekonwertować na milisekundy?? :?:
Znam standardowa obsluge ADC w bascomie czyli getadc.. Problem z nia jest taki ze procesor zatrzymuje swoje dzialanie na dosc dlugi czas konwersji. W moim programie nie moge sobie na to pozwolic. Dlatego potrzebuje procedure inicjalizacji ADC na rejestrach i odczytanie wyniku konwersji po czasie po jakim na pewno zostala zakonczona (u mnie 1ms) ew po...
Domyślam sie że to jest BASCOM. GetAdc(x) - funkcja wykonuje pomiar na nodze ADCx. Czyli dobrze myślisz. Pozdrawiam Yakuza Edit: Tylko pamiętaj że przetwornik musi pracować w trybie SINGLE.
Porównaj: Moja propozycja Wartosc = Getadc(4) Wartosc = Wartosc / 5 Wartosca = Wartosc Twój kod Wartosc = Getadc(4) Wartosc = Wartosc / 5 Wartosc = Wartosca Widzisz różnicę :?: Piotrek
No dobra działa. Mam teraz Przebieg PPM - o to mi chodziło! Moge mieć aż 6 kanałów na ATmega8
Po pierwsze to z adc dostajesz zmienną w zakresie 0-1023 , a w pwm zadeklarowałeś 8 bitów czyli zakres 0 - 255. Spróbuj tak: Dim U As Word Dim P As byte Start Adc Do U = Getadc(0) U = Getadc(0) P=U/4 Pwm1a = P Loop End Przy konfiguracji przetwornika użyj Reference = avcc. Ewentualnie pisz na GG, a wyniki opiszemy w temacie :D . Pozdr. Daniel
Programik w porządku z małym ale Wart_ac = Getadc(1) Wart_ac = Getadc(1) ' dwa razy to samo zalecam i V = Wart_ac * 0.004884 ' też zalecam Jeśli nie zależy ci na czasach kolejnych odczytów to zalecane jest odczekać > niż 20ms przed kolejnym pomiarem z ADC Wart_ac = Getadc(1) Waitms = 50 Wart_ac = Getadc(1) to od strony programowej, teraz od elektroniki:...
Znalazlem jakis stary programik.... odczyt 2 kanalów ADC z częstościa 100 razy na sekunde... Analize pozostawiam Tobie...(podpowiem że Help wszystko wyjaśni) Pozdrawiam $regfile = "m8def.dat" $crystal = 11059200 $baud = 19200 Config Adc = Single , Prescaler = Auto , Reference = Off Config Timer1 = Timer , Prescale = 256 On Timer1 Pomiar Enable...
Gdzie to wyczytałeś, tak dla formalności? Oczywiście że nie, przecież masz napisane: Sample = Getadc(0) ' pobierz napięcie z ADC0 A gdzie jest w Uc ADC(0)? Dodano po 1 I jeszcze jedno, to wskaźnik MONO.
Stosowanie GETADC jest możliwe w trybie SINGLE przetwornika, a nie FREE.
Spróbuj zmodernizować kod w ten sposób: Do A = Getadc(0) B = Getadc(3) C = A * 0.0049 D = B * 0.0049 T = Atn2(c , D) ' zwrócenie wartości arctan w radianach E = Rad2deg(t) 'zamiana rad na stopnie G = Fusing(c , "#.&&") 'zamiana wart. nap. sin na tekst H = Fusing(d , "#.&&") 'zamiana...
tak jak napisałem Zero = Getadc(2) If Zero < 780 Then Call Pomiar Call Diody End If
Nie zadziała to w tak prostej formie w jakim masz kody. 1. W kodzie 1 musisz ustawić PWM z timera 1 na 10bitowy (masz 8bitowy w konfiguracji). 2. W kodzie 2, nie masz ustawionego PORTC na wejście dla przetwornika. 3. W kodzie 2, samo przypisanie W = Getadc(channel) (po skonfigurowaniu timer1 i zmianie rozdzielczości PWM na 10bit) będzie zmieniało prędkość...
Włącz timer1 i w jego przerwaniu wstaw getadc np co sekundę. To ma być woltomierz? Rozumię , że masz tylko jedną cyfrę na wyświetlaczu?
Niestety tamto nie zadziałało pojęcia nie mam czemu, ale udało mi się zrobić takie coś jak niżej. Da sie prostym sposobem skrócić zmienną single do postaci xxx.x ?? [syntax=basic4gl]Odczyt = Getadc(0) Temp = Odczyt * 0.0025 Temp_dz = Temp * 100[/syntax]
Nie wiem jak teraz, ale kiedyś w BASCOMie każde polecenie GETADC robiło dwie konwersje i wynik brało z drugiej. Więc w BASCOMie nie trzeba odrzucać pierwszej konwersji bo robi to automatycznie polecenie GETADC (co jest bez sensu no ale mówię jak jest (lub było)).
gts wielkie dzięki! Ale mam problem jeszcze z układem :/ Gdy przyłożyłem 3V to pokazało tak jak trzeba. Ale gdy nie przykładam nic świecą mi się ciągle 2 diody. A można powiedzieć że zapalają się i gasną z dużą częstotliwością... Ehh chyba moja płytka coś fiksuje tzn zimne luty. jak stoi w pionie jest ok a w poziomie mi się zaświeca dodatkowa dioda....
Użyj przetwornika A/C do mierzenia napięcia a potem to tylko przetwórz jak ci pasuje. Przykładowy program do miernika napięcia: Config Adc = Single , Prescaler = Auto Start Adc Dim W As Word do W = Getadc(0) Loop End
dlaczego aż 4 MHz- procek nie wyrabia się przy 1Mhz? przy 4MHz szybciej wykona program i przejdzie do uśpienia - więc chyba naa to samo wyjdzie [przy 1MHz program wykona się 4 razy wolniej]. Ale spróbuję. ustawić 1MHz i po zakończeniu pomiarów przez ADC - Getadc=x, wyłączać przetwornik.
A jednak da sie w Bascomie zmieniac konfiguracje przetwornika ADC w trakcie wykonywania programu. Oto fragment dzialajacego programu: Do If Pinb.0 = 0 Then Config Adc = Single , Prescaler = Auto , Reference = Avcc '5V Start Adc Wart_ac = Getadc(0) End If If Pinb.1 = 0 Then Config Adc = Single , Prescaler = Auto , Reference = Internal '2.5V Start Adc...
Witam , wklejam kod jaki udało mi się wypocić. Miało być tak pięknie a wyszło jak zawsze :-( Ten twój kod jest oczywiście błędny. Po pierwsze, jeżeli stosujesz napięcie referencyjne wewnętrzne, to dla AtMega 8 wynosi ono 2.56V. Zatem poziom napięcia mierzonego podanego na dowolny pin ADC nie może przekroczyc tej wartości. Jeżeli jednak ten warunek...
Napisałem sobie prosty program w Bascomie AVR - wiem że bascom nie cieszy się najlepszą opinią ale jeszcze się nie przejechałem, wiele urządzeń działa do dziś i może zła opinia to po części zasługa początkujących którzy zwalają brak umiejętności na kompilator. Program w przerwaniu od timera mierzy wartość z ADC, jest to prąd silnika, i porównuje ją...
Powinieneś raczej mierzyć prąd na rezystorze diody (tylko że ten rezystor dla ułatwienia pomiaru musi być od strony masy). Żeby mierzyć w połowie impulsu to musisz uruchomić przerwanie od Timera1 i w nim dać funkcję Getadc. A jeżeli już mierzysz napięcie zasilania a nie prąd diody, to nie musisz trafiać w połowę impulsu więc już teraz powinno działać.
Zdaje sie że wszystko robisz zupełnie nie tak. Jak masz ten fotorezystor to po prostu jedną nóżke do pinu przez rezystor ,drugą do zasilania. A do temperatury potrzebujesz raczej LM335z (ja taki mam) też jedna nóżka do zasilania ,druga do pinu uP ,następna do masy. Obydwa odczytujesz przez GetADC. szukaj tego w Helpie do bascoma ,ale zmień go na AVR...
Mam pytanie: Czy mikrokontroler rozumuje w ten sposób: Wartość 400 (1000mV) na ADC da mi w kodzie: [syntax=basic4gl]Do A = getadc(0) LCD A Loop[/syntax] na wyświetlaczu 1000? Kolejne pytanie: Czy poniższy kod jest prawidłowy? [syntax=basic4gl] Do A = getadc(0) Temp = A / 10 LCD Temp ; "C"[/syntax] Załóżmy że wartość napięcia to 1000mV (400), więc na...
Najprostszy dolnoprzepustowy filtr programowy: dim vs as single, sr as single, kfil as single, kfil1 as single, vi as integer coef=0.0049 kfil=... 'stała "czasowa" filtracji kfil1=kfil+1 vi=getadc(...) sr=vi*coef 'inicjowanie sredniej do ... vi=getadc(...) vs=vi*coef sr=kfil*sr sr=sr+vs sr=sr/kfil1 'średnia "ciągnięta"...
Chcę użyć przetwornika AD w Atmega8. Programuje w bascomie AVR. Jest tam funkcja GetADC i nie mam żadnego problemu z jej uzyciem, ale ma ona taka zasadncizą wadę, że dziala tylko w trybie single i po jej wywołaniu czeka aż konwersja zostanie zakończona. (Jest to dość naturalne, bo przecież musi zwrócić wynik konwersji). Zależało by mi, aby uniknąć tego...
Kod poniżej: [syntax=basic4gl] Wartadc1 = Getadc(5) V = Wartadc1 * 0.02795 / mnożnik z dzielnika rezystorowego dla napięcia Uwej = Fusing(v , "#.&") Wartadc2 = Getadc(4) V3 = Wartadc2 * 0.025 /mnożnik z dzielnika rezystorowego dla prądu Iwej = Fusing(v3 , "#.&") P1 = V * V3 Pwej = Fusing(p1 , "#.&") Cls Lcd "Pwej=" ; Pwej ; "[W]" Wait 1[/syntax] Po...
Witam, dopiero ucze się programowac w Bascomie i mam pare pytań. Ponumeruje je żeby łatwiej było odpowiedzieć: 1.Która częśc kodu odpowiada za pobranie napięcia Wart_acpomoc = Getadc(2) 2.Która częśc kodu wyświetla napięcie na Wyświetlaczu. Lcd "Akus " ; Wart_nap Polecam Helpa.
Nie !!!! Nie w środku pętli to byłoby bez sensu. Ale ja to bym zrobił inaczej [syntax=basic4gl].. .... ...jakieś instrukcje.. .. Dim Pk As Byte Declare Sub PrzyciskC5 Ddrc = &B00000011 Set Portc.5 .... ...jakieś instrukcje.. .. Menu3: Pk = 0 Do Locate 1 , 8 Lcd "T" Start Adc Temp = Getadc(6) Temp = Getadc(6) C = Temp / 4.166 Celsius = Fusing(c , "###.#")...
Cursor Off ' ' Po co tu pracowicie uśredniasz wyniki z 10 kolejnych pomiarów .... ' For Z = 1 To 10 P = P + Getadc(3) Next T '----pobieranie P = P / 10 ' Tu liczysz średnią ' ' ... by tu pobrać dane bez uśredniania ??????????????????????? ' P = Getadc(3) ' ^^^^^^^^^^^^^^^^^ V = P / 204.5 A = Frac(v) V = Int(v) A = A...
Witam. Napisałem program w bascomie, zwykły termometr z wyjściem na Mikroprocesor to Atmega8 + lcd + DS18b20. Wskazuje tylko tem:25.5oC ,brak reakcji na tem.Nie wiem ,gdzie zrobiłem błąd. Może jakaś podpowiedż. Poprawiłem SYNTAX - następnym razem proszę robić to prawidłowo: Instrukcja: http://www.elektroda.pl/rtvforum/viewtop...
AT90S2313 nie posiada przetwornika analogowo-cyfrowego więc do mierzenia napięcia stosowano komparator. Ty masz ATmega8 który ma owy przetwornik - nim najlepiej mierzyć napięcie z LM35. Poza tym ATmega8 ma tylko jeden komparator. Dim w As Word 'właczenie przetwornika CONFIG ADC = single, PRESCALER = AUTO, REFERENCE = internal w = Getadc(0) 'odczyt...
Witam. Szukałem na forum i niestety nie znalazłem jednoznacznej odpowiedzi na mój problem (tak czasami bywa). Tak więc atmega8 to tego wykorzystany wewnętrzny ADC, kanał 0, wpięty lm335+4k7 do VCC, kwarc 11059200, zasilanie przez dławik 10uH do AVCC, 10uF pomiędzy AREF i GND zgodnie z opisem z helpa, configuracja ADC: Config Adc = Single , Prescaler...
Witam. Napisałem prosty programik. Działa on tak że po włączeniu układ generuje impulsy o częstotliwości regulowanej przez ADC2. Teraz nie mam pojęcia jak zrobić aby przycisk podpięty na PD.0 włączał i wyłączał mi ten generator na wyjściu atmegi. [syntax=Basic4GL]$regfile = "m8def.dat" $crystal = 8000000 Config Portd = &B00000000 Config Portb = &B11111111...
Dzięki za dotychczasowe odpowiedzi :) Mam kolejny problem, tym razem z ADC, kod programu mam chyba dobrze napisany(tak mi sie wydaje) lecz nie wiem jak podłączyć np. potencjometr lub fotorezystor? Mój program wygląda tak: [syntax=basic4gl]'ustawienia procesora $regfile = "m8def.dat" $crystal = 1000000 Config Adc = Single , Prescaler = Auto , Reference...
Witam Wie ktoś jak za pomocą Atmega8 zbudować prosty woltomierz do pomiaru napięcia od 0 do ok. 5V i wyświetlić to na wyświetlaczu ?? w postaci np. Config Adc = Single , Prescaler = Auto, Reference = Internal Start Adc Dim W As Word , kanal As Byte kanal = 0 W = Getadc(kanal) W = Getadc(kanal) cls lcd W ; " volt " ; End Oto...
dobrze by było troszkę wzmocnić to napięcie (tak żeby można je było mierzyć) minimalne napięcie odniesienia dla 8535 to chyba 2V, ale możesz dać więcej. Procedura w bascomie jest banalna deklarujesz np: Config Adc = Single , Prescaler = Auto , Reference = Internal Pomiar: Zmienna_y = 0 Zmienna_v = 0 Do Incr Zmienna_y Start Adc Zmienna_x = Getadc(0)...
1. OCR1A = Getadc(3) 2. OCR1A = 255 - Getadc(3) Jest aż tak źle? Tutaj nie chodzi o zmianę trybu PWMa bo po zmianie trybu zostanie wygenerowany jeden impuls. Nie wiem skąd*. Ale tak napisał Tomekddd. Chodzi o odwracanie fazy na driverze. Jeżeli można by to odwrócić zmieniając tryb PWMa to oczywiście lepiej by było to tak zrobić niż pisać "255 - xxx"....
Ze schematem trudno będzie, komp po formacie, zero podobnych programów, układ na płytce stykowej, ale się postaram. A może na wynik wpływa zmienna Va zamiast liczb 0-5? http://img838.imageshack.us/img838/1482/... Nie mogłem go wrzucić na elke, bo .png.
Witam. Mam prosty woltomierz na ATmega8 i powstają problemy: Mam zabezpieczenie odwrotnego podłączenia napięcia badanego na tranzystorze IRF520 ale przecierz jak wpakuje mu te dajmy na to nawet 300V w dren to sie nie spali pomimo że napięcia nie będzie na żadnym innym pinie , przebije go czy nie? ile trzeba voltów aby go przebiło napięcie?? Czy dioda...
Witam Z góry zaznaczam, że nie znam Bascoma ale może taki przelicznik: Ture11 , ale może się do czegoś przydać. :D
Cytat z noty: 0.2 to 4.7 V OUTPUT Przyjmijmy ze max napiecie na wyjsciu przetwornika to 5V(4.8V). A wiec: Dim Wart_nap As String * 5 ..... Wartosc = Getadc(0) A=Wartosc * 0.0048 Wart_nap = Fusing(A , "##.&&") Teraz to co podasz na ADC0 czyli napiecie w zakresie 0-5V bedziesz mial w zmiennej Wart_nap.
Czy ten program ma prawo działać? $regfile = "m8def.dat" ' $crystal = 8000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Portb.1 = Output Dim Wart_ac As Word Dim V As Single Dim Wart_nap As String * 3 Start Adc Do Wart_ac = Getadc(1) Cls Lcd "wartosc napiecia" Lowerline V = Wart_ac * 0.0049 Wart_nap...
Przy kompilacji kodu na atmega8 wychodzą mi błędy;ADC_MUX entry not found in dat file. Ten sam kod działa na atmega16 oczywiście po zmianie wyprowadzeń. $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portd.2 , E = Portd.3 , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.0 Config Lcd = 16 * 2 Cls Cursor Off...
Witam 1. Mierzone napięcie podłączasz, pod któryś z pinów portu C np. Portc.5 2. Zakładam, że przetwornik A/C zasiliłeś prawidłowo. 3. Napięcie pobierasz instrukcją Getadc(5) (w kwantach a nie w woltach) 4. To co Ci wyjdzie w kwantach mnożysz przez napięcie przypadające na 1 kwant (dla napięcia referencyjnego 5V jest to 4.88mV) i jeszcze przez wartość...
co do pierwszej odpowiedzi to: mógłbyś mi powiedzieć gdzie dokładniej bo jakoś znaleźć nie mogłem, ktoś też mi mówił że widział na jakiejś stronie coś podobnego, ale jak dotąd ja tego nie znalazłem będe wdzięczny a co do drugiej odpowiedzi to: po co wogóle robić sobie woltomierz można kupić gotowy??? ja poprostu eksperymentuje z uC i właśnie robie sobie...
Program skończony:) Pozmieniałem co nieco w twoim pomyśle mpietras i układ ładnie pokazuje temp z dokładnością do jednego stopnia bo tyle ino potrzebuje. Zrobiłem to tak: Do Odczyt = Getadc(0) Wynik = 0.1 * Odczyt Temp = 98 - Wynik Wynik3 = Temp / 10 L2 = Int(wynik3) Wynik1 = Wynik3 - L2 L1 = Wynik1 * 10 Loop Temat można zamknąć i dzięki...
Może i to wina programu bo długo nad nim kombinowałem i jest dość rozbudowany. Oto fragment odpowiedzialny za sam pomiar napięcia [syntax=basic4gl]For Krok = 1 To 100 'pomiar napięcia Pomiar = Getadc(4) Napiecie = Napiecie + Pomiar Next Krok Napiecie = Napiecie / 100 Napiecie = Napiecie * 0.01452 Napiecie = Napiecie + 0.8[/syntax] Mierzy poprawnie więc...
Witam, proszę o pomoc: Stworzyłem taki kod: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.0 , Rs = Pc.0 Cls Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc Dim W As Word Cursor Blink Do W = Getadc(0) W = Getadc(0)...
Witam, stosuje LM35 od wielu lat. Do odczytu temperatury jw Bascom stosuje następujący kod Zmienne zadeklarowane są następująco: Dim Volt As Word Dim Tp As Single Dim Tm As String * 4 ......... Volt = Getadc(0) Tp = Volt * 5 Tp = Tp / 10 Tm = Fusing(tp , "#.&") ......... Lcd Tm;" ";"C"
Przede wszystkim zrób tak: Volt = Getadc(1) Cols = Volt / 64 Potem wyświetl sobie maksymalne napięcie jakie dostajesz z LM na ADC, czyli: Locate 1 , 1 Lcd Volt Max ADC to 1024. Jeśli chcesz by wskaźnik był w pozycji max przy wartości ADC 1024 to musisz podzielić Volt przez 64. To proste: MAX ADC = 1024 MAX pozycja na wyświetlaczu = 16 Czyli...
Mam 2 atmegi. Jedna to atmega8 a druga atmega16. Używam Uart programowy i nie wiem dlaczego nie działa. Poniżej kod programu w bascomie dla nadajnika Config Adc = Single , Prescaler = Auto , Reference = Internal Config Pinb.0 = Output Config Pind.6 = Output Config Pind.7 = Output Config Pind.3 = Input Config Pind.4 = Output Portd.3 = 1 Open "Comd.3:1200,8,n,1"...
Bascom nie wykonuje dwóch działań arytm. lub instrukcji w jednej lini. Wiem to, wskaż w którym miejscu próbowałem coś takiego zrobić. Chodzi o last=last+getadc(1) ? Instrukcja wykonuje się poprawnie. Wyglada że chcesz mi wmówic, że wprowadziłem cię w błąd. Nie, po prostu stwierdzam, że po wprowadzeniu zmian nadal nie działa tak jak bym chciał. To wyjaw...
Dim ___rseed As Word ___rseed = Getadc(9) Lcd ___rseed Dlaczego na LCD cały czas jest 00? Atmega8, w obudowie DIP posiada 6 kanałów ADC... W obudowie TQFP i QFN jest ich 8. Ty próbujesz pobrać wartość z 10 kanału (liczymy od 0). Zamień 9 na wartość od 0 do 5 (podejrzewam, że Twoja Atmega jest w obudowie DIP): __rseed = Getadc(0) Oraz...
Witam Chcę odczytać stan baterii przy pomocy ATmegi8L. Niestety wartość którą pokazuje uC jest ciągle taka sama bez względu na poziom naładowania baterii. Wartość napięcia baterii po naładowaniu to 4,18 V. Nie wiem czy dobrze połączyłem: Avcc -------> Vcc PinC.0 -------> + bateria Config Adc = Free , Prescaler = Auto , Reference = Avcc Dim Wart_adc...
Sprawdziłem przed chwilą na mojej ATMEGA32 kod: [syntax=basic4gl]$regfile = "m32def.dat" ' specify the used micro $crystal = 11059200 ' used crystal frequency $baud = 115200 ' use baud rate Dim W As Integer Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Porta = Input Porta = 0 Start Adc Do W = Getadc(0) Waitms 200 Print W Loop End[/syntax]...
To już jest banalne - czysta matematyka :) Ja robię to w swoich projektach w ten sposób: Dim A As Single ' WAŻNE! Dim Pwm As Word Dim Odczyt As Word '-- ' tu konfiguracja adc i pwm ' ' '-- Do Odczyt = Getadc(1) A = 1023 / 716 '716 bo 30% z 1023 to 307 czyli 1023-307=716 A = Odczyt / A Pwm = A + 307 'dodajemy te 30% czyli 307 . . . Loop Co w...
Witajcie. jestem nowy i nie bardzo wiem jak to zrobic, na wejsciu PINC.0 pojawia sie stan HI wysoki zaczyna sie odliczanie czasu ktore jest ustawiane za pomaca ADC na ktorym jest potenciometr 10 Kohm miedzy Vcc a masa. po uplywie ustawionego czasu na wyjsciu PORT D.6 pojawia sie stan wysoki oto moje wypoziny ktore i tak nie dzialaja. $regfile "m8def.dat"...
po co korzystasz jako wyjścia z portu C , przecież do testów masz wolne pozostałe porty w ten sposób za każdym razem będziesz poprawiał program do sprawdzenia innego wejścia przetwornika $regfile = "M8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.7...
Wielkie dzięki za wszystkie rady i uwagi. Dzisiaj napisałem od nowa kod. 'KONFIGURACJA czujników dla czarnej lini $regfile = "m8def.dat" $crystal = 1000000 Config Portd = Input Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja adc Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down...
Witam, przerobiłem nieco program kol. Teedd, pod swój mikrokontroler i kwarc, niby działa, ale nie mam regulacji częstotliwości, reguluje mi tylko wypełnienie, kończą mi się pomysły.. $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize = 40 'default...
Chciałem mierzyć napięcie baterii podtrzymującej układ PCF8563. Jest oczywiste, że należy dać rezystor z 10 k pomiędzy wejście ADC i GND, ale to powoduje szybkie rozładowanie baterii, więc może zrobić tak w podprogramie do odczytu z przetwornika ADC: Pomiar: 'Locate 2 , 13 Lcd "Pomiar" Start Adc ' włącz przetwornik ' Set On_pomiar For...
Nareszcie twórcza odpowieć. Dięki wielkie myślę że coś z tym zrobię chociarz nie ukrywam że wolałbym ręczny ruch potencjometru jako priorytet lecz ten program a właściwie atmega musi zmieścić jeszcze więcej funkcji. A jak zrobić żeby flaga była ustawiana dopiero po odebraniu komunikatu? Dodano po 2 Przepraszam za odgrzewanie tematu, napisałem program...
Witam serdecznie Jak można do tego kodu niżej dodać programowy PWM? [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Ddrb = &B00111111 : Portb = &B11000000 Ddrc = &B11001111 : Portc = &B00XX0000 Ddrd = &B11111110 : Portd = &B00000001 Dim Licznik As Byte Dim X As Byte Dim Y As Byte Dim W As Word Dim E As Word Config Adc = Single , Prescaler...
Witam przepraszam, że wcześniej nie pisałem, ale nie miałem dostępu do Internetu. A wiec tak na razie zrobię tylko z jednym przetwornikiem napięcia tyle, co jest zrobione na schemacie i w programie a później będę się bawił z tą ilością paliwa w baku. Projekt płytki już zrobiłem tylko na razie nie mam dostępu do drukarki laserowej wiec w poniedziałek...
Mam problem z podłączeniem tego (prawdopodobnie)LTR5576D do atmegi. Chce podłączyć to pod ADC i sprawdzać natężenie światła w podczerwieni. Chciałem zastosować 3 takie układy do budowy line follower'a. Niestety po podłączenie tego do ADC atmegi na wyświetlaczu zawsze pokazuje mi wartość 1023(świeciłem na to pilotem od tv, zasłaniałem palcem). Podłączam...
Witam, Mam pewien problem z ATMEGĄ8 i serwem MG90S. $regfile = "m8def.dat" $crystal = 1000000 Config Servos = 1 , Servo1 = Portb.1 , Reload = 10 Config Adc = Single , Prescaler = 128 , Reference = Avcc Start Adc Dim W As Integer Config Pinb.1 = Output Dim I As Byte Dim I2 As Integer I = 150 Servo(1) = I Enable Interrupts Do 'W = Getadc(0)...
Witam. Na znanym serwisie aukcyjnym zaopatrzyłem się w wyświetlacze LCD 2x16 znaków które miałybyć kompatybilne z HD44780 jednak nie są. Wyświetlacze to PC1602V-P8 firmy Powertip. Na stronie $regfile = "m8def.dat" 'procesor mega 8 $crystal = 8000000 '8mhz Wait 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc ' ustawienie adc Dim...
Witam serdecznie, jestem w trakcie budowania miernika V-A do zasilacza laboratoryjnego na mega8 i mam problem po stronie pomiaru prądu, oto część programu: Config Adc = Single , Prescaler = Auto , Reference = Internal Dim X As Byte , Y As Byte Dim Wart_ac As Word Dim V As Single Dim Wart_nap As String * 3 Start Adc i pętla: Do Wart_ac = Getadc(4)...
Witam serdecznie Pomoże mi ktoś poprawić kod niżej. Chciałbym uzyskać możliwość sterowania zmienną Y, ale nie dział mi ten ADC [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Ddrb = &B11011111 : Portb = &B00000000 Ddrc = &B11111111 : Portc = &B00000000 Ddrd = &B11111110 : Portd = &B00000001 Dim X As Byte Dim Y As Byte Dim W As Word Config...
Witam!!! Używam BASCOMA 1.11.7.4 i mam problem z kompilacją programu do obsługi ADC dla ATmega8535 z wykorzystaniem wewnętrznego źródła odniesienia. Jest on prawie identyczny jak ten dołączony w folderze BASCOMA – SAMPLES. $regfile = "m8535.dat Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc Dim W As Word , Channel As Byte...
Ja bym to zrobił bez tablicy, bo szkoda pamięci... Przypominam, że Atmega8 ma tylko 1024 Bytes Internal SRAM Twój program skutecznie zjada 200 x 2 (2 tablice) x 2 (Wodr) = 800 Bajtów Czyli jeszcze jedna taka tablica i będziesz musiał kupować lepszy procek :) Wystarczą 2 zmienne i 2 ify. Dim Xmax As Word Dim Xmin As Word Xmin=1024 Xmax=0 For C = 1 To...
W bascomie mam to zrobione tak: При изменk... напряk... на среднk... выводk... (контр ...
Czy bawił się ktoś przetwornikiem A/C wbudowanym w ATmege8? Chcę go wykorzystać do "pobrania" informacji o napięciu z czujnika odległości GP2D120, ale jest pewien problem. Złożyłem układ wg rysunku; staram się mierzyć napięcie na potencjometrze i tu jest problem, bo to napięcie wg mikrokontrolera waha sie ±0.5V. W przypadku GP2D120 te ±0.5V...
Witajcie. Robię malutkie projekty korzystając z Bascoma. Do tej pory wyłącznie na 2313 i jakoś sobie radziłem. W nowym projekcie postanowiłem zastosować Atmega8535 i od razu natrafiłem na problem. Mianowicie po włączeniu przerwań od Timer0 nic nie działa jak powinno. Pomimo tego że procedura obsługi wyświetlacza jest wołana z obsługi przerwania na wyświetlaczu...
Witam. Może i głupio, ale z ciekawości napisałem programik, którego jedynym zadaniem jest przepuszczanie podanego na wejście ADC dzwięku przez mikroprocesor atmega8 tak, że wychodzi na PWM1a. W sumie to nawet poniekąd mi się to udało, dzwięk przechodził, ale wyjściowa jakość nie była zadowalająca. Większość paramerów w programie dobrałem doświadczalnie......
Witam, Bawiłem się dzisiaj z przetwornikiem. Taki kod: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Rem Konfiguracja Lcd Config Lcdpin = Pin , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portb.1 , E = Portc.4 , Rs = Portc.5 Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim Wart_ac As Word Dim V As Single...
Witam, Bardzo proszę o sprawdzenie czy program jest poprawnie napisany. Nie korzystałem do tej pory z instrukcji Watchdog, więc nie mam pewności czy jest ona poprawnie umieszczona. Zadaniem programu jest stały pomiar napięcia i w razie wystąpienia spadku załączany jest przekaźnik na czas 2 minut. Jeżeli spadek będzie występował czały czas to przelaźnik...
Witam Miałem podobny problem z wyświetlaniem. Trzeba prawidłowo przypisać typy zmiennych a formatowane umieścić w poleceniu LCD "123";Fusing(X, #.##);"123". Tylko takie umieszczenie formatowania rozwiązało mi problem z wyświetlaniem całkowicie. Odpowiednie akcje na zmiennych należy wykonywać po zaokrągleniu do całości instrukcją np Round(Vol) lub Int(Vol)...
Witam Napisałem program który w zależności od wartości trzech przetworników A/C ma wysyłać różne napisy przez RS232 , niestety jeden warunek pętli nie wiem dlaczego nie reaguje na zmiany wartości. Zaznaczyłem w programie komentarzem wadliwy fragment. Co jest nie tak ? $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera...
Witam, Jakiś czas temu wpadłem na pomysł, by stworzyć prosty rejestrator napięcia komunikujący się z PC za pomocą przejściówki RS232. Pierwsza wersja (płytka stykowa) jest oparta o uC Attiny13, z programowym uartem. Działa bardzo dobrze, aczkolwiek problem pojawił się z zasilaniem. Niestety prąd który można wyciągnąć z typowej przejściówki USB-RS232...
Witam Mam pytanie związane z przetwornikiem analogowo-cyfrowym wbudowanym w mikroprocesorze Atmega8. W symulacji Bascom-AVR działał poprawnie jednakże w przypadku prawdziwego układu program nie działa. Na kanale ADC0 mam napięcie 1,6V. Pomimo tego napięcia wartość przetworzenia wynosi 0. Wykorzystuję wewnętrzne źródło odniesienia. Dzękuję za wszystkie...
Witam. Mam problem z uC ATtiny25, który podaje błędne odczyty z ADC, wszystko wcześniej było testowane na ATmega8 z wyświetlaczem i odczyty się zgadzały, teraz dysponując tylko jedną LED'ą, sprawdziłem, że odczyty się nie zgadzają, cała elektronika w przypadku ATmegi i ATtiny się nie zmieniają, jedynie drobne zmiany w kodzie. Witam. Ostatnio również...
Witam. Mierzę nateżenie oświetlenia małej kompaktowej świetlóki przy użyciu fotodiody i mam pewien problem przy długim pomiarze wartość otrzymana z fotodiody systematycznie spada. Przebieg otrzymany w wyniku pomiaru jest w pliku wykres. Wartość pomiędzy 2000 a 5500 sek maleje im dłużej się mierzy, chociaż układ pozostawiony jest w bezruchu i odizolowany...
Na przykład tak: '** WRITE Routine assumes ADDR, BOUT uses Status subroutine ** Sub Mwrite(byval Addr As Long) If Nocard = 1 Then Exit Sub Addr = Addr * 512 Cmd24: Set Cs Dat = &HFF Shiftout Mosi , Clk , Dat , Msbl Shiftin Miso , Clk , Resp , Msbl Reset Cs Dat = &H58 Shiftout Mosi , Clk , Dat , Msbl Shiftout Mosi , Clk , Addr , Msbl...
Witam. Mam problem. Napisalem problem do adc, który pracuje jako woltomierz. Na LCD poprostu pokazuje jakie jest napięcie na wejści adc w przedzile od 0-5V. Teraz chciałem zrobić aby PWM był proporcjonalny do napięcia na adc. Np. dla 1V 20%pwm, dla 2,5V 50% pwm, dla 5V 100%pwm. pod spodem program jaki napisałem. Czy ktos wie jak to zrobić?? $regfile...
Wartości binarne są napisane dobrze (Bascom) ,żeby sprawdzić zamiast Timera1 , napisałem pomiar napiecia z ADC(5) no i jest nieciekawie, podstawiałem wartoci jako stałe no i wartoći wyswietlają sie z krotnością liczby 6 . dzieliłem mnozyłem i nic pokazuje bzdury .Teraz nie wiem ale czy czasami nie jest potrzebna negacja do zaznaczenia ważnych bitów...
Wysyłam całe programy, bo być może pominął bym istotne dla problemu aspekty. Nadajnik: Odbiornik: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 14745600 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portd.3 , Rs = Portd.2 Cls Lcd "Test" Wait 1 Dim I As String * 16 Cursor...
Witam Konstruuję prosty woltomierz (0-5V) w którym wskazówka napędzana jest silnikiem krokowym. Zadawane napięcie regulowane jest potencjometrem. Wczytywana wartość jest odpowiednio przeliczana na wolty, potem na odpowiednią ilość kroków silnika. Problem w tym, że na etapie wczytywania przez przetwornik A/C, wartość pomiaru nie jest stabilna. To znaczy,...
Witam! Postanowiłem w niedalekiej przyszłości (po okiełznaniu bestii na L293D : $regfile "m8def.dat" 'deklaruj atmega8 $crystal = 1000000 'czestotliwosc Dim Swiatloczujka1 As Word Dim Swiatloczujka2 As Word Config Adc = Single , Prescaler = 64 , Reference = Internal Start Adc 'rozpocznij Do 'poczatek petli Swiatloczujka1 = 0 'ustaw zmienna...
Witam serdecznie, może mi ktoś wytłumaczyć jak można zrealizować woltomierz w bascomie na AVR? Przecież przetwornik w Atmega8 może mierzyć napięcie jedynie z zakresu 0-5V.. A ja potrzebuje 0-30VChciałem to zrobić w ten sposób żeby zastosować dzielnik napięcia 1:6 a wartość odczytana pomnożyć przez 6 i wtedy byłby zakres 0-30V, ale coś chyba ze zmiennymi...
Atmega8 Pełny kod [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 16000000 Config Portd = Output Config Portc = Input Config Portb = Output Config Adc = Single , Prescaler = Auto , Reference = Avcc Enable Interrupts Start Adc '----------------zmienne Dim Opuszczanie As Word Dim Podnoszenie As Word Dim Opuszczanie1 As Word Dim Podnoszenie1 As Word...
Witam Piszę do was bo mam mały problem. Zrobiłem woltomierz i amperomierz na atmedze8 i mam mały problem bo program który mam działa ale pokazuje błędnie. To znaczy problem polega na tym że im wyższe napięcie tym większy zakres błędu. Przy 24V zakres błędu to ok. 3V Program wygląda tak: [syntax=basic4gl]Config Adc = Single , Prescaler = Auto , Reference...
A czy na tej symulacji w bascomie będzie widać normalnie ą ę czy tylko jakieś znaczki? Dodano po 6 No zrobiłem teraz tylko pytanie czy dobrze? $regfile = "M8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 32 '---------------------------------------... Dim Adc_data As Integer Dim S As...
Witam. Opanowałem ADC w wystarczającym stopniu, więc postanowiłem się zabrać za PWM. Przerobiłem poprzedni schemat: [url=http://easyeda.com/export_TfxrJ1jd7... Wygląda teraz tak: [url=http://easyeda.com/export_oS4DdNZXV...
Nie potrafię wstawić komendy, która zaokrągla wynik do 2 miejsc po przecinku. Cały program (bez zaokrąglania) wygląda tak: $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektywy mikrokontrolera $crystal = 8000000 'informuje kompilato Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portd.4 , E...
jestem bardzo początkujący więc pewnie pytanie będzie banalne :-) szukałem na różnych forach, próbowałem i nie wiem gdzie wrzucić w kodzie 2 przycisk... idea programu ma być taka: po włączeniu zasilania pojawia się na wyświetlaczu "witaj" i po naciśnięciu przycisku 1 mierzy napięcie (kolejne naciśnięcie=kolejny pomiar). I do tego miejsca wszystko działa....
Witam! Poniżej prezentuję najprostszy chyba z możliwych listingów odczytujący wskazania ADC i wysyłających je do PC przez RS232. Problem w tym ze nie da się wysłać nic z częstotliwością powyzej 4800 bps. zamiast konkretnych wartości jakieś krzaki przychodzą. ' osiągnieta rozdzielczosc: 5V/1024= 0,00488V= 4,88mV $regfile = "m8def.dat" $crystal...
Witam. Buduje ładowarkę a właściwie sterownik ładowarki. Cośjest nie tak ponieważ gdy wrzuce kod : $regfile = "m8def.dat" 'procesor mega 8 $crystal = 8000000 '8mhz '''Zmienne Dim Wart_ac As Word Dim V As Single Dim Wart_nap As String * 3 Dim Wart_prad As String * 3 Dim M As Byte Dim G As Byte Dim Mt As Word Dim Laduj As Bit Dim Reload As Word...
atmega8 getadc bascom getadc getadc bascom
zrobić antenę pokojową elektrozaczep brzeczy volvo silnika
kontrolkę poduszki powietrznej pralka electrolux panel sterowania
Kospel EPO2 nie grzeje mimo załączenia - przyczyny Schemat elektryczny Malaguti F12 - gdzie znaleźć?