Safety Switch V1.3 - der Magnetschalter

Wired

User
Hallo Zusammen,

Schalter gibt es wie Sand am Meer, Magnetschalter auch, warum jetzt noch einen? Meiner hat den Vorteil, dass man ihn in die Löcher für die "normalen" Schalter schrauben kann.

Was kann er noch?
- Er kann von 8,4 - 5,5 V Schalten (oh ein Wunder)
- Er könnte bis zu 55 Ampere schalten (also machen wir mal real 10 Ampere)
- Er schaltet über einen FET, d.h. keine Mechanik, die mit Vibrationen ein Problem haben könnte
- Er ist mit jedem Magneten schaltbar
- Er prüft, ob das Schalten auch wirklich gewollt war
- Er arbeitet OHNE! Wait- Befehle, d.h. das Programm ist immer aktiv und "lauscht"
- Die Firmware ist in Bascom geschrieben und daher für jeden änderbar
- Es gibt ein fertiges Layout
- Die Bauteile sind alle bei Reichelt erhältlich
- Die Leistungs- Leiterbahnen sind "dick" genug
- Er ist zwar in SMD, aber noch in der 0805- er Bauteilgröße aufgebaut.
- Er basiert auf einem Atmel Tiny (so jetzt mal den Glaubenskrieg anzetteln: Meiner Meinung nach die einfachsten µC's)
- Er merkt sich die "Schalterstellung" bei einem Stromausfall

Was soll er noch alles können:
- Parametrisierung über einen Bootloader (Hagenre) + Windows-Programm
- Ein Programmieradaper ist nicht unbedingt nötig (USB to RS232 reicht vollkommen aus)

Das Projekt richtet sich im Moment noch an Personen, die einen Programmieradapter haben. der Tiny muss vor dem einlöten programmiert werden. Die Eagle Dateien sind in der safswi.dat, bitte in safswi.zip umbenennen (Sorry rc-network für diesen Kunstgriff) Anhang anzeigen safswi.dat

Ich bitte um Entschuldigung für diese Stakkato Schreibweise, aber mein Harz ist am gelieren....:rolleyes:

Kurz das Rechtliche: Privater Nachbau erlaubt, kommerziell nicht (bitte bei mir melden)

So dann die Bilder:

Der Schalter, fertig von oben:
k-20141114_195015.jpg

und von unten:

k-20141114_195026.jpg

Die Platine:

k-20141114_194926.jpg

der Schaltplan:

Safety Switch Schaltplan.png

Layout Top:

Safety Switch Layout Top.png

Layout Bottom:

Safety Switch Layout Bot.png

MPX Stecker stehend:

k-20140625_121618.jpg

MPX Stecker liegend:

k-20140625_121632.jpg

Der Programmcode (Bascom):

Code:
$regfile = "attiny45.dat"$crystal = 1000000                                          'interner 1MHz vorteiler 8


'$noramclear
'$hwstack = 10
'$swstack = 10
'$framesize = 10
'$eeprom


'Portdeklaration
'portb.3 = Transmit / Recieve interner Pullup
Config Portb.5 = Input                                      'Noch nicht benutzt
Config Portb.4 = Output                                     'Schalter FET
Config Portb.3 = Input                                      'Spannungsmessung
Config Portb.2 = Input                                      'Hallgeber
Config Portb.1 = Output                                     'LED Grün
Config Portb.0 = Output                                     'LED Rot
Config Adc = Single , Prescaler = Auto , Reference = Internal_1.1       'Spannungsmessung


Config Int0 = Rising
Enable Interrupts
Enable Int0
On Int0 Interrupthandler
'Config Watchdog = 16                                        'Watchdog auf 64 mS


'Aliases
Fet Alias Portb.4
Hall Alias Pinb.2
Ledgrn Alias Portb.1
Ledrot Alias Portb.0




'Variablendeklaration
Dim Epromflag As Byte
Dim Intflag As Byte
Dim Z As Word
Dim Rest As Word
Dim Volt_raw As Word




'Prüfung, ob Schalter an oder aus war


Readeeprom Epromflag , 10


If Epromflag = 1 Then
' Schalter ein
   Ledgrn = 0
   Ledrot = 1
   Fet = 0
Else
'Schalter aus
   Ledgrn = 1
   Ledrot = 0
   Fet = 1
End If


Gosub Spannung


Intflag = 0
Z = 0


'Hauptschleife
Schleife:
Do
   If Intflag = 1 Then
      Goto Ende
   End If
   If Hall = 0 Then
      Incr Z
      If 60000 < Z Then                                     'Zeit, die der Magnet vor dem Sensor gehalten werden muss (~3 Sek.)
         Z = 10000                                          'Zeit, in der der Magnet vor dem Sensor entfernt werden muss (~2,5 Sek)
         Do
           Rest = Z Mod 100
           If Rest = 0 Then
              Toggle Ledrot
           End If
           Decr Z
         Loop Until Z = 0
              If Hall = 0 Then
                 Goto Ende
              End If
         Disable Int0
         Toggle Ledgrn
         Toggle Ledrot
         Toggle Fet
         Readeeprom Epromflag , 10
         If Epromflag = 0 Then
            Epromflag = 1
         Else
            Epromflag = 0
         End If
         Writeeeprom Epromflag , 10
         Gosub Spannung
         Z = 0
         Intflag = 1
         Enable Int0
      End If
   Else
      Z = 0
   End If
Ende:
Loop


'
Spannung:
'#########################################
'Berechnete Werte, Spannungsteiler 10:1 (10k:1k)


' Internal_1.1


'8,4 - 7,8 = 710 - 660
'7,79 - 7,4 = 659 - 626
'7,39 - 6,5 = 625 - 525
'6,49 - 6 = 524 - 507




'Spannungsmessung Starten
Start Adc
'Hole Wert
Volt_raw = Getadc(3)
'Spannungsmessung Stoppen
Stop Adc


Waitms 1000


'Auswahl Bereich
'LiPo 8,4 V
Select Case Volt_raw
   Case 660 To 720 : Z = 8
   Case 626 To 659 : Z = 6
   Case 525 To 625 : Z = 4
   Case 507 To 524 : Z = 2
   Case Else : Z = 20
End Select


'Bei LedRot an muss 1x mehr geblinkt werden
Readeeprom Epromflag , 10


If Epromflag = 0 Then
   Z = Z + 2
End If


'Blinken
Do
   Toggle Ledrot
   Waitms 1000
   Decr Z
Loop Until Z = 0


Waitms 1000
Return


'Interrupt, um dauerndes Umschalten zu verhindern
Interrupthandler:
Interrupt:
Intflag = 0
Return

Platinen habe ich noch.

Bei Fragen einfach melden.
 
Hallo,

Interesannter Schalter.
Was für ein Hall Element hast du verwendet? Wie groß ist die Stromaufnahme im ausgeschalteten Zustand?

Gruß Heinz
 
Fein gemacht, sicher auch eine gute Ausgangsbasis für Weiterentwicklungen, z.B. Dual Versorgung.

Ist T1 "falschrum" im Schaltplan?
Oder ist das Absicht, um den Verstärkungsfaktor unter 1 zu bekommen? Machen die nämlich, wenn man C und E vertauscht.

Gruß
Claus
 

Wired

User
Hallo Zusammen,

es freut mich, dass Ihr das Projekt interessant findet!

Zu den Fragen:

@Heinz: Als Hallelement kommt ein TLE 4905 zum Einsatz. Die Stromaufnahme im ausgeschalteten Zustand habe ich nicht gemessen, das Web liefert einen Wert bei 1 Mhz von ~1 mA, also mal mit Sicherheit oben drauf hat die Gesamtschaltung 3 mA im ausgeschaltetem Zustand. Ich werde die Firmware noch um einen Watchdog und um einen Sleepmodus erweitern

@Claus: Ich hatte T1 als "ultimativen" Rettungsanker geplant: Grundsätzlich ist der FET durch die Verbindung Gate- +12V leitend. Erst wenn der Transistor T1 geschaltet wird, geht der Schalter aus. Geht der Tiny kaputt, ist der Schalter immernoch an. Die Doppelstromversorgung geistert mit auch seit langem durch den Kopf, ich hätte aber gerne einen Buck-Boost Regler von 5-8 V. Ideale Dioden (auf FET Basis) gibt es als Chip bereits fertig von Linear (seit neuestem meine Lieblings-Chip-Firma), dann noch den µC für die Steuerung fertig.... nein Fertig ist sie noch nicht... das dauert leider noch ein wenig.

@Julian: Ja Boards habe ich noch, Stückpreis 2,50€ incl. Versand in D als Brief, bei Paypalzahlungen 3€. Bedenke aber, dass da noch nicht die Fuktionalität des Bootloaders dabei ist, du also den Tiny vor dem einlöten programmieren must. Ich stelle die Tage eine Bestellliste für Reichelt rein. Kosten insgesamt liegen bei ca. 7€ / Stk.

Grüße, Philipp
 
Hallo Phillip,

Wenn ich die Akkus immer angeschlossen lassen möchte, muss die Stromaufnahme im ausgeschalteten Zustand noch verringert werden. Der Hall braucht nach Datenblatt 3-4mA. Damit ist z.B. ein 2000mAh Akku in etwa einem Monat leer.

Gruß Heinz
 
@Claus: Ich hatte T1 als "ultimativen" Rettungsanker geplant: Grundsätzlich ist der FET durch die Verbindung Gate- +12V leitend. Erst wenn der Transistor T1 geschaltet wird, geht der Schalter aus. Geht der Tiny kaputt, ist der Schalter immernoch an.
Ist schon klar der Sinn, als Failsafe Auslegung muss das so sein.
Erklärt aber nicht, warum der Emitterpfeil des NPN nicht nach GND zeigt, wie es in der Inverterschaltung üblich wäre.
 

Wired

User
Hallo Zusammen,


@Claus, ja Du hast recht, der Transistor ist falschrum drin. Das ist ein Fehler. Wird Korrigiert. Funktioniert aber trotzdem


@Heinz: Da muss ich mal schauen, wie ich den Hallsensor "Abschalten" kann


Die Reichelt Bestellliste:


Menge / Bezeichnung / Bestellnummer / Einzelpreis (Gesamtsumme)
1x Spannungsregler, 5V, 50 mA, SOT-23-5 / LP 2980 IM5-5,0 / 0,43€
1x Atmel AVR-RISC-Controller / ATTINY 45V-10SU / 1,60 €
1x Leistungs-MOSFET LogN-Ch D-Pak 55V 36A / IRLR 2905 / 0,55 €
1x Hallsensor, 3,8-24V / TLE 4905L / 0,59 €
1x Transistor SMD NPN SOT-23 45V 0,1A 0,25W / BC 847A SMD / 0,04 €
1x CHIP-Leuchtdioden, Bauform G0805, grün / SMD-LED 0805 GN / 0,08 €
1x CHIP-Leuchtdioden, Bauform G0805, rot / SMD-LED 0805 RT / 0,08 €
4x SMD-Chip-Widerstand, Bauform 0805, 1,0 K-Ohm / SMD-0805 1,00K / 0,103 € (0,41 €)
4x SMD-Chip-Widerstand, Bauform 0805, 10 K-Ohm / SMD-0805 10,0K / 0,103 € (0,41 €)
1x SMD-Chip-Widerstand, Bauform 0805, 4,7 K-Ohm / SMD-0805 4,7K / 0,103 €
1x SMD-Chip-Widerstand, Bauform 0805, 2,7 K-Ohm / SMD-0805 2,7K / 0,103 €
4x SMD-Vielschicht-Keramikkondensator 100N, 10% / X7R-G0805 100N / 0,05 € (0,2 €)
1x SMD-Vielschicht-Keramikkondensator 10N, 10% / X7R-G0805 10N / 0,05 €
1x SMD-Tantal-Kondensator, 3,3µF/16V / SMD TAN.3,3/16 / 0,09 €
1x Leiterplattenverbinder Micro Match, 06-polig / MPE 371-1-006 / 0,24 €
1x IDC-Stiftwanne Micro Match, 06-polig / MPE 372-1-006 / 0,27 €
1x Buchseneisten Micro Match SMD 1,27 mm,2X03,L / MPE 374-2-006 / 0,27 €
1x Miniatur-Federleiste, Print, gerade, 2x 3-polig / MM FL 6G / 0,54 €
1x 36pol. Stiftleiste, gewinkelt, RM 2,54 / SL 1X36W 2,54 / 0,29 €
1x Multiplexbuchse
1x Flachbandkabel (ehemaliges IDE Kabel)
1x USB to RS 232 Adapter


Summe Bauteile 6,88 €
LG Philipp
 

k_wimmer

User
Hallo,

benutze doch statt dem Hall-Element einen Reed-Schalter.
Da sparst du dir die Stromaufnahme von dem Hall-Sensor.
 
Ansicht hell / dunkel umschalten
Oben Unten