mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik µC funktioniert nur in Testschaltung


Autor: Rat Loser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bastle gerade an einem Blinkgeber für einen Modell-Leuchtturm und 
verzweifle so langsam an einem sicher trivialen Fehler.

Die Schaltung ist im Anhang. Hier soll nun ein hochohmiges Relais 
(maluska M4S) durch einen Optokoppler (HCNW139) und dieser wiederum 
durch einen µC (16F505) geschaltet werden. An dem Microcontroller liegen 
dank Vorwiderstand im Mittel 4 Volt an, sollte also die Funktionalität 
gewehrleisten denke ich, oder? Die obere Bahn auf dem Schaltplan ist ein 
totes Ende, das soll später noch mit einer Erweiterung bedacht werden. 
Das Relais schaltet dann 12 Volt auf den Schaltungsausgang durch.

Nun zu meinem Problem:
Das Programm des Mikrocontollers funktioniert einwandfrei, ich konnte es 
auf einem selbstgebauten Testboard testen, es sollen an den beiden 
verwendeten Pins (RC4 und RC5) jeweils ein getaktetes Signal (6 Sekunden 
high, 1 Sekunde low) durchgeschaltet werden. Wie gesagt, auf dem 
Testboard funzt alles, nur stecke ich den µC in diese Schaltung, 
passiert nichts mehr. Spannung liegt an, aber am Ausgang zum 
Optokopplers (RC5) sind es nur noch etwa 12mV und zum eingezeichneten 
LED (RC4) nur etwa 2,2mV. Alle anderen sind auch auf low. Wenn mir 
jemand weiterhelfen könnte wäre ich wirklich dankbar...

Der Programmcode sieht folgendermaßen aus:
#define OPTOK RC4
#define CONTR RC5
#define OUTPUT RC2
#define IRINPUT RB1

void delay(int secs);

void delay(int secs)
{
  unsigned int cnt1 = 0;
  unsigned int cnt2 = 0;
  unsigned int cnt3 = 0;

  int tmp = 1;    
  do
  {
    for(cnt1 = 0; cnt1 <= 230; cnt1++)
    {
      for(cnt2 = 0; cnt2 <= 100; cnt2++)
      {
        for(cnt3 =0; cnt3 <= 2; cnt3++)
        {
          tmp = tmp << 1;
        }
      }
    }
  }while(--secs > 0);  
}

void main(void)
{

  TRISB = 0b.0011.1111;
  TRISC = 0b.0000.1111;

  PORTB = 0b.0000.0000;
  PORTC = 0b.0000.0000;

  while(1 == 1)
  {
    OPTOK = 1;
    CONTR = 1;
    delay(6);

    OPTOK = 0;
    CONTR = 0;
    delay(1);
  }

}

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>An dem Microcontroller liegen
>dank Vorwiderstand im Mittel 4 Volt an, sollte also die Funktionalität
>gewehrleisten denke ich, oder?

Der erste April ist schon ein bißchen her und
keine Schaltung zu sehen.

Autor: Rat Loser (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ups, dann kommt sie hoffentlich jetzt nach^^

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist keine Schaltung sondern ein Witz.
Der PIC möchte natürlich einen 5V Spannungsregler
wenn die Schaltung mit 12V versorgt wird.

Autor: Rat Loser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum ein Witz? OK, ich habe keinen Spannungsregler eingebaut, aber der 
PIC arbeitet in einem Spannungsbereich von 2 bis 5,5 Volt. Er sollte 
doch zumindest schalten, es liegen ja 4 Volt an, das ist nicht zu wenig. 
Ich habe auch auf dem Testboard auch keine glatten 5 Volt, trotzdem geht 
es dort. So stark sollte ja die Spannung nicht zusammenbrechen bei den 
10mA die der Optokoppler und die LED zusammen verbrauchen. Wie gesagt, 
der Toleranzbereich ist doch groß genug, dass er erstmal schalten 
sollte, oder? Das tut er schon gar nicht.
Ich bin absolut unerfahren mit Mikrocontrollern und wirklich für jeden 
Hilfe dankbar.

Autor: Bernd Rüter (Firma: Promaxx.net) (bigwumpus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entweder Du baust einfach die Testschaltung als fertige Steuerung ein, 
oder Du "überdenkst" die Schaltung etwas.

Weg mit dem sinnlosen Optokoppler, ersetz ihn durch einem BC547.
Rein mit einem einfachen 5V-Stabi und einem 100nF-Kondensator nah am uC.
Weg mit den "Vorwiderständen" zu Spannungseinstellung. Das ist der 
Ober-Witz! Da möchte ich mal die Versorgungsspannung am uC auf einem 
Oszi sehen. Muß ja ein wildes Gehacke sein.
Freilaufdiode an das Relais ! An jede geschaltete Spule !!! Steht in 
jedem Grundlagenartikel (auch hier)...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich bin absolut unerfahren mit Mikrocontrollern und wirklich für jeden
>Hilfe dankbar.

Nicht nur mit Mikrokontrollern. Du kennst noch nicht mal
das ohmsche Gesetz. Dir kann hier keiner helfen. Es ist
einfach zu wenig Verständnis da.

Autor: Thomas Weyhrauch (thomas100)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow.
Vielleicht solltest du dir erst mal die Grundkenntnisse der 
Elektrotechnik ein bissl anlesen und verstehen.
Das Ohmsche Gesetzt wäre hier sehr hilfreich.
Dein Strom für den Optokoppler kommt doch aus dem µC. Also muss er da 
doch auch rein. Also fließt er über den 22k+33k-Widerstand -> Die 
Spannung am µC = 0V! Der Prozessor schaltet sich selbst ab!

Außerdem ist dein Optokoppler an der Stelle unnötig. Den brauchst du 
nur, wenn du zwei getrennte Potentiale hast. Also einfach nen Transitor 
rein und die Lampe direkt mit dem T geschaltet. Fertig.
Dann sparst du dir auch das Relais (bei dem übrigens die Freilaufdiode 
fehlt!)

Viel Glück
Thomas

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sind die Fuse gesetzt.
Bezeichnung der Pins fehlen.
MCLR sollte auf plus sein, sonst
läuft gar nichts. Es sei denn
es ist im Programm definiert.
Alles recht dürftig. Aber schau mal
auf www.sprut.de da gibt es gute Tips, für Schaltungen.

Autor: Ratlo Ser (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also erstmal vielen Dank für die Antworten. Dass der Spannungsteiler 
ziemlicher Blödsinn war seh ich natürlich ein, ich hab das ziemlich 
Pi-mal-Daumen gesehen, und die Schutzdiode werde ich in die "neue" 
Schalung auch einbauen. Kann diese Spannungsschwankung (Die eigentlich 
doch noch nicht existent ist, wenn in dieser Schaltung ja nichts 
passiert) der Grund für das ausbleibende Schalten des µCs sein oder kann 
es noch an was anderem liegen? Warum funktioniert es dann aber bei der 
Testschaltung die ich mit ähnlicher Blauäugigkeit aufgebaut habe?... 
(Schaltung im Anhang), diese ist mehr provisorischer Natur, aber es 
funktioniert hier.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh je - weil Du die Spannung richtig eingestellt hast, nehme ich an.
Diese ist aber von der Belastung des Spannungsteilers (hire Poti) 
abhängig.

Otto

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum funktioniert es dann aber bei der
>Testschaltung die ich mit ähnlicher Blauäugigkeit aufgebaut habe?

Die ist genauso grottiger Scheiss.
Ich könnte glatt kotzen wenn ich das sehe.

Nimm gottverdammt noch mal einen 5V Spannungsregler
oder versinke in dem Mist den du da zusammenbastelst.

Autor: Ratlo Ser (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Fuses sind über MPLAB gesetzt, für WakeUpOnPinChange=0, WDT=0, 
Internal Clock.

Die Zeichnung scheint für allerhand Verwirrung gesorgt zu haben, dafür 
muss ich mich entschuldigen. Ich verstehe schon, dass der Strom durch 
die 33k und 22k Widerstände muss und dass dadurch auch die Spannung an 
µC abfällt, aber das ganze habe ich nicht als so gravierend angesehen, 
da es sich um relativ kleine Ströme handelt. Ich werde die Schaltung 
nochmal aufbauen, mit geeigneten Bauteilen wie einem Spannungsregler und 
einer Schutzdiode. Danke an alle, die mich noch nicht aufgegeben haben, 
die Schaltung habe ich überarbeitet und im Anhang.

(Ich möchte kurz bemerken, ich mache das hobbymäßig und habe sonst eher 
mit gröberen Strömen aus der Antriebstechnik zu tun. Diese 
Feinelektronik habe daher vielleicht etwas zu lax genommen. Bei meinem 
nächsten Einkaufsbummel werde ich mich mit dem benötigten Material 
ausstatten.)

Auf jeden Fall danke für die Tips.

Kann es vielleicht an fehlenden Potentialen an den Ausgängen liegen? 
Oder benötigt es spezielle Configuration der Fuses?

Autor: Ratlo Ser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@holger:

Ich verstehe gar nicht, dass dich das emotional so mit nimmt. 
Entschuldige mal bitte, aber ausfallend muss man nun wirklich nicht 
werden finde ich. Danke trotzdem für deine Zeit die du in deine 
Antworten gesteckt hast. Wie gesagt, als absoluter Anfänger, wenn man 
sich auch noch nicht derart belesen hat, wie du es vielleicht getan hast 
um so herablassend zu reden (ich bezweifle dass es notwendiger Weise so 
kommen muss) ist man dankbar für einen guten Ratschlag und nicht für 
dein Gemecker.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann es vielleicht an fehlenden Potentialen an den Ausgängen liegen?
>Oder benötigt es spezielle Configuration der Fuses?

Sag mal hast du noch alle Tassen im Schrank?

ES BENÖTIGT EINE ANSTÄNDIGE STROMVERSORGUNG.

Mehr ist dazu nicht zu sagen.

Autor: Thomas Weyhrauch (thomas100)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwirrung ist vielleicht nicht unbedingt das richtige Wort.

Also wenn du mit der Antriebstechnik zu tun hast, solltest du das 
ohmsche Gesetz auswendig können. Und bei kleinen Strömen und großen 
Widerständen kommt nun mal ne große Spannung raus.

Ähm, was hast du denn überarbeitet? Es fehlen doch nur die beiden eh 
nicht genutzten Bauteile, oder seh ich das falsch?

Mach mal den 2.2k noch etwas kleiner. Es könnte sein, dass der OC nicht 
voll durchgeschaltet wird und dadurch das Relais nicht anziehen kann.
Aber bitte erst, wenn die Freilaufdiode drin ist. Sonst schaltet der OC 
wahrscheinlich nur ein einziges mal.

Und mach deine Spannungsversorgung richtig!

Gruß
Thomas

Autor: Ratlo Ser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^^ ok, danke holger. Das werde ich ja beim nächsten mal so umsetzen. 
Sofort geht das leider nicht. Ich habe leider keinen Spannungsregler da. 
Das wird sich ändern. Ich wollte auf eine etwaige alternative 
Fehlerquelle hinaus, aber wenn es die nicht gibt, bin ich ja beruhigt, 
dass ich bis auf den Spannungsregler und die Schutzdiode nichts falsch 
gemacht habe.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ist man dankbar für einen guten Ratschlag und nicht für
>dein Gemecker.

Ich hab dir gesagt du sollst einen Spannungsregler
nehmen. KEIN POTI. Und das war ein guter Ratschlag.
Der beste den du je bekommen hast. Auch wenn du ihn nicht
verstehst/verstehen willst. Also machs gut. Oder machs besser.
Wie es dir gefällt. Nur stell bitte keine Fragen mehr zu
Schaltungen die du aus Potis versorgst.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ratlo Ser   (oder: Planlo Ser)

Holger hat recht, auch wenn er es etwas drastisch formuliert!

Wenn du nicht "Beratungsresistent" bist machst du dich erstmal
mit den Grundlagen vertraut.

z.B. hier im Forum der

http://www.elektroniktutor.de/menue.html
http://www.elektronik-kompendium.de/
http://www.b-kainka.de/bastel0.htm

Wenn dann Fragen auftauchen wieder Fragen, aber BITTE erst dann!

gruß hans

Autor: Ratlo Ser (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@thomas:
Es fehlten auch die Pinbezeichnungen, die sind jetzt leider auch erst 
drin.
Aber die Grundproblematik ist ja, dass an den im Programm zugewiesenen 
Pins (RC4, RC5 -> siehe Anhang) kein Durchschaltvorgang zu erkennen ist. 
Sollte (bei allen Widrigkeiten die ich hier eingebaut habe) nicht 
dennoch ein ansteigen der Spannung am Pin erkennbar sein? Das finde ich 
so eigenartig und das lässt mich glauben, dass (die fehlerhafte 
Stromversorgung jetzt mal hingenommen) noch etwas faul sein muss.

Könnte es vielleicht sein, dass der Schaltvorgang zum Optokoppler die 
Spannung am PIC so weit absinken lässt, dass der PIC abschaltet? Dann 
würde es prinzipiell funktionieren und es liegt <nur> am, wie Holger 
schon so nachdrücklich immer wieder sagt, 5V-Spannungsregler!?

Also ich werde mich nochmal mit dem Thema befassen, das nochmal komplett 
neu entwerfen und nicht beratungsresistent sein.
Vielen dank an alle.

Autor: Felix Nachname (time2ride)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Könnte es vielleicht sein, dass der Schaltvorgang zum Optokoppler die
>Spannung am PIC so weit absinken lässt, dass der PIC abschaltet? Dann
>würde es prinzipiell funktionieren und es liegt <nur> am, wie Holger
>schon so nachdrücklich immer wieder sagt, 5V-Spannungsregler!?

Wenn dir U=R*I bekannt ist und du weist, dass dieses kleine "k" hinter 
den Werten für deine Widerstände für 1000 steht, kannst du dir das ja 
ausrechnen.
Zur Frage: JA!

Autor: Gast4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch im letzten Schaltplan ist kein Spannungsregler da, also braucht man 
ueber weitere Dinge nicht nachdenken.(Punkt!)

Gast4

Autor: ozo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
köstlich Hat mir den Abend versüsst...

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.