logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować woltomierz na ATtiny2313 z wyświetlaczem LCD w Bascom?

pessos 15 Lip 2007 01:59 4730 3
REKLAMA
  • #1 4082750
    pessos
    Poziom 12  
    Posty: 35
    Pomógł: 1
    Ocena: 1
    Witam,
    Chciałbym się dowiedzieć czy ktoś już robił jakiś woltomierz na attiny2313 który wyświetlałby wartość napięcia na wyświetlaczu LCD. Jeśli tak to z góry dziękuję za jakiś fragment kodu z małym wyjaśnieniem lub dobrymi komentarzami w kodzie
    Pozdrawiam
    Szymon
  • REKLAMA
  • #2 4082797
    wader_669
    Poziom 28  
    Posty: 1512
    Pomógł: 93
    Ocena: 15
    chyba raczej na attiny2313 nie da sie a jak sie da to pewnie jest hardcore
    uzyj atmega8 posiada przetwornice a/c (analogowo cyfrowe) latwo prosto chyba nawet jest w polskim helpie do bascoma
  • REKLAMA
  • #3 4083078
    pessos
    Poziom 12  
    Posty: 35
    Pomógł: 1
    Ocena: 1
    Witam,
    Przy zastosowaniu układu PCF8591 to już chyba nie powinien być aż taki hardcore ;) A żeby ułatwić to powiem o co konkretnie chodzi : aplikacja ma dokonywać pomiaru napięcia w zakresie 0-5V, podawanego z czujnika ciśnienia ( MPXH6400 ) i jego aktualną wartość na wyświetlać na LCD a wszystkie wartości występujące "po drodze" archiwizować w pamięci celem przeliczenia go na wartość ciśnienia w późniejszej fazie doświadczenia czyli analizy graficznej uzyskanych wyników na komputerze klasy PC.
    Pozdrawiam
    Szymon
  • #4 4087006
    pessos
    Poziom 12  
    Posty: 35
    Pomógł: 1
    Ocena: 1
    Okej mam taki oto programik który realizuje mniej więcej moje założenie - trochę się naszukałem ale ile przy tym znowu nauczyłem ;)

    Config Lcd = 16 * 2
    
    Dim Ad As Byte
    Dim Pa As Single
    
    Do
    Do                                      ' początek pętli programu
    Cls                                     ' procedura czyszczenia ekranu
    I2cstart                                ' start magistrali i2c
    I2cwbyte 144                            ' adres zapisu
    I2cwbyte 0                              ' wyślij bajt danych do pcf8591 na port 0
    I2cstop
    I2cstart                                ' adres odczytu
    I2cwbyte 145                            ' odczyt zgodnie z rejestrem kontrolnym
    I2crbyte Ad , Nack                      ' odczytaj wartość portu 0 PCF8591 i zakończ przesył danych (NACK)
    I2cstop
    I2cstop
    ' część obliczeniowa
    Pa = Ad / 5                             ' napięcie odniesienia
    Pa = Pa + 0.00842                       ' stałe mnożniki do obliczeń wartości ciśnienia dla MPXH6400
    Pa = Pa / 0.00241                       ' patrz nota katalogowa strona 4 wykres
    
    Lcd Pa ; " Pa"
    Waitms 200
    Loop
    
    


    problemem jest to że wcina 86% pamięci procka :? a gdzie upchać zapis i transmisję przez RSa :| :?:
    Wszelkie sugestie mile widziane ;) może jakiś inny procek lub rozbudować ten o jakaś pamięć :?:

    po chwili namysłu i czytania noty "lepiej mnożyć przez odwrotność niż dzielić zmienne typu single " zmieniłem fragment kodu dodając
    Const Vs = 0.2                          ' odwrotność napięcia odniesienia
    Const X = 0.00842                       ' wg noty katalogowej
    Const Y = 413.05245766212308963238331268071       ' odwrotność 0,002421 wg noty katalogowej


    i zmieniając obliczenia na mnożenie
    Pa = Ad * Vs                            ' napięcie odniesienia
    Pa = Pa + X                             ' stałe mnożniki do obliczeń wartości ciśnienia dla MPXH6400
    Pa = Pa * Y

    wynik zszedłem do 81%
    Pozdrawiam
    Szymon
REKLAMA