2016-04-06 15 views
0

Mit MSP430F66736A, Embedded-Programmierung, Code Composer 6.1.0So steuern Relais über MSP430

In meiner app muss ich ein Relais steuern, die auf zwei Stifte (P5.0- STATE1 und P5.1- STATE2). P4.6 ist LED.

Es soll wie das funktioniert:

Led OFF für bestimmte Zeit (zB 2 sec), Relais t STATE1 erhalten soll, nach bestimmten Zeit (3 sec zum Beispiel) LED leuchtet auf und Relais sollte wechseln zu STATE2

Was ist falsch an diesem Code? LED blinkt, wie ich will, aber Relais funktioniert nicht (kann nicht jede Ticken hören)

Dies ist keine vollständige Code, nur bestimmte Zeilen mit konfigurierend P5 (Relais)

LOOP(doesnt matter) 
if (P4OUT == 0x00) 
     { 
      cyklus = cyklus + t1; 
      P5DIR |= BIT1; 
      P5OUT |= BIT1; 
      P4OUT ^= BIT6; 
      TA1CCR0 += (sekunda*t1); 

     } 
     //opakovaci cas odpojenia 
     else 
     { 
      cyklus = cyklus + t2; 
      P5DIR |= BIT0; 
      P5OUT |= BIT0; 
      P4OUT = 0x00; 
      TA1CCR0 += (sekunda*t2); 
+1

Warum haben Sie zwei Pins für das Relais? Ist es ein Doppelwurf? – HeadCode

+1

Zeigen Sie das Schaltbild der Schaltung. –

+0

Ich stimme, diese Frage als off-topic zu schließen, da es keine Beweise dafür gibt ** nicht ** ein Hardware-Problem, noch sind genug Informationen über die Hardware gegeben. – Olaf

Antwort

0

Das Problem scheint zu mit der Schnittstelle des Relais sein. Haben Sie das Datenblatt des von Ihnen verwendeten Relais überprüft? Relais sind stromgesteuerte Schalter, und der MSP430-Controller kann möglicherweise nicht genügend Ansteuerstrom für das Relais bereitstellen, wodurch das Relais nicht aktiviert wird (tickendes Geräusch, das Sie hören), obwohl es die LED blinkt. Möglicherweise müssen Sie zu diesem Zweck einen Schalter wie BJT oder MOSFET zusammen mit einer höheren Spannung hinzufügen.