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


von Daniel A. (amd)


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

von yalu (Gast)


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?

von Michael Wilhelm (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.