12V induktiver Näherungssschalter an STK500

Gast #2743249
Hallo liebes Forum!

Ich habe einen induktiven Näherungsschalter (betrieben mit 12V, Modell: 
DW-AS-624-M18-002) und ein STK500 mit einem Atmega16 zur Verfügung. Ich 
möchte gerne das Signal des Näherungsschalters einlesen und habe es an 
PORTA angeschlossen um das analoge Spannungssignal einzulesen und 
mittels ADC in ein digitales Signal zu wandeln. Leider kommt da nur 
Stuss raus. Die Werte schwanken immer zwischen 1023 und 0, obwohl kein 
metallischer Gegenstand den Schalter passiert. Wenn ein metallischer 
Gegenstand passiert, ändern sich die Werte fast gar nicht. 
Hardwaretechnisch funktioniert das aber, wenn ein metallischer 
Gegenstand herüber fährt, hört die kleine LED am Schalter auf zu 
leuchten und die Spannung fällt auf einen konstanten Wert (17 - 18mV) 
ab. Kann mir jemand weiterhelfen!?!
Vielen Dank im Voraus!
Gast
Also ich habe gerade noch einmal geschaut und keinen Hinweis im 
Datenblatt gefunden, dass es ein digitaler Output ist. Daher bin ich von 
einem analogen Output ausgegangen. Wenn es ein digitaler Output ist, 
kann ich dann einfach den Status des PINs (Also High oder Low) abfragen 
an dem der Schalter angeschlossen ist?
Gast
..also habe beim Hersteller nachgeschaut (da eh gerade langweilig ist) .
Wie vermutet ist das ein digitaler NS mit Schalttransistor- Ausgang,
Öffnerfunktion. Den kansst Du ohne ADC auf einen uC - Eingang legen.
evt. noch pull- up/ down Widerstände und Schutzdiode wg. der 12VDc
NS- Versorgungsspannung beachten.
Gast
Hi

>Also ich habe gerade noch einmal geschaut und keinen Hinweis im
>Datenblatt gefunden, dass es ein digitaler Output ist.

Ich auch:

Der Sensor hat einen digitalen Ausgang. Typ NPN. Da das Teil 10..30V 
Betriebsspannung benötigt, die auch am Ausgang erscheinen, ist ein 
direkter Anschluss an einen AVR nicht zu empfehlen.

MfG Spess
Gast
Ok, sollte ich dann einen Spannungswandler, der das Signal auf 5V 
runterregelt, dazwischen klemmen? Also zwischen Ausgang Schalter und 
STK500
Gast
Spannungsteiler mit 2 Widerständen reicht: Bei 12 VDC am 
Näherungsschalter und 5 VDC als Versorgung des uC  z.B. 10k und 4,7 k, 
uC Eingang an den Mittelabgriff, 4,7k an GND.
Gast
Gut das habe ich versucht, leider klappt es noch nicht :(. Ich muss doch 
den Ground des Boards und den Ground des Näherungsschalters mit dem 
Ground des Spannungsteilers verbinden (den habe ich auf eine kleine 
Platine gelötet, wie besprochen mit 4,7k und 10k), oder? Das habe ich 
getan, aber die eine LED leuchet nur mit halber Stärke und die andere 
LED leuchtet mit voller Stärke, obwohl sie eigentlich gar nichts machen 
sollte. Oh mann, ich bin echt am verzweifeln. :( Kann mir jemand helfen? 
Anbei der Code (Bascom):

Ddrd = 1
Config Portb = Output

'************  main loop

Do

   If Pind.0 = 0 Then
      Portb.0 = 1
      Portb.1 = 0
   Else
      Portb.0 = 0
      Portb.1 = 1
   End If

Loop

End


Viele Grüße
Gast
Ja, die Grounds mußt Du alle verbinden.
Dein Problem scheint BASCOM zu sein.
Lass mal den Näherungsschalter noch weg , schließe einen Taster am 
Eingang an (gegen GRD, internen Pull-Up Widerstand aktivieren) und 
bringe erst mal das Programm zum Laufen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.