https://obrazki.elektroda.pl/1662014800_... Witam wszystkich serdecznie Dziś chciałbym Wam przedstawić bardzo przydatną (jak dla mnie) przystawkę do nauki programowania. Na początek trochę historii (oczywiście historia elektroniki). Ja już ponad ćwierć wieku bawię się elektroniką - często robiłem coś tylko dla tego aby zdobyć doświadczenie,...
W programie sterowanie diodą D1 jest na porcie B, nie C.
A może odbieraj większy string i sprawdzaj pierwszy znak.
Np. wskaźnik paliwa. Zamiast białych kreseczek podziałki mam przerwy pomiędzy diodami :) https://obrazki.elektroda.pl/6099619600_... Istnieje orientacyjna informacja o wartości mocy wyjściowej: żadna dioda się nie pali = zero, wszystkie się palą = max, z logarytmicznym przyrostem. Istnieje informacja o kierunku zmian: zapalają się kolejne...
W sprawie opóźnień polecam artykuł: void _delay_ms(double _ms) Funkcja powoduje opóźnienie o _ms milisekund. Maksymalne generowane opóźnienie wynosi 262.14ms / F_CPU(w MHz). Jeśli podana wartość przekracza dopuszczalne maksimum, funkcja działa ze zmniejszoną rozdzielczością (0.1ms) generując opóźnienia do 6.5535s niezależnie od częstotliwości pracy...
Witam. Zaczynam naukę programowania. Posiadam atmege8 .Napisałem prosty program(w Bascomie) , który ma zapalać diodę na 1sek. , po czym ją gasić na 1 sek. Po zaprogramowaniu dioda zapala się na ok. 8 sek. ,i gaśnie też na ok. 8 sek. dlaczego?
Przycisk jest programowo podciągnięty do 1. Portd.0=1 Dioda ma się zapalać tylko wtedy gdy wciśnięty jest S1 czyli gdy na pinie d.0 będzie stan niski.
Aby dokładnie stwierdzić gdzie leży przyczyna błędnego działania diody LED, należy zamieścić schemat jak to wszystko połączyłeś. Błąd może być po stronie sprzętowej lub oprogramowania. Aby wykluczyć błędne działanie czujnika, należy zamiast niego podawać jedynkę i zero logiczne na wejście PINB.0 W takt tych podawanych zmian powinna zapalać się i gasić...
Witam. Piszę program w C++ na ATMEGA8 i mam następujący problem z pewnym fragmentem kodu. Otóż są dwa przyciski: Po naciśnięciu pierwszego ma się zapalać dioda a po naciśnięciu drugiego gasnąć. Otóż kod w postaci jak poniżej działa: if(bit_is_clear(PIND, PD0)) { a=-1; if (a==-1) P5; // dioda świeci }; if(bit_is_clear(PIND,...
Mikrokontrolerami "bawie" się od kilku tygodni, dotychczas wystarczały mi informacje na forum i inych stronach. Mam jednak problem ze znacznikiem ACO z rejestru ACSR. A raczej (chyba) z samym komparatorem. Próbuję zbudować sonar z prawdopodobnie znanej każdemu stronki. http://www.patron.net.pl/artykuly/AVR_tu... Nie użyłem jednak brzęczyka, a...
Podłączylem 3 microswitche poprzez rezystor 470r do masy, lecz nie działają - wymieniałem procesor i jest to samo. Odczytuje stany przycisków funkcją if, oraz debounce - w celu sprawdzenia czy odczytuje stan przycisku poprawnie, zapala diodę led. Tzn, ma zapalać bo tego nie robi. Dioda działa, połączenia też są ok. Niestety wcale nie działa. na początku...
brak podciągania programowego pinu z przyciskiem dodaj Set PORTB.0 zaraz po konfiguracji PORTB jako wejście i przycisk zamontuj tak, żeby zwierał do masy, a nie do vcc, a jeśli musi być do vcc, to daj między pinem procesora, do którego podłączasz przycisk, a gnd rezystor 1k i nie dawaj tej komendy Set ... poza tym pokaż schemat całości i powiedz co...
Dioda to koledze miga pewnie dlatego że w rejestrze odbiorczym SPI nie ma żadnego odebranego znaku i program pracuje bez przerwy w pętli dotąd aż coś odbierze a nie odbiera nic. Wywal te miganie z programu głownego i zobaczysz co się dzieje tan naprawę. Poza tym tak naprawdę do nie wiadomo co ty tam obierasz bo masz zastosowane potężne opóźnienia nawet...
Witam! Jakieś dwa lata temu kupiłem sobie atmegę 8 i programator stk200, i chciałem ten zestawik jakoś zaprogramować, ale z powodu braku odpowiedniej wiedzy, źle podłączałem zasilanie i programator co często kończyło się mocnym nagrzaniem procka. Pomyślałem że kasa poszła w błoto, ale ostatnio znowu zachciało mi się pobawić elektroniką. Po przeszukaniu...
Progam w bascomie był dobry - swiadczy o tym min. to, że na samym początku wszystko działało. Zauważyłem, że dioda która ma mrugać (pomijając fakt, że mruga cały czas z dużą częstotliwościa - coś na styl podłączenia żarówki pod napięcie zmienne 10hz) w momencie kiedy powinna nie świecić, leciutko sie ściemnia, a w momencie gdy powinna sie zapalać troche...
I tu jest moje pytanie, gdzie jest błąd w moim myśleniu? Nie masz żadnej zmiennej, która by stanowiła część niezbędnego w tym przypadku "programowego przerzutnika RS". Obecnie opierasz się tylko na stanie pinów wejściowych. Każdy przycisk powinien mieć swój licznik, pomniejszany w przerwaniu; oraz zmienną pamiętającą ostatni stan wejścia i wyjścia....
Wielki dzięki, teraz znowu mi nie działa xD Ale zauważyłem coś dziwnego. Kiedy zmieniłem tryb uśpienia z Power-down na Idle : Power-down ma obsługiwać przerwania zewnętrzne, a takim jest INT0 . Natomiast gdy włączam bit SM1 , to układ nie chce wstawać. Jaka może być tego przyczyna?
Witam, podłączyłem transoptor wg tego schematu: http://obrazki.elektroda.pl/1095814600_1... Napisałem prosty programik mający zapalać diodę podłączoną do innego pinu w momencie, kiedy szczelina transoptora będzie zasłonięta, czyli na pinie transoptora będzie 0, niestety nie działa. Pin do którego podłączony jest transoptor jest ustawiony...
Hej, mam taki problem, że ucze się języka C w poradnika Pana Teodora Otulaka, niestety dioda zamiast zapalać się i gasnąć co 1s zapala się i gasi co około 5s... :( Zmieniałem fusebity na zewnętrzny kwarc (lfuse: 0xEC, hfuse: 0x99), więc mógłby mi ktos powiedzieć co tu jeszcze schrzaniłem? (Wątpię, żeby to miało coś wspólnego ale dodam, że na PC mam...
Witam Wiem że temat był już męczony ale już porostu nie mogę. Panowie nie rozumiem co zrobiłem nie tak próbuję na różne sposoby ale ciągle nic. Programuję atmege i chciałbym standardowo 2 przyciskami zapalać i gasić diodę ale nie wychodzi. Po odpaleniu dioda się świeci, jeśli nacisnę pierwszy przycisk gaśnie ale gdy puszę od razu się zapala ponownie...
Witam wszystkich kolegów Piszę programy w Bascomie51 i ostatnio w bascomie AVR. Wydawało mi się, że mam już spore doświadczenie a tu klapa :cry: Wszystko mi dotychczas ruszało na ATMEGA8 więc ze spokojem przystąpiłem do testowania ATMEGA 16 i 32. Banalnie prosty test: $crystal = 1000000 Config Pind.7 = Output Do Reset Pind.7 Wait 1 Set Pind.7 Wait 1...
Chodzi mi o taki układ którym mógłbym wzmacniać sygnał z tego PCF. Będę testował dalej komunikację TWI.... Zastanów się dobrze nad tym co już tutaj padło. Jesteś o krok od szczęśliwego dla siebie rozwiązania ;) Zamiast więc zastanawiać się nad jakimiś diodami niskoprądowymi, albo jak tu piszesz nad jakimś WZMACNIANIEM SYGNAŁU .... (po cóż ci wzmacnianie...
Witam. Nowy tu raczej nie jestem, bo przeglądam forum codziennie, ale zarejestrowałem się niedawno, bo wcześniej nie było potrzeby pisania :). No to się przywitałem, a teraz na początek: montuję sobie coś w rodzaju półautomatycznego spudguna, i chciałbym zamontować tam licznik amunicji :D. Multipleksowany 2cyfrowy LED, i Atmega8 (może i wystarczy mniejszy...
Napisz wiecej szczegolow co sie bedzie ruszac przed tym ukladem. Nie chciałem zdradzać...no ale cóż wyda sie :D. Otóż ma być włącznik/wyłącznik ruchowy światła do łazienki. Gdy się wejdzie to światło ma się zapalać a po wyjściu gasić. Plusem jest fakt, iż łazienka nie jest duża i podejrzewam, taka "czujka" objęłaby swoim zasięgiem ten obszar co trzeba....
Witam Zbudowałem klawiaturę matrycową 4x3 oraz podłączyłem ją do mikroprocesora Atmega8. Napisałem program ( jestem początkujący w programowaniu , wszystkich komend nie znam) w Bascom'ie który ma odczytywać który switch w klawiaturze jest wciśnięty i przypisywać do niego pewną wartość. W zależności od tej wartości dioda podłączona do uC ma mignąć tyle...
Witam, Próbuję zrobić generator (czy jak to się tam zwie) 10 stopniowego sygnału analogowego na napięcie 0-5V (stopień co ok. 0,5V), na drabince 10 oporników 560Ω. Ogólnie mówiąc wszystko działa dobrze, oprócz tego, że na portach atmegi PC0-PC3 stany wyjść niski i wysoki są jakieś dziwne; stan wysoki - 4,3V, stan niski -0,56V, przy zasilanu uC...
Jeżeli zastosujesz to co ja Ci napisałem, to wystarczy że jako warunek sprawdzany w ifie dasz wskaznik. Wtedy jak naciśniesz to Ci się zapamięta albo 1 albo 0 w zmiennej wskaznik i wtedy masz zapamiętywane wciśnięcie - taki programowy przerzutnik T. A żeby działało to sprawniej (pewnie sam zauważysz czemu - będziesz miał małą "bezwładność") to trzebaby...
Witam, na wstępie dodam że jestem bardzo początkujący w programowaniu. Staram się stworzyć program który by włączał i wyłączał funkcję RGB, poprzez pilot RC5. Staram się to zrobić po kolei i najpierw próbuję gasić i zapalać pilotem diodę. Problemem jest to, że program reaguje na każdy przycisk a nie na konkretny - zaprogramowany. Chce sterować klawiszem...
1. pobierasz napięcie z ADC 2. przeliczasz na odpowiednią liczbę diod 3. zapalasz diody
Witam wszystkich Mam następujący problem. W moim programie występuje linijka, gdzie po wciśnięciu przycisku wykonuje się wiele instrukcji, m.in. zapalam diode. W trakcie działania programu wszystko jest OK. Ale problem jest po włączeniu układu do zasilania, gdyż wchodzi on w pętle gdzie warunkiem jest wciśnięcie przycisku pomimo, że wciśnięty nie jest....
Witam. Niedawno zaczolem przygode z mikrokontrolerami i napotkalem pewien problem. Układ ma zapalac z przycisku wszystkie 4 diody na raz , po nacisnieciu tego samego przycisku powinnien gasic te diody. Zapala natomiast diode 1, 2 ,3 a wygasza 4 i odwrotnie. Wklejam kod: #include <avr/io.h> #include <util/delay.h> #define LED_1 (1<<PB1)...
Wgrywam ten kod i ciągle pali mi się 1 dioda led. Dlaczego? [syntax=c] #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include <math.h> #include "HD44780.c" int main(void) { DDRD = 0xFF; DDRC = 0x00; PORTC = 0x0f; while(1) if(!(PINC&(1<<PC4))) PORTD = (1<<PD0); if(!(PINC&(1<<PC2))) PORTD...
Witam Dopiero zacząłem przygodę z mikrokontrolerami. Kupiłem programator USBasp i podstawke programującą. Do programowania używam BASCOM napisałem w nim taki prosty programik: $regfile = "m8def.dat" $crystal = 1000000 Config Portd = Output 'pprt d jako wyjścia Portd = &B0000000 'wszędzie stan spoczynkowy-0 Do Portd.0 = 1 'zapal diode Waitms...
Witam. Chcę zaprogramować procesor Atmega 8, tak aby po przyciśnięciu przycisku1 zapaliła się dioda i świeciła do momentu zwarcia przycisku2. (przyciski zwierane do masy) Napisałem taki program, lecz w efekcie dioda cały czas świeci. Nie wiem co jest źle, może ktoś zauważy jakiś błąd: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 Config...
To jest mój pierwszy projekt, używam Atmega8A, napisałem banalny program żeby migać diodą: [syntax=c]#define F_CPU 1000000 #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 0xFF; /* Początek nieskończonej pętli */ while(1) { PORTD = 0b10000000; _delay_ms(100);/* opóźnienie 0.33...
witam mam problem z atmega8... Otóż podłączona jest do płytki stykowej, kalkulator MkAvr rozpoznaje procesor, programy w Eclipse ładnie się kompilują, ale jak napisze pierwszy prosty program i skompiluje czyli taki jak w załączniku to dioda powinna się zapalić (dodam że korzystam z kursu jak w linku) http://www.youtube.com/watch?v=jsek2VHDQ... Zmierzam...
Nie wiem co robię źle, że dioda zamiast mrugać świeci się cały czas. Program napisany jest w C. Program #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { /* Wszystkie linie portu D będą wyjściami */ DDRD = 11111111; /* Początek nieskończonej pętli */ while(1) { PORTD = 00000010;...
Napisałem program w C który ma zapalać diodę led gdy nacisnę switch. Po załadowaniu do Atmegi dioda świeci a przyciśnięcie switcha nic nie daje. Dioda podłączona jest (+) do PORTD5 (-) do masy, switch do PORTC5 i do masy. #include <avr/io.h> void Inicjalizacja(void) { DDRD=0xff; PORTD=0x00; DDRC=0x00; PORTC=0xff; } int main(void)...
Mam dziwny problem. Piszę sobie program o takiej treści: $regfile = "m8def.dat" Config Pinb.0 = Output Config Pinb.6 = Output Config Pinb.7 = Output Config Pind.5 = Output Config Pind.6 = Output Config Pind.7 = Output Led1 Alias Pinb.6 Led2 Alias Pinb.7 Led3 Alias Pind.5 Led4 Alias Pind.6 Led5 Alias Pind.7 Led6 Alias Pinb.0 Do Set Led1 Reset...
Witam. Jestem początkujący w tym temacie dlatego proszę o poradę. Wygląda to tak ze mam do Atmegi8 na porcie D pinie nr 6 podpiętą diodę w taki sposób, że anoda jest na nóżce uC potem rezystor i to do masy, problem polega na tym, że po wgraniu programu dioda słabo świeci. W czym może być problem???
Witam. Niedawno kupiłem książkę Pawła Borkowskiego "AVR & ARM7-programowanie mikrokontrolerów dla każdego " Pierwszy program jest w języku asemblera i ma za zadanie zaświecić diodę led (sch1), pokazuje też w jaki sposób określać porty uC jako wyjścia itp. Zgodnie z tym co było w tekście (programator SI prog) zaprogramowałem tym uC. Po włączeniu zasilnia...
Witam, dopiero zaczynam naukę programowania mikrokontrolerów więc jestem w tym temacie totalnie zielony. Wypożyczyłem książkę dr Pawła Borkowskiego "AVR & ARM7: Programowanie mikrokontrolerów dla każdego". Zbudowałem programator SI Prog oraz adapter(płytkę uruchomieniową) wg instrukcji z książki, sprawdziłem dokładnie wszystkie ścieżki i połączenia...
Witam wszystkich, od dawna czytam to forum i zawsze znalazłem na nim odpowiedz na moje pytania tym razem jest inaczej wiec postanowiłem założyć konto i poprosić o pomoc a mianowicie Zakupiłem programator USBASAP uC atmega8 napisałem w programie bascom-avr nastepujacy kod: $regfile = "m8def dat" $crystal = 1000000 config pind.0 = output led alias pind.0...
Witam serdecznie! Od jakiegoś czasu bawię się trochę atmegą8. Jako, że jestem początkujący, pisałem proste programy, typu zaświeć diodki, zgaś diodki. Podczas wykonywania programu, który miał zaświecać daną diodę, gdy wciśnięty jest dany przycisk, mikrokontroler przestał odpowiadać. Program w ogóle napisany był tak, że dopóki nie jest wciśnięty przycisk,...
Witam! Mam problem żeby uruchomic procesor atmega8. Otóż, podłączam zasilanie do VCC, AVCC. Oraz mase do GND, AGND. Reset przez rezystor 20kΩ. Kondenastor 100 nF przy nozkach. Mam dwa takie procesory. Jeden ma program ktory ma jedynie zaswiecic diody na wszystkich pinach (z wyjatkiem kilku pinow), drugi ma inny program, ale to nieistotne jaki....
Witam ponownie. Ponieważ nie zdążyłem odpowiedzieć na pytanie o schemat i program, a już mój temat znalazł się w koszu pomimo, że zamieściłem go w zakładce dla początkujących: http://www.elektroda.pl/rtvforum/topic26... to proszę o wyrozumiałość i informuję, że schemat wygląda tak: VCC i AVcc - plus zasilacza 5V GND (oba) - minus zasilacza RESET...
Czyżby kolejny zegar binarny... Wszystkie porty jako wyjścia. Przy takim podłączeniu możesz sterować jednocześnie tylko jedną kolumną diod. Chcąc uzyskać efekt ciągłego świecenia musisz w sposób ciągły zapalać kolejne kolumny. Czyli w pętli na port C wysyłasz odpowiednie dane, a potem zapalasz odpowiednią kolumnę wysyłając na PD 1 następnie wysyłasz...
Przed zapaleniem jednej diody powinieneś zgasić te dwie pozostałe: [syntax=c] if(pomiar<30) { PORTB |= (1<<PB2) | (1<<PB3); // gasisz diody na PB2 i PB3 PORTB &= ~(1<<PB1); // zapalasz diodę na PB1 } [/syntax]
wyrzuc przekaźnik z dioda i zobacz czy Led sie będzie zapalał
Jeśli już, to nie trzy stronicowa tabelka zbiorcza, tylko pełna dokumentacja: Atmel AVR 8-bit Instruction Set Przepraszam, nie wszystkie mikro konrolery posiadają takie rejestry jak RAMPZ , RAMPY itd. W temacie jest mowa o ATmega8 , więc piszę jedynie o tym typie MK. Wcale nie zapomniałem. Czy Twoje oko spotrzeże zmianę świecenia diody na pinie na...
Chodzi Ci o zapalanie diody stanem niskim? Musisz ustawić kierunek pinu na wyjście i wpisać do niego 0. Tylko tyle:) P.S. Sprecyzuj, czy chodzi Ci o zapalanie diody, czy obsługę jakiegoś przycisku, po naciśnięciu którego dioda ma się zapalić.
Program ważna rzecz, ale z tego co widać anodę diody podłączyłeś do uK a katodę do masy, czyli niby prawidłowo a jednak nie. Uk mają to do siebie eż ich wydajność prądowa na port jest "mała". W przypadku Atmega8 absolutnie max prąd na pin wynosi 40mA. Diody powinny być podłączone odwrotnie czyli plusem do zasilania a minusem do portów uK. Wtedy dioda...
Najpierw wklep mój kod. Problem miałeś w braku podciągania PinB2 do VCC, i w tym że najpierw gasiłeś diodę a potem ją zapalałeś w ifie i tak w kółko. Więc jak już to by CI bardzo szybko migała.
W telegraficznym skrócie - w "nadajniku" wysyłasz znaki komendą PRINT, np "A" dla pierwszego LEDa i "B" dla drugiego. W odbiorniku odbierasz dane z UARTu (inkey) i jeśli jest "A" to zapalasz jedną diodę, jak doszło "B" drugą.
No prosta sprawa :P Skoro stan '0' zapala diodę, to musisz zanegować odczytane wartości. Przykład na przykład: Wklepujesz 1+1 -> na porcie dla wklepanej jedynki masz stan taki: 11111110, po dodaniu takich dwóch liczb otrzymujesz wynik: 11111100, a więc zapalają się dwie ostatnie diody i udają, że wynikiem jest trzy :P A teraz negujemy: ~11111110 + ~11111110...
Proponuję: if (r >=g && r >= b) PORTD |= _BV(PD4) Analogicznie dla "g" i "b". Należy także gasić wszystkie diody przed sprawdzaniem warunków. Założyłem, że stan wysoki na porcie zapala diody. Jeśli zachodzą warunki podane przez kolegę Andrzej_S , to zapalają się te diody, które są równe pod warunkiem, że są to wartości największe.
0 zapalasz diode tak masz podłączone to dlaczego else w przerwaniu timera zapala diodę?
Wyobraź sobie, że przerwanie występuje co 500ms a do procka podłączona jest dioda. Co pół sekundy dioda zapala się i gaśnie. Okres przebiegu to będzie czas świecenia i wygaszenia diody czyli jedna sekunda. Jeśli przerwanie było by generowane co sekundę okres wynosił by wtedy dwie sekundy.
U mnie po dopisaniu linijki, którą podałem Ci w poprzednim poście program działa i dioda mruga :)
Problem rozwiązany :) Jako kolejne ćwiczenie proponuje zrobić żeby dioda płynnie się wygaszała i zapalała - PWM.
Temat raportowany: zaniża poziom Bardzo proszę o pokazanie jakichkolwiek prób samodzielnego poradzenia sobie z problemem.
'TOIE0' to niezdefiniowany symbol, dlatego muszę wpisać inaczej jeżeli nie ma to uzupełnij, najlepiej w pliku mega8.h ale mozesz i na początku swojego programu: #define TOIE0 2 ale kompilacja codevision również wyrzuca błędy przy sei() i cli() Nie ma w CV tych instrukcji - używasz je w postaci: #asm("sei"); Czy dobrze rozumiem, że...
Niewątpliwie bardziej efektownie będzie zapalanie się diod w zależności, od której strony będzie się szło. Ale jak nie poradzę sobie z tym, związku z tym, że jestem dopiero początkującym to zrobię na tym sumowaniu do PCB0 i będą się na przykład od środka zapalać. Nie wiem czy będę miał taki, ale wtedy należałoby zastosować zaświecenie diody stanem niskim?
Można by też wysterować to multipleksowo jak wyświetlacze siedmiosegmentowe bez jakichkolwiek zewnetrznych układów, podłączając np. 5 zestawów po 5 diod przez tranzystory a potem przełączając się pomiędzy nimi np co 4ms zapalać odpowiednie diody. Zajmie to tylko 10 wyprowadzeń.
Na programowaniu się nie znam, ale wiem że atmega ma w sobie możliwość sterowania PWM. Czyli po napisaniu odpowiedniego programu możesz płynnie zapalać i gasić diody w jakim chcesz czasie. Poszukaj pod hasłem "atmega8 pwm dioda" pierwszy lepszy film: [youtube]http://www.youtube.com/watch?v=...
Chodzi o brak break; wiem że po winno być na końcu nie zapomniałem o nim, chodzi o to że przy takim kodzie diody w ogóle się nie zapalają.
To proponuje strawdzić na jaką wartość są ustawione fusebity odpowiedzialne za Brown-out. A zamiast jakiegoś migania diodami jako program głowny proponuję po prostu pin na którym jest podpięty led ustawić jako wyjście i po prostu zapalić diodę. Zakładam że led jest podpięty do plusa więc trzeba tam wpisać 0 i wprowadzić program w pętlę bez końca. Dioda...
zapalać dioda atmega8 zapalać zielony dioda zapalać czerwona dioda
impedancja całkowita korek spustowy skrzyni pochodna natężenia
Delphi EL3 BSI: PIN Extraction, EEPROM, Cloning & Common Faults in PSA Peugeot Citroën DS Opel BMW F10 – czy instalacja lewej lampy pasuje do prawej? Różnice wiązek, kodowanie, TMS