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

ATtiny13 termometr z LM13 - pytanie o zmiany w programie

robbud 15 Paź 2011 20:24 3552 20
REKLAMA
  • #1 10031081
    robbud
    Poziom 11  
    Posty: 65
    Witam, chciałbym skorzystać z projektu z linku

    http://diy.elektroda.eu/interaktywna-podstawka-pod-kufel/

    na użytek mojego modelu samochodu RC do mierzenia temperatury silnika szczotkowego żeby go nie przegrzać powyżej 80 stopni i mam pytanie:

    1) Co trzeba zmienić w programie jeśli mam ATtiny13 20Mhz (twórca projektu użył ATTiny13V 10MHz) żeby dobrze przeliczał.

    2) Co i gdzie zmienić w programie zakres temperatur np. <50st BLUE; 50-75st GREEN; >75st RED

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10032375
    Józef18
    Poziom 32  
    Posty: 1607
    Pomógł: 168
    Ocena: 165
    robbud napisał:
    Witam, chciałbym skorzystać z projektu z linku

    http://diy.elektroda.eu/interaktywna-podstawka-pod-kufel/

    na użytek mojego modelu samochodu RC do mierzenia temperatury silnika szczotkowego żeby go nie przegrzać powyżej 80 stopni i mam pytanie:

    1) Co trzeba zmienić w programie jeśli mam ATtiny13 20Mhz (twórca projektu użył ATTiny13V 10MHz) żeby dobrze przeliczał.

    2) Co i gdzie zmienić w programie zakres temperatur np. <50st BLUE; 50-75st GREEN; >75st RED

    Kod: text
    Zaloguj się, aby zobaczyć kod


    1. Z programu wynika że program jest przystosowany do pracy z rezonatorem kwarcowym o częstotliwości 4,8 MHz "$crystal = 4800000 - w programie"
    2. Cały zakres jest przedstawiony w programie Select Case Przejscie

    Pozdrawiam
    Józef
  • #3 10033718
    MarianRe
    Poziom 11  
    Posty: 12
    Dla ścisłości:
    robbud napisał:
    termometr z LM13

    W projekcie jest czujnik temperatury LM35.
    Józef18 napisał:
    Z programu wynika że program jest przystosowany do pracy z rezonatorem kwarcowym o częstotliwości 4,8 MHz "$crystal = 4800000 - w programie"

    A z opisu wynika:
    "wewnętrzny oscylator 4,8MHz, nie dzielony przez 8"
    Pozdrawiam.
  • #4 10033739
    robbud
    Poziom 11  
    Posty: 65
    Czyli jeśli dobrze rozumuję (bo w układzie nie ma żadnego zewnętrznego kwarcu) to nie muszę się przejmować tym, że mam ATtiny13 0-20MHz a nie ATtiny13V 0-10MHz.
  • REKLAMA
  • #5 10033764
    MarianRe
    Poziom 11  
    Posty: 12
    robbud napisał:
    Czyli jeśli dobrze rozumuję (bo w układzie nie ma żadnego zewnętrznego kwarcu) to nie muszę się przejmować tym, że mam ATtiny13 0-20MHz a nie ATtiny13V 0-10MHz.

    Też jestem początkujący, ale wiem, że wystarczy tylko odpowiednio ustawić fusebity :D
  • #6 10033790
    piotrva
    VIP Zasłużony dla elektroda
    Posty: 6409
    Pomógł: 625
    Ocena: 735
    Te dane to MAKSYMALNE częstotliwości pracy, a za to z jaką rzeczywistą częstotliwością pracuje układ są odpowiedzialne między innymi te fusebity.
  • #7 10034692
    robbud
    Poziom 11  
    Posty: 65
    Dziękuję za odpowiedzi i postaram się jutro skorygować program <50st BLUE; 50-75st GREEN;
    >75st RED i poproszę o zerknięcie. Pozdrawiam
  • REKLAMA
  • #8 10039288
    robbud
    Poziom 11  
    Posty: 65
    Skorygowałem program i mam prośbę jakby ktoś zobaczył ile byków narobiłem :-) bo próbowałem wziąć to na chłopski rozum ale nie wiem czy to wystarczy.
    Pozdrawiam
    ----------------------------------------------------------------------------
    Select Case Przejscie

    Case 0:
    'zapalam B
    Incr B
    'przy 50*C i powyżej całkowicie zaniknie
    If B < 500 Then Przejscie = 1

    Case 1:
    'gaszę R
    If R < 6 Then
    Przejscie = 2
    Else
    Decr R
    End If

    Case 2:
    'zapalam G
    Incr G
    If G > 500 Then Przejscie = 3

    Case 3:
    'gaszę B
    If B < 6 Then
    Przejscie = 4
    Else
    Decr B
    End If

    Case 4:
    'zapalam R
    Incr R
    If R > 750 Then Przejscie = 5


    Case 5:
    'gaszę G
    If G < 6 Then
    Przejscie = 0
    Else
    Decr G
    End If

    End Select

    End If


    'jeśli temperatura
    If Temp > 0 And Temp < 300 Then
    If R > 0 Then Decr R 'wygaszam kolory
    If G > 0 Then Decr G
    If B > 0 Then Decr B
    Wyl = 0


    Loop
  • #9 10039592
    MarianRe
    Poziom 11  
    Posty: 12
    Ja zrobiłbym to tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Pominąłem programową PWM (timer i przerwania). LED-y pracują w trybie "włączona/wyłączona".
    Ale, jak już wspomniałem, jestem początkujący. Na symulatorze program działa.
  • REKLAMA
  • #10 10040499
    robbud
    Poziom 11  
    Posty: 65
    Witam widocznie jesteś bardziej zaawansowany (na jakim symulatorze to sprawdzasz) niż ja bo do tej pory korzystałem z gotowców i nawet się nie zastanawiałem jak programy się pisze. Jutro zrobię układ na pająka jak kupie diody RGB bo się okazało,że mam ze wspólną anodą a nie katodą jak na schemacie a dzisiaj robię sobie lutownicę HOT AIR.
  • #11 10040724
    MarianRe
    Poziom 11  
    Posty: 12
    robbud napisał:
    kupie diody RGB bo się okazało,że mam ze wspólną anodą

    I taka dioda będzie odpowiednia do tego układu (programu) - można zrezygnować z użycia tranzystorów i sterować katody bezpośrednio z wyjść µC (poprzez szeregowe rezystory). Tranzystory byłyby potrzebne dla diod dużej mocy (a poza tym, program można przecież bardzo prosto dostosować do dowolnego typu diod).
    A symulator jest oczywiście BASCOM-a :D
  • #12 10041525
    robbud
    Poziom 11  
    Posty: 65
    (a poza tym, program można przecież bardzo prosto dostosować do dowolnego typu diod)

    Czyli jak trzeba przerobić program?
  • #13 10041847
    MarianRe
    Poziom 11  
    Posty: 12
    robbud napisał:
    Czyli jak trzeba przerobić program?

    Dla diody RGB ze wspólną anodą podłączonej tak, jak napisałem wcześniej - niczego nie trzeba zmieniać.
    ATtiny13 termometr z LM13 - pytanie o zmiany w programie

    Ewentualna zmiana programu (dla wspólnej katody lub użycia kluczy tranzystorowych) polega na zamianie miejscami poleceń Set i Reset.
  • #14 10042567
    robbud
    Poziom 11  
    Posty: 65
    Witam, mógłbyś wrzucić program który napisałeś bo jak ja go napisałem w BASCOM-ie to pokazuje mi błąd w 3 liniach.
  • #15 10042718
    MarianRe
    Poziom 11  
    Posty: 12
    No cóż, program źródłowy już "wrzuciłem" - wystarczy go skopiować. Pewnie zrobiłeś błędy przy pisaniu.
    W załączniku są pliki .bas i .hex.
    Załączniki:
    • wsk_temp.rar (790 Bajtów) Musisz być zalogowany, aby pobrać ten załącznik.
  • #16 10042911
    robbud
    Poziom 11  
    Posty: 65
    Jak wrzucę do BASCOM AVR i próbuję zrobić symulację albo kompilację to pokazuje mi błędy. Czy tak może być bo spróbowałem na innym programie np. MiniLampkaRGB i tam mi nie pokazuje błędów?
  • #17 10042971
    sp3ots
    Poziom 38  
    Posty: 3074
    Pomógł: 524
    Ocena: 675
    Witam !
    Dodaj te trzy linie (jako 3, 4 i 5 ) a będzie się dobrze kompilował:
    
    $hwstack = 8
    $swstack = 8
    $framesize = 8
    

    Pozdrawiam. Stefan
  • #18 10044012
    robbud
    Poziom 11  
    Posty: 65
    Dzięki teraz błędy nie wyskakują.
  • #19 10080829
    robbud
    Poziom 11  
    Posty: 65
    Witam,dzisiaj zlutowałem układ i działa jak należy (dopisałem tylko do niego te trzy linijki). Spróbuję się nim jeszcze pobawić i jak coś wymyślę to dam znać. Dziękuję za pomoc.
  • #20 10086729
    MarianRe
    Poziom 11  
    Posty: 12
    Ja też złożyłem układ i stwierdziłem, że należy wprowadzić czas oczekiwania po włączeniu diody (linia : Waitms 20 'jaśniej świecą). Dodatkowo można uzyskać pulsujące świecenie diody czerwonej (po przekroczeniu maksymalnej temperatury).
    Ta wygląda zmodyfikowany program:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam
  • #21 10087348
    robbud
    Poziom 11  
    Posty: 65
    Witam, wielkie dzięki , ja dzisiaj trochę poczytałem i zbieram :-) wiedzę do zrobienia płynnego przejścia pomiędzy kolorami jak się uda to dam znać. Pozdrawiam

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik planuje wykorzystać projekt termometru z czujnikiem LM35 do monitorowania temperatury silnika w modelu samochodu RC, aby uniknąć przegrzania powyżej 80 stopni. Zadaje pytania dotyczące modyfikacji programu dla mikrokontrolera ATtiny13 20MHz w porównaniu do ATtiny13V 10MHz oraz jak zmienić zakres temperatur dla diod RGB. Odpowiedzi wskazują, że należy ustawić fusebity dla odpowiedniej częstotliwości oraz dostosować program do nowego zakresu temperatur. Użytkownicy dzielą się również kodem oraz wskazówkami dotyczącymi poprawy działania diod LED.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA