Hintere sitzheizung

PDF unten für den ausbau der Rücklehne

Das hat schon der Lederfachman im Hand:

Alles ist schon abgeschraubt wegen den Kabel:

Untere:

Obere:

Neue 60 Amp kabel, für sitzheizung,Hi-Fi und fürs 12V Stecker im Kofferraum:

Hier gehts rein:

Genauer gesagt hier (Gumi von QuickHeat kabel wurde mit bohrer geöffnet und wurde neue Kabel danebengetan...):

Schalter für hinten mus ich noch kaufen(Leider zu teuer, habe jetzt Knopfe von einen VideoRecorder drinn...Bild folgt im kürze):















Elektronik, schaltplan (Atmel mit MEGA8):

Fertige, funktionierende Elektronik:

Programm:

'*************************************************************************
'*                    Gyuri ülésfûtés vezérlõje                          *
'* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
'* Fordító    : BASCOM - V.1.11.8.6                                      *
'* Dátum      : 2007-05-07                                               *
'* Honlap     : www.sirleslie.atw.hu                                     *
'*                                                                       *
'* Írta       : Balogh László                                            *
'* E-mail     : sirleslie@atw.hu                                         *
'* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
'* Örök köszönet a sok-sok segítségért: Cseh Róbert http://avr.tavir.hu  *
'*************************************************************************

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

' ATmega8 lábkiosztása a feladathoz

'                      __ __
'                     I  U  I
'          Reset  PC6 I     I PC5  Hõellenállás_B  / adc5
'             Rx  PD0 I     I PC4  Hõellenállás_A  / adc4
'             Tx  PD1 I     I PC3  Led_A_1
'    Gomb_A/Int0  PD2 I     I PC2  Led_A_2
'    Gomb_B/Int1  PD3 I     I PC1  Led_A_3
'                 PD4 I     I PC0  Led_A_4
'                 VCC I     I GND
'                 GND I     I AREF
'  Relé vezérlés  PB6 I     I AVCC
'                 PB7 I     I PB5  Led_B_4
' Fet_A vezérlés  PD5 I     I PB4  Led_B_3
'                 PD6 I     I PB3  Led_B_2
' Fet_B vezérlés  PD7 I     I PB2
'                 PB0 I     I PB1  Led_B_1
'                     I_____I

' portlábak bekonfigurálása ki és bemeneteknek szükség szerint - a nem használt lábakat kimentre célszerû állítani
Config Portb = Output

Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Input
Config Portc.5 = Input
'Config Portc.6 = Output     Reset láb - nem piszkáljuk - ha ennél a chip-nél ha használni szeretnénk, akkor a fuse biteknél kell engedélyezni (de ekkor már nem lehet újraprogramozni)

Config Portd.0 = Input
Config Portd.1 = Output
Config Portd.2 = Input
Config Portd.3 = Input
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output

Led_a_1 Alias Portc.3
Led_a_2 Alias Portc.2
Led_a_3 Alias Portc.1
Led_a_4 Alias Portc.0

Led_b_1 Alias Portb.1
Led_b_2 Alias Portb.3
Led_b_3 Alias Portb.4
Led_b_4 Alias Portb.5

Rele Alias Portb.6
Fet_a Alias Portd.5
Fet_b Alias Portd.7

Config Adc = Single , Prescaler = Auto , Reference = Internal       ' analog-to-digital-converter konfigurálása

Set Portd.2                                                 ' belsõ felhúzóellenállás bekapcsolása a gombérzékelés stabilitása miatt

Set Portd.3                                                 ' belsõ felhúzóellenállás bekapcsolása a gombérzékelés stabilitása miatt

Config Int0 = Falling                                       ' 0-ás megszakítás negatív élre aktiválódása
On Int0 A_gomb_nyomas                                       ' és megszakításkor az A_gomb_nyomas címkére ugrás (program aktuális állapotától függetlenül)

Config Int1 = Falling                                       ' 1-es megszakítás negatív élre aktiválódása
On Int1 B_gomb_nyomas                                       ' és megszakításkor az B_gomb_nyomas címkére ugrás (program aktuális állapotától függetlenül)

Enable Int0
Enable Int1
Enable Interrupts                                           ' megszakítások engedélyezése
Start Adc                                                   ' analog-to-digital-converter elindítása

Dim Hiba_a As Bit , Hiba_b As Bit
Dim Gomb_a As Byte , Gomb_b As Byte
Dim Fokozat_a As Word , Fokozat_b As Word , Hoellenallas_a As Word , Hoellenallas_b As Word

Declare Sub Gombok_a
Declare Sub Gombok_b

Wait 1

Gomb_a = 0
Gomb_b = 0

' fõprogram do-tól loop-ig
Do

  If Gomb_a > 0 Or Gomb_b > 0 Then                          ' ha valamelyik gombérték nagyobb nullánál, akkor bekapcsolja a fõrelét és végigfut az alciklusokon

    Set Rele                                                ' bekapcsolja relét

    If Gomb_a > 0 Then                                      ' ha gomb_a nagyobb nullánál akkor...

      If Fet_a = 1 Then                                     ' ha be van kapcsolva a fûtés, akkor mérés idejére kikapcsoljuk

        Reset Fet_a
        'Waitms 100
        Hoellenallas_a = Getadc(4)                          ' "A" hõellenállás megmérése/adc lekérdezése
        If Hiba_a = 0 Then Set Fet_a                        ' ha nincs hibajelzés visszakapcsoljuk a fûtést
          Else
            Hoellenallas_a = Getadc(4)                      ' ha nincs bekapcsolva, akkor is megmérjük ;-)
      End If

      If Hoellenallas_a > 960 Then                          ' ha szakadás van, akkor...
        Reset Fet_a                                         ' kikapcsolja fet-et
        Set Hiba_a                                          ' hiba bit 1-re állítás
        Toggle Led_a_1                                      ' ellenkezõ állapotba állitja a ledeket - figyelmeztetõ jelzés

        Toggle Led_a_2
        Toggle Led_a_3
        Toggle Led_a_4
        Waitms 200
      End If

      ' szabályzás, az adott fokozat értéknek összehasonlítása a hõellenállás értékével és szükség szerint ki-be kapcsolása

      If Hoellenallas_a > Fokozat_a And Hiba_a = 0 Then Set Fet_a
      If Hoellenallas_a < Fokozat_a Then Reset Fet_a

      Waitms 100

    End If

    If Gomb_b > 0 Then                                      ' mint "If gomb_A > 0 then" -nél, csak B oldalra

      If Fet_b = 1 Then
        Reset Fet_b
        'Waitms 100
        Hoellenallas_b = Getadc(5)
        If Hiba_b = 0 Then Set Fet_b
          Else
            Hoellenallas_b = Getadc(5)
      End If

      If Hoellenallas_b > 960 Then
        Reset Fet_b
        Set Hiba_b
        Toggle Led_b_1
        Toggle Led_b_2
        Toggle Led_b_3
        Toggle Led_b_4
        Waitms 200
      End If

      If Hoellenallas_b > Fokozat_b And Hiba_b = 0 Then Set Fet_b
      If Hoellenallas_b < Fokozat_b Then Reset Fet_b

      'Waitms 100

    End If

    If Gomb_a = 0 Then                                      ' gombérték nulla, akkor fet-et és ledeket kikapcsolja
      Reset Fet_a
      Reset Led_a_1
      Reset Led_a_2
      Reset Led_a_3
      Reset Led_a_4
    End If

    If Gomb_b = 0 Then                                      ' mint "If gomb_a = 0 Then" -nél
      Reset Fet_b
      Reset Led_b_1
      Reset Led_b_2
      Reset Led_b_3
      Reset Led_b_4
    End If

      Else                                                  ' különben... (ha az "If Gomb_a > 0 Or Gomb_b > 0 Then" feltétel nem igaz)

        Reset Rele                                          ' kikapcsolja a relét
        Reset Fet_a                                         ' kikapcsolja a fet-eket
        Reset Fet_b
        Reset Led_a_1                                       ' kikapcsolja a ledeket
        Reset Led_a_2
        Reset Led_a_3
        Reset Led_a_4
        Reset Led_b_1
        Reset Led_b_2
        Reset Led_b_3
        Reset Led_b_4
        Waitms 100

  End If

  ' soros portra változók és állapotok kiírása, végleges beállításkor kell majd
  Print
  Print "Gomb_A  Gomb_B  Hoellenallas_a  Hoellenallas_b"
  Print Gomb_a ; "       " ; Gomb_b ; "             " ; Hoellenallas_a ; "               " ; Hoellenallas_b
  Print
  Print "Relé  Fet_A  Fet_B"
  Print Rele ; "       " ; Fet_a ; "       " ; Fet_b
  Print

Loop

A_gomb_nyomas:                                              ' ha megnyomják az A gombot

  Incr Gomb_a                                               ' növeli a gomb_A változót +1-el
  'Bitwait Pind.2 , Set
  Waitms 200
  Call Gombok_a

Return

B_gomb_nyomas:                                              ' mint "A_gomb_nyomas" -nál...

  Incr Gomb_b                                               '
  'Bitwait Pind.3 , Set
  Waitms 200
  Call Gombok_b

Return

' hoellenállás mért értékei
'szakadás 967
'10k 659
' 9k 647
' 8k 626
' 7k 599
' 6k 568
' 5k 533
' 4k 488
' 3k 436
' 2k 366
' 1k 283
' 0 0

Sub Gombok_a

  If Gomb_a => 5 Then Gomb_a = 0                            ' hogy nullától négyig járjon a számláló, ha a gombérték nagyobbat venne fel ötnél véletlenül (prell), akkor is nulla állapotba kerüljön

      If Gomb_a = 1 Then                                    ' ha egyes fokozat, akkor...
        Set Led_a_1                                         ' bekapcsolja az egyes fokozatot jelzõ ledet
        Reset Led_a_2
        Reset Led_a_3
        Reset Led_a_4
        Fokozat_a = 540                                     ' beállítja a fokozathoz tartozó értéket
      End If

      If Gomb_a = 2 Then                                    ' ha kettes fokozat, akkor...
        Set Led_a_1
        Set Led_a_2                                         ' bekapcsolja a kettes fokozatot jelzõ ledet
        Reset Led_a_3
        Reset Led_a_4
        Fokozat_a = 510                                     ' beállítja a fokozathoz tartozó értéket
      End If

      If Gomb_a = 3 Then                                    ' ha hármas fokozat, akkor...
        Set Led_a_1
        Set Led_a_2
        Set Led_a_3                                         ' bekapcsolja a hármas fokozatot jelzõ ledet
        Reset Led_a_4
        Fokozat_a = 480                                     ' beállítja a fokozathoz tartozó értéket
      End If

      If Gomb_a = 4 Then                                    ' ha négyes fokozat, akkor...
        Set Led_a_1
        Set Led_a_2
        Set Led_a_3
        Set Led_a_4                                         ' bekapcsolja az négyes fokozatot jelzõ ledet
        Fokozat_a = 450                                     ' beállítja a fokozathoz tartozó értéket
      End If

End Sub

Sub Gombok_b

  If Gomb_b => 5 Then Gomb_b = 0

      If Gomb_b = 1 Then
        Set Led_b_1
        Reset Led_b_2
        Reset Led_b_3
        Reset Led_b_4
        Fokozat_b = 540
      End If

      If Gomb_b = 2 Then
        Set Led_b_1
        Set Led_b_2
        Reset Led_b_3
        Reset Led_b_4
        Fokozat_b = 510
      End If

      If Gomb_b = 3 Then
        Set Led_b_1
        Set Led_b_2
        Set Led_b_3
        Reset Led_b_4
        Fokozat_b = 480
      End If

      If Gomb_b = 4 Then
        Set Led_b_1
        Set Led_b_2
        Set Led_b_3
        Set Led_b_4
        Fokozat_b = 450
      End If

End Sub

AttachmentSize
Hintersitzruecken_ersetzen___L67.pdf65.99 KB