www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Relais zieht beim Start des PICs kurz an


Autor: Daniel Amesberger (amd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein kleines Problem bezüglich einer Schaltung - ich vermute 
eher, dass es mit der Softwareseite zu tun hat, daher versuche ich es 
hier.

Ich habe eine einfache Schaltung mit einem PIC16F627, zum Kompilieren 
verwende ich den CCSC Compiler . A0 geht über einen 10k Vorwiderstand an 
einen Transistor, der das Relais schaltet. A1 ebenfalls.
Nun ist es so, dass die Outputs bei mir high sind, wenn die Schaltung 
startet. Erst wenn ich ouput_low(PIN_A0) aufrufe, wird der Ausgang low 
geschaltet. Das bedeuetet allerdings dass bis dahin das Relais an ist. 
Ich kann den Effekt minimieren wenn ich den Startup-Timer deaktiviere 
(PWRTE), was ich allerdings eigentlich nicht machen will. Ausserdem hört 
man das Relais auch noch minimal beim einschalten, und ich kann nicht 
sichergehen dass nicht doch kurz durchgeschalten wird. Wie kann ich es 
bewerkstelligen dass die Relais aus sind wenn ich einschalte? Muss ich 
dazu die Schaltung verändern? Oder habe ich an der Software einen Fehler 
gemacht?

Verkürzt sieht das Programm so aus:

#define __16f627A
#include <16f627A.h>

#fuses HS,NOWDT,NOPROTECT,NOLVP

#use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3,PIN_A4)
#use fixed_io(b_outputs=PIN_B0,PIN_B3)

#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)

void main()   {
  output_low(PIN_A0); //RELAIS1 off
  output_low(PIN_A1); //RELAIS2 off
}

Für einen Hinweis wäre ich sehr dankbar!

Grüße, Daniel

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht das

  #use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3,PIN_A4)

weglassen und die Pins erst dann auf Output schalten, nachdem sie
vorher schon auf Low gesetzt wurden?

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen PNP nehmen?

Sind die Ports nach dem Einschalten im Tristate-Modus, würde ein richtig 
dimensionierter Pull Down Widerstand an der Basis helfen.

Oder ein Kondensator an der Basis, der das Einschalten solange 
verzögert, bis die Initialisierung durchlaufen ist. Natürlich würde er 
auch dann das Schalten der Relais verzögern.

MW

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.