Jak dołączyc kondensator -masz pokazane na rysunku poniżej. Jednak jeśli działa dobrze bez kondensatorów to nie ma powodu aby je dawać. Pozdrawiam Yakuza
Pociąganie realizowane jest poleceniem "Set" - ósma i dziewiąta linijka. To nie jest podciąganie(!) Jest to próba wpisania wartości do rejestru, który z natury jest przeznaczony tylko do odczytu. Nie ma możliwości zmiany stanu rejestru "PIN.x" z poziomu programu. Stan PIN.x możesz zmienić tylko fizycznie z zewnątrz poprzez podanie tam napięcia o odpowiednim...
$regfile = "m8def.dat" $crystal = 8000000 Config Pind.0 = Output Portd.0 = 0 Config Pind.3 = Input Set Portd.3 Config Int1 = Low Level On Int1 Ir Enable Interrupts Enable Int1 Do Loop End Ir: Disable Int1 Toggle Portd.0 Enable Int1 Return Jeszcze najlepiej jakies opoznienie dodac. Zapraszam do czytania podstaw o odbiornikach i nadajnikach...
trochę mały ten preskaler.
nie mogę otworzyć pliku nie wiem co jest nie tak jaka wersje Eagle masz? spakuj plik i daj na elektrodę załącznik OK otworzyłem plik pełno nie połączonych połączeń (UŻYWAJ W EAGLE NET NIE WIRE) powiedz czy rezystor do ustawiania kontrastu ma być potencjometrem(Dużym)? i czy kondensatory C1 i C2 maja być takie ogromne? Jeżeli pod złączem JP1 ma być wentylator...
Jak nie radzisz sobie na razie z tym timerem to przynajmniej nie nadużywaj bezpodstawnie Wait. To co Ci zaproponuję nie zwalnia Cię od ogarnięcia timerów! Ustal sobie jakie dopuszczasz maksymalne opóźnienie pętli i użyj go tylko raz np. 10ms. Za rozwiązanie, może nie do końca eleganckie, zaraz zbiorę burę od fachowców ale w wielu przypadkach to naprawdę...
Może być np tak: $regfile = "m8def.dat" Config Portd = Output Portd = &B00000000 Dim D As Integer , D1 As Byte D = 0 D1 = 0 Do If D = 0 Then Portd = &B00000000 If D = 1 Then Portd = &B00000001 If D = 2 Then Portd = &B00000011 If D = 3 Then Portd = &B00000111 If D = 4 Then Portd = &B00001111 If D = 5 Then Portd = &B00011111 If D = 6 Then Portd...
Witam. Mam problem, Napisałem program ale nie działa tak jakbym tego oczekiwał. :cry: Config Portd.1 = Output , .... ........ Config Portd.1 = 0 , ..... Zauważ że cytowana wyżej linia druga zmienia wcześniejszą konfigurację portu z OUTPUT na INPUT. e marcus
Jeśli założyć, że przycisk podpięty do PORTD.1 i jeśli założyć, że dobrze zrozumiałem Twoją idee programu, bo namieszałeś okropnie, to... $regfile = "m8def.dat" $crystal = 1000000 Led Alias Portb.0 Config Pinb.0 = Output config Pinb.0 = input : Portb.0=1 Do if Pinb.0= 0 then Set Led Waitms 400 Reset Led Waitms 700 else Set Led Waitms 1000 Reset Led...
instrukcja Pinx.y służy do odczytu stanu portu natomiast Portx.y do ustawienia stanu na porcie
powoduje miganie diody w bardzo nie regularnych odstępach czasu - widać to "gołym okiem". Na dodatek trudno nazwać te odstępy "pół sekundy". ... Na początku mam jeszcze: $hwstack = 32 $swstack = 8 $framesize = 16 Bez tego nie idzie zadeklarować żadnej zmiennej - "out of SRAM". Dyrektywa CRYSTAL tylko informuje kompilator o częstotliwości generatora....
Jeśli chcesz aby np. dwie diody mrugały z różną częstotliwością to w najprostszy sposób możesz to zrobić tak: na początku pętli głównej dajesz małe opóźnienie powiedzmy 5ms. Potem w każdym obiegu pętli (co 5ms) zwiększasz wartość dwóch zmiennych np. Licz1 i Licz2. Kiedy Licz1 osiągnie wartość 50 wtedy zerujesz ją i zmieniasz stan pinu do którego dołączona...
Zamiast "Toggle Pind.7 " ma być: "Toggle Portd.7 ".
Nie wiem czy przypadkiem podczas resetu procesor nie ustawia portów na wysoki stan , musiałbyś w pdf-ie sprawdzić , bo przy starych 51 chyba tak było.
No dobra przed usunięciem widziałem założenia : Atmega8 a piny wszystko jedno gdzie. $crystal = 1000000 $regfile = "m8def.dat" config pind.1 = output ' tu pin diody config pind.0 = input ' tu pin mikroswitcha (klikacza) set portd.0 do if pind.0 = 0 then waitms 25 if pind.0 = 0 then set portd.1 wait 2 reset portd.1 powerdown end if...
1) jeśli używasz przycisków to zawsze podłącz go tak aby przyciśnięcie zwierało nóżkę portu do masy czyli do -. To naprawdę ułatwia sprawę i zawsze działa 2) dobra praktyka - przyciski, jumpery itp podłączaj do pinu procesora przez rezystor np 180 omów. Chodzi o to że kiedyś możesz się pomylić, ustawić pin jako wyjście, dać na nim 1 czyli napięcie +...
No własnie w tym rzecz żeby mieć minimalne pojęcie o sprzęcie który próbujemy oprogramować. W takim telegraficznym skrócie fabrycznie nowy mikrokontroler przetwarza milion operacji na sekundę (1MHz). Jeśli teraz poinformowałeś kompilator że procesor śmiga z prędkością 1MHz i chcesz żeby odczekał 1 sekundę, to kompilator każe policzyć procesorowi do...
Zastosuj podciąganie: Portb = &B11111111 A poza tym to widzę taki sam temat w koszu. Pewnie ktoś zaraportował jako obniżanie poziomu.
Kod bakardi się kompiluje bezbłędnie a kod Rocket_93-nie. To nie C. Nie może być if P then. Warunek musi być jawnie zdeklarowany. Dodano po 2 bakardi, jak dasz opornik w szereg z diodą i połączysz mikroswitch do masy to prawie powinno działać. Dodano po 3 Jeszcze tylko podciąganie pinu wejściowego. Dopisz portd.4=1
Witam Program, programem, ale między wyjścia procesora a diodami powinieneś dać rezystory ograniczające prąd. Pozdrawiam
[syntax=vbnet]Lst = Array(&B11111110,&B11111101,&B11111011,&... do for each V in Lst ; tu wpisujesz do portu wartość V Waitms 100 next V loop[/syntax]
(...) osobnym PinX i oczekuj na stan niski ADCx2 aż do spełnienia tego warunku. Jeśli na ADCx2 napięcia równe 0 mrugnij diodą Led1 jeden raz przez 300ms, wyłącz Przekaźnik1 na PinX Po czym wróć do góry procedury, do oczekiwania na napięcie na ADCx1 To właściwie tyle. Dziękuję za uwagę i wszelaką pomoc. Witam serdecznie na forum! Chętnie pomogę Ci przygotować...
OC2 to wyjście wykorzystywane przez Timer2 - nie Timer1. Wystarczy skonfigurować T2 - i po kłopocie... (Przestudiowanie noty katalogowej układu rozwiązałoby problem)
Żaden z nich. 681 — 68 ·10 ¹ pF= 680pF ; 222 — 22 ·10 ² pF= 2,2nF ; 473 — 47 ·10 ³ pF = 47nF Z tych, co ja mam to są oznaczone 22 lub 33 i jest na nich oprócz tego długa podkreślająca te wartości linia. Są to odpowiednio wartości 22pF i 33pF .
to zatrzymanie timera przed załadowaniem wartości jakby pomogło (przynajmniej nie zachowuje się dziwnie) teraz miga w równych odstępach ... Home Lcd "P=" ; P ; "us" Lowerline Lcd "I=" ; I ; "us " ; Licznik If Licznik = P Then Portd.2 = 0 End If If Licznik >= C Then Portd.2 = 1 Licznik = 0 End If ... Dobra odczepiam się od portów :) I już mówię dlaczego...
[syntax=basic4gl]while a=1 x++ if x==100 zapal led if x==200 zgas led x=0 waitms 5 wend zgas led[/syntax]
Po pierwsze powinieneś działać w zakresie 0-7. Po drugie Rnd losuje liczby według algorytmu pseudolosowego - warto na starcie załadować generator jakimś seedem. Po trzecie nie lepiej: PORTD = Rnd(255) PORTB = Rnd(255)
Hmmm ni ewiem jak Ci to napisać bo nie wszystko da się zrozumieć od razu..ale pomysl.. nadajesz telefonem "Zapal" to jest raptem pięć znaków i tam NULL o którym nie koniecznie musisz wiedzieć ..ale... idąc dalej piczesz że "Tekst = Inkey()" procesor wciaga te kilka nadanych znaków..a załóżmy że teraz nadałeś "Zgaś" w pierwszej procedurze "If" sprawdził...
To proste, wykorzystaj warunek. IF wyrażenie then instrukcja else instrukcja end if
Witam. Można tak: $regfile = "attiny13.dat" $crystal = 1200000 Config Portb.3 = Output Config Pinb.4 = Input set pinb.4 reset portb.3 do if pinb.4=0 then do Set PORTB.3 Wait 1 Reset PORTB.3 Wait 1 Loop end if Loop W pętli odczytujesz stan przycisku i jak będzie niski zacznie migać.
A może odbieraj większy string i sprawdzaj pierwszy znak.
Do If Pinb.0 = 0 And Pinb.1 = 0 Then 'migacz imitujący diode alarmu Waitms 500 'gdy zapłon i swiatła wyłączone Portd.0 = 1 Waitms 500 Portd.0 = 0 End If If Pinb.0 = 0 And Pinb.1 = 1 Or Pinb.0 = 1 And Pinb.1 = 0 Then 'jeśli zapłon wyłączony i światła włączone Waitms 500 'gdy zapłon i swiatła wyłączone Portd.1 = 1 Waitms 500 Portd.1 = 0 End If Loop Powinno...
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.5 = Input Config Pinb.4 = Input Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 64 Dim I As Byte Centr1 Alias Pinb.5 Centr Alias Pinb.4 Set Portb.4 Set Portb.5 Pwm1a = 0 Do If pwm1a = 0 then 'dodatkowy warunek...
Może napisz który to Bascom. Te diody WS weszły chyba już w 2078/2079 jako natywnie wspierane z szeregiem komend które umożliwiają chyba wszystko co z nimi związane. Bardzo łatwo jest znaleźć wersję Bascoma 2081... Dodam, że biblioteka Bascoma jest rozwinięciem biblioteki z niemieckiego forum autorstwa "Galahard`a". Jeśli więc nadal będziesz się upierał...
Witam. Nie możesz podłączyć tego silniczka w ten sposób, bo spali się mikrokontroler. Musisz zastosować dodatkowo tranzystor i rezystor. Poniżej namalowałem schemat jak wszystko ma być podłączone. http://obrazki.elektroda.net/89_12564923... A czemu chcesz zastosować akurat mikrokontroler Atmega8L? Możesz spokojnie dać Attiny2313. Pozdrawiam
Przecież masz 5 kanałów - wyjścia: OC1A, OC1B, OC2, OC3A, OC3B... Zmienne przedstawiają wartość modulacji w każdym z kanałów z osobna. Wszystkie PWMy są skonfigurowane jak 8 bitowe zatem zakres to 0..255. Ma tak być. Ponieważ nie ma aliasu (jeszcze) PWM2 dla zmiennej COMPARE2 (rejestr sprzętowy OCR2), BASCOM nie rozpoznaje nazwy PWM2. Jak zajrzysz w...
No to masz kod, dobrze wywróżyłem, dla AVR, a nie dla '51. Jak chcesz zapalić diodę to możesz zrobić na przykład tak SET P1 (lub SET P1.4) Więcej masz w helpie.
Tak.
Proszę, oto SKREŚLONE kilka (a nawet wszystkie) linie kodu :D Mam nadzieję, że zadziała !
I jak teraz ? no widać że fuski są ustawione ok na wewn. oscylator 4MHz tylko jeszcze zdaje się trzeba ustawić pin diody LED jako wyjście, to było w bascomie zdaje się jakoś tak: Config pind.6 = output
Nie znam bascoma, ale takie coś powinno działać: $regfile = "m16def.dat" $crystal = 1000000 Config Portd = Output Portd = &B0000000 Do Waitms 200 Toggle Portd.0 Waitms 200 Toggle Portd.1 Waitms 200 Toggle Portd.2 Waitms 200 Toggle Portd.3 Waitms 200 Toggle Portd.4 Waitms 200 Toggle Portd.0 Toggle Portd.1 Toggle Portd.2 Toggle Portd.3 Waitms...
I na ATTiny2313 da się zrobić konwersję ADC i przy odrobinie szczęścia nawet dokładną, ale jak widzę na razie z o wiele prostszymi rzeczami są problemy. Jaką rozdzielczość chcesz uzyskać (ile diod)?
To w takim razie ja mam cos przestawione w opcjach, lub w sause bitach ;( tylko co ? Nie sądzę aby tak było. Opis działania Twojego procesora sugeruje że masz program z jakąś pętlą, bo led miga i to się powtarza nie kończy. Przecież w kodzie który podałeś nie ma żadnej pętli program wykonuje się tylko jeden raz i tak u mnie to działa. Może coś masz...
Na początek do rysowania schematów są odpowiednie programy a nie Paint , kody programu umieszcza się korzystając z polecenia Syntax a nie wkleja zrzut . Schemat : brak jakichkolwiek kondensatorów do filtracji zasilania , brak GND dla uC , brak oporników ograniczających prąd diod jeden wspólny to żadna oszczędność max prąd portu to 20mA , czerwone LED...
Najprościej i chyba najbardziej optymalnie to dioda dwukolorowa (tylko nie wiem czy występują czerwono-niebieskie) albo dwie diody SMD wlutowane blisko siebie.
jest pelno takich projektow... poszukaj w lampkach rgb... caly pic polega na odpowiednich zmianach wypelnienia (PWM) impulsu dla kazdego z trzech kolorow diody :)...
Czyli dać włącznik na PINB.5? Skonfigurować go jako wejście i co dalej? Jeżeli właczę rezystor podciągający to po podaniu zera na pinb.5 zamiast zmieniać prgram to będzie mi resetował procesor? No chyba żeby sterować "1" ? Schemat prosty do portów procesora podpięte diody przez rezystory 200 omów, zapalanie diód wysokim stanem z portu.
[syntax=c] uart_odbieranie(); //Odebranie komendy z rs232 if(UDR!=0) { switch (UDR) { [/syntax] Raczej był dał: [syntax=c] uint8_t costam = uart_odbieranie(); //Odebranie komendy z rs232 switch (costam) { [/syntax]
a gdzie masz Prescale?? i napisz sobie w programie że PWM1a=A i przy ustawianiu portów jako wyjściowych usuń " ' " bo masz napisany i to Ci knoci wszystko Do For A = 0 To 255 PWM1a = A PWM1b = A waitms 4 Next A For I = 255 To 0 Step -1 Pwm1a =A Pwm1b =A Waitms 4 Next I Loop cześć kodu z książki Marcina Wiązania A z tego co zrozumiałem z twojej wypowiedzi...
Na pasku narzędzi symulatora wciśnij przedostatni przycisk (rączka wskazyjąca na kartkę). W konfiguracji portu z zer zmień na jedynki (zero - wejście, jedynka - wyjście)
Hej! Wpisz ten program: $sim $regfile = "m8def.dat" $crystal = 4000000 Config Portd = Output Do Portd = &B00000000 Wait 1 Portd = &B11111111 Wait 1 Loop End Jeżeli chcesz testować tak proste programy to dodawaj na początku dyrektywe $sim (przy programowaniu uP musisz ją usunąć!). Dodatkowo zamiast klikać F5 klikaj F8. W ten sposób będziesz przechodzić...
Jeśli masz diody podłączone do plusa włączasz je komendą Reset a wyłączasz Set. Set podaje na pin stan wysoki (czyli plus) i dlatego ci to nie działa jak chcesz.
Tej drugiej diody na razie nie podpinam. To się nie dziw że nie zadziała. Bez tej diody tranzystor się spali. Na razie masz inny problem ale jak go ominiesz to pojawi się ten z tranzystorme bo nie masz diody.
No cóż. Wprawa i rutyna (niestety). Zapraszam do nauki. Z uC można 1000000 razy więcej.
A Twój program nie chce działać? Jaki jest problem. To co w programie masz nieprawidłowo to odczyt stanu przycisku. Procedura odczytu przycisku powinna przewidywać takie sytuacje jak drgania styków lub przypadkowe zakłócenia na linii przycisku. Jedną z możliwość odczytu przycisku jest: [syntax=basic4gl]If Wejscie = 0 Then Waitms 100 If Wejscie = 0 Then...
Do tego najlepiej użyć PWMa. Na medze ósmej musisz uruchomić timer1. [syntax=basic4gl] config timer1 = PWM , pwm = 10 , compare a pwm = clear up , compare b pwm = disconnect , prescale = 1 Dim opu as word do for opu = 0 to 1023 pwm1a = opu waitms 3 next opu for opu = 1023 to 0 step -1 pwm1a = opu waitms 3 next opu loop end [/syntax] To tak na szybko....
Dodaj też opóźnienie po zgaszeniu diody.
Nie wiesz czym różni się rejestr PINB od PORTB - poszukaj w dokumentacji procesorka ;)
Może tak: Config Timer1 = Pwm , Pwm = 10 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up 'Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down Start Timer1 Dim I As Integer Config Portb = 8 Do Do Incr Pwm1a If Pwm1a = 1000 Then Exit Do Waitms 10 Loop Do Decr Pwm1a If Pwm1a = 5 Then Exit Do...
No to popróbuj jeszcze :-) Ja tylko tak, aby sprawdzić, napisałem coś takiego: '---------------------------------------... ' ' RC5.bas ' '---------------------------------------... '$sim 'jen pro simulaci $regfile = "Attiny2313.dat"...
To proste Do Portd.6 = 1 Waitms 300 Portd.6 = 0 Loop End W tym programie brak opóźnienia po linii Portd.6=0 i (ponieważ jest to pętla) program w ułamku sekundy przechodzi do linii Portd.6=1. czyli wyzerowanie portu trwa ok. jednego cyklu zegarowego. W rezultacie dla Twojego oka port jest cały czas w stanie "1".
[url=http://www.elportal.pl/index.php?mo... masz polski plik pomocy do Bascoma. Najlepiej zrobić to w jakiejś pętli np. Do instrukcje do wykonania Loop
Ok coś tam rozumiem ale mam jeszcze taki problem albo prośbę bo nie wiem jak ustawić rejestry w attiny13 Tccr0a Tccr0b Admux Adcsra Adcsrb jakbym chciał pwm 8 bitowy (attiny13) z max częstotliwością tj chyba FAST PWM na pwm0a i pwm0b czyli 9600000/256=37500Hz przy działającym ADC. Reszta ustawień zostaje tak jak jest. To już będzie wszystko. Zacznij...
Witam wszystkich na forum pisze ponieważ mam problem pewnie banalny jak dla kogoś ale od niego zalezy cała reszta A minowicie napisałem sobie program który przy symulacji wejść i podawaniu na wejscia w zaleznosci od róznych stanów ma na wyjsciu zapalć mi diody Config Portb = &B11111111 Config Portd = &B1111100 Do If Pind.1 = 1 Then Portb.7 = 0 If Pind.2...
w bascimie nie ma szans !! bascom nadaje sie co najwyzej do migajacej diody led albo jakiegos prostego termometru czy zegara w ukladach gdzie w gre wchodzi dokladnosc czasu rzedu mikrosekund bascom wysiada.
Dawno nie pisałem w Bascomie, ale myślę że na końcu każdego podprogramu musisz dać return. Inaczej program idzie w następne etykiety. A u ciebie jest tylko na końcu ostatniej .
Prawie dobrze. 24 bity przy 400 kHz, każdy bit kodowany na czterech, czyli 96 bitów przy 1.6 MHz. Najłatwiej będzie do tego zaprząc SPI. Użycie UART będzie sporo trudniejsze i nie zawsze możliwe (zależy, jaki UART) - nie radzę, jeśli nie rozumiesz dobrze tego, co robi UART. Jak wygląda ramka - to dokładnie widać w opisie WS2811. Nic tam nie ma poza...
Bajt to 8 bitów, bit to 1 lub 0, 0 to np dioda zgaszona, 1 to zaświecona. 01101010 to bajt - dioda zerowa to 0, dioda 1 to 1, dioda 2 to 0 licząc od prawej. Bajt wpisany do portu ustawi odpowiednio napięcia końcówek a te zasilą diody.
po $crystal podawana jest częstotliwość w Hz, więc 1000000 jest ok dla domyślnie skonfigurowanej atmegi8. Z resztą to lepiej ustawiać w opcjach kompilatora. Aha i zamiast pisać: Do Waitms 250 Portb.0 = 0 Waitms 250 Portb.0 = 1 Loop wystarczy Do Waitms 250 Toggle Portb.0 Loop a to, że pierwszy listing działał wynika chyba z tego, że za każdym razem sprawdzane...
Zmień schemat: Przyciski podłącz do masy, elektrolit zamień na ceramik 100nF a diodę podłącz przez rezystor do zasilania a katoda do uc. Program: $regfile = "attiny2313.dat" $crystal = 1000000 ddrb =&B11111100 PORTB = &B00000011 ddrd =&B11111111 PORTD = &B00000000 do if pinb.0 =0 then waitms 100 portd.0 = 0 end if if pinb.1 =0 then waitms...
Dzień dobry. Kompilator przecież pisze o co chodzi :D Zamiast "jeśli przycisk = 0" napisałeś "jeśli przycisk = Duża litera O" Brakuje też przecinka przed Right. http://obrazki.elektroda.pl/7581088600_1... Poniżej film z uruchomionej symulacji :D https://filmy.elektroda.pl/100_144731640... Miłego dnia. P.S. Do Gunslinger - Myślę że...
To jest przykład dla Atmega8, nie wiem czy pomoże: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portd.0 , E = Portc.2 , Rs = Portc.1 Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 = Output Cursor Off Cls Rem konfiguracja portów Dim R As...
Przede wszystkim w komunikacji po Usarcie to przeszedł bym na przesyłanie ASCII, a wyrażenie kończyłbym znakiem CR (13). Wtedy możesz wysyłać odebrane ciągi na wyświetlacz, bez używania stałych. Używaj do tego zwykłego Print zamiast printbin. Tak swoją drogą nie wiem czemu większość początkujących próbuje komunikować się poprzez Printbin zamiast używać...
Sda i Scl są skonfigurowane w kompilatorze (używam Bascom Avr). Adres się zgadza. A sprawdziłeś czy Twój PCF odpowiada ACK , po wysłaniu jego adresu na magistralę :?: Piotrek
tak, teraz te 2 przypisania odnoszą się do Timera 1 i wyprowadzeń oc1a i oc1b, więc poprawnie zakładając, że konfiguracja uwzględnia tryb 10-bit, czyli: Config Timer1 = Pwm , Pwm = 10, Compare A Pwm = Clear Up, Compare B Pwm = Clear Up, Prescale = 1
Na poczatku daj dyrektywe $crystal=1000000. ATmega fabrycznie pracuje z wewnetrzny zegarem 1MHz mimo podpietego kwarcu. Trzeba przestawic fusebity zeby zmusic procek do pracy z kwarcem. Pozdro Dexter
Zamiast kondensatora równolegle z silnikiem należy włączyć diodę w kierunku zaporowym.
A po powrocie do 1s działa poprawnie ? Czy w wersji z 500ms po 8 minutach i 20 sekundach zmienia się stan diody ?
nie pisze w bascomie ale z tego co widzę to chyba masz złe komentarze, bo ze schematu wynika ze dioda zapala się jak jest stan niski na porcie, a nie wysoki. Set Portb.0 ' włączenie diody Wait 1 ' czekaj 1 sekunde Reset Portb.0 ' wyłączenie diody Wait 1 ' czekaj 1 sekunde powinno być Set Portb.0 ' wyłączenie diody Wait 1 ' czekaj 1 sekunde Reset Portb.0...
Nie znam się na bascomie, ale nie widzę żebyś gdzieś użył metodę "debounce". A, i jeśli się nie mylę, to odczytywać powinieneś z "Pina", a nie z "Porta". A w linii z If wykonujesz odczyt z portu, a nie zapis do niego.
Witam! Nie mogę pozbyć się problemu żarzenia diodek w matrycy led. Przesówam na matrycy jakiś tekst w lewo, na kolumnie poprzedzającą aktywną kloumne, zaczynają się żarzyć te diody które świecą na aktywnej kolumnie. Co daje taki bardzo głupi efekt smużenia do przodu:cry: Kod programu opieram w większości o kod z książki Pana Marcina Wiązania. Zakładma...
Zrób tak jak napisałem powyżej. Maksymalny prąd diody zabezpieczającej, to 1mA.
Wszystko przeniesione do timer, ale sytuacja się powtarza. Jakiekolwiek zmiany w pętli głównej wpływają na działanie pwm i szybkości migania diod :/
Proponuje zacząć od prawidłowego podłączenia czujnika , szczegóły masz w dokumentacji http://sharp-world.com/products/device/l... końcówka nr 5 brak kondensatora , końcówka 2 wartość rezystora .
Witam, mam taki problem. program wg mnie powinien po przekroczeniu ustalonej temperatury wyswietlac na LCD napis, wlaczac Buzzer oraz zapalic diode. A po nacisnieciu przycisku wyłaczyc to wszystko. I problem jest taki ze wylacza wszystko oprocz diody. Tzn po wlaczeniu sie alarmu dioda wogole juz nie gasnie ani po obnizeniu temperatury ani po nacisnieciu...
witam. znalazłem na forum taki programik pod bascom , który miał sciemniać i rozjaśniać diodę. Kod: $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 Dim I As Byte Do For I = 1 To 255 Pwm1a = I Waitms 50 Next I For I = 255 To 1 Step -1 Pwm1a = I Waitms 50...
A jak tę diodę podłłączyłeś pod procesor ? Chodzi mi o nóżki diody ...
Wywal to $sim z programu i będzie działać.
Poczytaj troszkę o PWM, zmiana szerokości impulsu dające w efekcie zmianę jasności świecenia diody. Bo oto chodziło, prawda ?
Ale jeśli to komplety nadajnik - odbiornik, to pewnie filtr jest na pasmo diody nadawczej.
1.Konfiguruje się PORT 2.Podciąganie do plusa włącza się w PORT 3.Przyciski czyta się z PIN Sterować można PORT`em a sprawdza się PIN [syntax=basic4gl] Config PORT.x = Input 'nie podłaczamy driverow - port bedzie wejsciem PORT.x = 1 'sterujemy portem, podłączamy wewnętrzny rezystor Przycisk Alias PIN.x ' PIN PIN PIN PIN! [/syntax]
Za pomocą np sprzętowego SPI, lub ręcznie sterując pinami jak przy miganiu diodami.
mam pytanko czemu jeżeli pisze tak jak kolega tłumaczy portd.0 = portd.0 * 2 to kompilator w tym widzi błąd? chyba że to źle interpretuje Bo musisz mnożyć zawartość całego portu. Jednego bitu nie możesz pomnożyć przez 2. Poprawne więc będzie portd=portd*2 A i jeszcze na początku wpisz do portd wartość 1 :P
Witam Zamierzam wykonać pilot który będzie włączał na chwilę diodę w odbiorniku żeby sprawdzić podstawowe "mechanizmy" komunikacji przy pomocy rc5. Zarówno nadajnik jak i odbiornik pracuje z ATMEGA8 i jest "złożony" na płytce stykowej. Układ odbiorczy to TSOP1736, dioda nadawcza LED-AL-IR50-940nm. Mikroprocesory pracują na wewnętrznym oscylatorze 4MHz...
Musisz mieć zapewne najnowszą wersje BASCOM.
Może być, ale wtedy nie możesz dać na diody więcej jak 4mA/szt. czyli będą świecić bladeńko! Wstaw pomiędzy rejestry przesuwne a diody stopnie mocy - mogą być UDN2981 żeby móc podać jakiś konkretny prąd na te diody. Rezystory do diod daj za ULN2003
A czy może być załączanie przez zwieranie przyciskami wejść do masy zamiast tych rezystorów i diod zenera?
Problem powoduje używanie waitms. Podczas wykonywania waitms procesor pracuje tak jakby w pętli do..loop i nie reaguje na nic. W zasadzie nie powinna być używana. Rodzi więcej problemow, a wcale nic nie ułatwia. Zastosuj timer do sterowania diodą zamiast waitms.
W Bascom to diodą pomigać to tak.
dioda alias portc.1
rozjaśnianie diody bascom zapalanie diody bascom bascom diody przyciski
kosztorysy elektryczne zasilacz anteny televes przepływomierz powietrza omega
zelmer aquawelt zelmer aquawelt
Filtr górnoprzepustowy na mikserze: kiedy włączyć? Jak podłączyć wzmacniacz operacyjny - poradnik