Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATmega8 do pomiaru intensywnosci oświetlenia

24 Kwi 2008 11:54 4221 15
  • Poziom 2  
    Witam wszystkich
    Mam pewien problem.Mianowicie chcialem zrobic uklad na ATmega8 do pomiaru intensywnosci oświetlenia. Pomiar ma sie odbywac poprzez fotorezystor podłączony do komparatora i ma być wyświetlany na 8 diodach podłączonych do portu C np. Tylko ze nie zabardzo wiem jak napisac program by tym sterował. proszę o pomoc w napisaniu programy wykonywalnego.
  • Poziom 32  
    Skoro nie umiesz programować, to może nie rób tego na mikrokontrolerze. Są takie fajne układy do sterowania linijką LEDów z serii LM391X. Na przykład LM3914 ma chyba liniową charakterystykę.
  • Poziom 39  
    Komparatora?
    Może lepiej szeregowo z fotorezystorem wpiąć rezystor i mierzyć za pomocą przetwornika analogowego cyfrowego napięcie na tak stworzonym dzielniku napięcia...

    Wyświetlanie na LED-ach można zrobić w prosty sposób porównując czy napięcie z przetwornika przekroczyło dany próg (czyli if(U_przetwornika > 100) wlacz diode LED 5.

    Jeśli zadowoli Cie skala liniowa czy logarytmiczna poszukaj pod hasłem wskaźnik wysterowania LED. Jest troche kitów które możnaby zaadoptować.
  • Poziom 2  
    Z programowanie na razie mam mało wspólnego ale chciałbym sie tego nauczyć bo to jest o wiele ciekawsze nie układy analogowe.

    Ten projekt który chcę zrobić ma za zadanie mierzyć światło i wyświetlać je liniowo na diodach. To nie musi być zrobione na komparatorze może być na przetworniku analogowo-cyfrowym. Tylko żeby było prościej.

    I mam problem z napisaniem tego w avr studio bo na takim programie pracuję.

    Istnieje funkcja "Pisownia" i proszę z niej korzystać. [c_p]
  • Poziom 39  
    Jeśli chcesz nauczyć się podstaw programowanoa poczytaj sobie tutaj:
    http://avr.elektroda.eu

    i tytaj:
    http://www.patron.ehost.pl/

    Na tej drugiej stronie musisz założyć konto i się zalogować. Wtedy w menu zobaczysz Win-AVR tutorial :)

    Tutorial to szereg ćwiczeń pokazujących działanie różnych bloków procesora (w tym przetwornik a/c)
  • Poziom 38  
    A ja standardowo proponuję zapoznanie się z rodziną książek do AVRów wydawnictwa BTC - naprawdę fajne;)
  • Poziom 28  
    widze ze autor tego tematu nie zna sie dobrze na mikrokontrolerach. Za to polowa ludzi ktorzy odpowiedzieli chyba tez, zamiast szybko pomoc pisza jakies totalne bzdury.
    Zaraz ci umieszcze tutaj schemat i kod napisany w bascom
  • Poziom 32  
    A co powiecie na fotorezystor którego rezystancje bedzie mierzyl uc? Na podstawie tego jaka jest rezystancja zapali odpowiednia ilosc diod LED. W Bascomie jest nawet taka funkcja "getrc".

    Pozdrawiam Dawid.
  • VIP Zasłużony dla elektroda
    wader_669 napisał:
    donats zadal proste pytanie, a tak naprawde nikt mu nie odpowiedzial, piszecie same bzdury zamiast mu jakos pomoc.
    A wiec podlanczasz do przetwornicy analogowo cyfrowej fototranzystor jeden koniec do masy a drugi do przetwornicy musisz jeszcze podlaczyc rezystor 10k do plusa i drugi koniec do przetwornicy.
    jak bede mial czas to ci narysuje schemat a zaraz ci jeszcze zapodam przykladowy kod


    Posądzenia o bzdury są kompletnie nie na miejscu, co gorsza pisząc "przetwornica" nie wystawiasz o Sobie dobrego świadectwa. Kolega mrrudzin już zaproponował ten sposób.
  • Poziom 28  
    no masz racje sory zle napisalem, poprawnie to sie nazwya przetwornik analogowo cyfrowa.
    To co chce autor zrobic nie da sie na jednym komparatorze osiagnac .
    Najlepiej zastosowac tutaj wejscie adc atmega8.
    (a tak poza tym crazy_phisic nie wnosisz nic nowego do tematu procz jechania na mnie, moze przesadzilem z tym ze wszyscy pisza bzdury sory)

    oto kod: (jest najskromniejszy chyba jaki mogl by byc)

    Code:

    $regfile = "m8def.dat"
    $crystal = 8000000

    Config Adc = Single , Prescaler = Auto , Reference = Avcc

    Config Pinb.0 = Output
    Config Pind.7 = Output

    Dim Wart_ac As Word

    Start Adc

    Do

    Wart_ac = Getadc(0)


    If Wart_ac > X Then                                         'x to jest jakas liczba, jak jasnosc przekroczy ta wartosc x to ma sie zapalic dioda                                       
    Portd.7 = 1
    Portb.0 = 0
    End If

    If Wart_nap > Y Then                                        'tak samo zamiast y wpisz jakas liczbe
    Portd.7 = 0
    Portb.0 = 1
    End If

    Loop
    End


    Oto schemat, wiadomo nie najpiekniejszy. Narysowany szybko w paincie i ma tylko 2 diody zamiast 8 ale napewno z dolanczeniem 4 pozostalych diod sobie poradzisz.

    Code:

    $regfile = "m8def.dat"
    $crystal = 8000000

    Config Adc = Single , Prescaler = Auto , Reference = Avcc

    Config Pinb.0 = Output
    Config Pind.7 = Output

    Dim Wart_ac As Word

    Start Adc

    Do

    Wart_ac = Getadc(0)


    If Wart_ac > X Then                                         'x to jest jakas liczba                                       '
    Portd.7 = 1
    Portb.0 = 0
    End If

    If Wart_nap > Y Then                                        'tak samo zamiast y wpisz jakas liczbe
    Portd.7 = 0
    Portb.0 = 1
    End If

    Loop
    End
  • Poziom 2  
    Wielkie dzięki Vader dużo mi pomogłeś.Fajnie by było żeby ktoś napisał to jeszcze w "c".
    Na programowaniu może się nie znam ale od czegoś trzeba zacząć :D
  • Poziom 39  
    Cytat:

    donats zadal proste pytanie, a tak naprawde nikt mu nie odpowiedzial, piszecie same bzdury zamiast mu jakos pomoc.


    Nono... Piszecie :)
    Cytat:

    podlanczasz do przetwornicy analogowo cyfrowej fototranzystor jeden koniec do masy a drugi do przetwornicy


    Ahhh... Czemu wszyscy idą na łatwiznę i czekają na gotowca. Podejrzewam że kolega donats wcale nie zajrzał w te linki które wysłałem. Książki rozumiem - kosztują, trudno dostać itp.
    W tutorialu jest opisane wszystko - od instalacji i konfiguracji avr studio, przez najprostszy programator, po napisanie kodu - z wykorzystaniem wyjść (zapalanie diód LED) czy wejścia przetwornika analogowo - cyfrowego. Jakiejś podstawy C musisz oczywiście znać.

    Robiąc to najprościej jak sie da (a autor tematu napewno by tak chciał) darowałbym sobie kwarc (przecież jest wewnętrzny rezonator - a podłączenie kwarcu wymaga ustawienia fusebitów - niby proste, ale kolejny temat do przebrnięcia), darowałbym sobie też indukcyjność (zasilanie i mase części analogowej podłączył po prostu do zasilania części cyfrowej).
  • Poziom 2  
    Rację pewnie masz mrrudzin ale nie do końca. Bo gotowca nie szukam bo wole umieć to sam napisać ale chciałbym mieć jakiś wzorzec do podglądu. tutoriale przejrzałem tylko, niestety z braku czasu. Z rezonatorem i napięciem odwzorowania masz rację.
  • Poziom 39  
    Tutorial Teodora Otulaka stanowi właśnie zbiór takich wzorców.
    Zaczynałem od niego znając jako tako C, ale nie mając zielonego pojęcia jak to zastosować w uP.
    Pierwszy tutorial opisuje układ który ma za zadanie zapalić diodę (oczywiście wszystko z komentarzami poco jak i dlaczego), następny to już migająca dioda. Później dochodzą wejścia cyfrowe i analogowe etc.
    Uwierz mi że naprawde można na podstawie tego tutoriala zbudować urządzenie spełniające Twoje kryteria.

    Bawiąc się dalej pokusiłbym się np. o zapamiętywanie wartości maksymalnej i minimalnej (wyświetlanej po naciśnięciu jakiegoś przycisku) itp...
  • Pomocny post
    Poziom 28  
    mrrudzin napisał:
    Cytat:

    donats zadal proste pytanie, a tak naprawde nikt mu nie odpowiedzial, piszecie same bzdury zamiast mu jakos pomoc.


    Nono... Piszecie :)
    Cytat:

    podlanczasz do przetwornicy analogowo cyfrowej fototranzystor jeden koniec do masy a drugi do przetwornicy


    Ahhh... Czemu wszyscy idą na łatwiznę i czekają na gotowca. Podejrzewam że kolega donats wcale nie zajrzał w te linki które wysłałem. Książki rozumiem - kosztują, trudno dostać itp.
    W tutorialu jest opisane wszystko - od instalacji i konfiguracji avr studio, przez najprostszy programator, po napisanie kodu - z wykorzystaniem wyjść (zapalanie diód LED) czy wejścia przetwornika analogowo - cyfrowego. Jakiejś podstawy C musisz oczywiście znać.

    Robiąc to najprościej jak sie da (a autor tematu napewno by tak chciał) darowałbym sobie kwarc (przecież jest wewnętrzny rezonator - a podłączenie kwarcu wymaga ustawienia fusebitów - niby proste, ale kolejny temat do przebrnięcia), darowałbym sobie też indukcyjność (zasilanie i mase części analogowej podłączył po prostu do zasilania części cyfrowej).


    ok jak to pisalem bylem zmenczony i pisalem bzdury ale poprawilem :D z kwarcem tez racja. Chodzilo mi o to ze ludzie mu polecaja jakies ksiazki wiadomo sa fajne, ale to wszystko moze przeczytac w innych tematach np. "Mikrokontrolery początki" i bez sensu pisac po raz 100 to samo "polecam ci ten temat, ta strone, ta ksiazke".
    Co do progromu, wiadomo ze najlepiej samemu sie dowiedziec jak cos zrobic ale ja np. ucze sie na przykladach.