- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: Port Pins als Ein- und Ausgänge

  1. #11
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi michas_rob!

    Den PIC 16F876 kann man sehr gut in C programieren.
    Ich hatte das schon letztes Jahr in der Uni gemacht und es geht eigendlich gut.
    Ich wollte jetzt halt nur noch mal von null anfangen da uns viele Sachen nicht erklärt wurden.
    Mann könnte eigendlich sagen, dass obwohl ich schon 2 Roboter mit diesem Pic in C gemacht habe ich noch immer am lernen bin.
    Zum Glück kann man mit diesem PIC und C schnell Erfolge feiern

    Du solltest es ruhig versuchen. Wenn es mal nicht funktionierte, war es eher weil ich einen blöden Fehler gemacht hatte.
    Viele Grüsse,
    Tornado

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    @Phaidros
    Wie kann ich in C die internen Pull-up Wiederstände aktivieren?
    Ich habe jetzt 4,7k pull up wiederstände an RB1 bis RB4 gemacht und RB5-RB7 sind mit dem PIC über jeweilst einen 200 Ohm Wiederstand verbunden. Diese Wiederstände sollten den PIC vor Kurzschlüsse schützen, sollten aber noch klein genug sein um die Pins RB1 bis RB4 auf Low ziehen zu können.
    Warscheinlich habe ich die Werte der Wiederstände nicht gut gewählt.

    Die erste sache ist, dass um RB1 bis RB4 auf High zu haben ich folgendes schreiben musste:
    00001110 Ja, RB4 muss 0 sein. keine Ahnung warum. Wenn er 1 ist, dann ist er Low.
    Naja, mit 00001110 sind RB! bis RB4 auf High.

    NÄchste Sache:
    Ich kann RB4 mit den Pins RB5-Rb7 (wo die 200Ohm Wiederstände sind) ohne Probleme anschliessen und RB4 wird auf Low gezogen.

    Mit RB1 bis RB3 geht das aber nicht. Um die auf Low zu ziehen muss ich die 200Ohm Wiederstände überbrücken, alls wenn keine da wären.

    Das wÄre ja alles kein Problem, aber wenn ich jetzt eine Tastatur anschliesse und mehrere Tasten auf einmal drücke, kann der PIC kaputt gehen. Ich wollte ausserdem noch einen Display an den Port anschliessen.

    Auf Spruts seite sollte man für RB5-RB7 2,7K nehmen. Dann funktioniert bei mir aber gar nichts mehr.

    Habt ihr eine Lösung für die Wiederstände oder wie man die internen pull up Wiederstande von RB1 bis RB4 aktiviert?
    Vielen Dank für eure Hilfe.
    Tornado

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    60
    Beiträge
    114
    Die internen Pull-Ups werden durch das Löschen von Bit RBPU im OPTION_REG aktiviert. In C? Keine Ahnung, bei den PICs mache ich nur in Assembler.

    4,7 kOhm ist perfekt (bei 5 Volt).
    200 Ohm sind auch gut, scheinen mir aber nicht unbedingt nötig zu sein.

    Zu dem Rest:
    Bist du sicher, dass du RB1 bis RB4 auf Input gesetzt hast und RB5-RB7 auf Output?

    Hast du einen Schaltplan?

    Gruß
    Phaidros

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    Ich werde mal googeln um das mit Bit RBPU in C zu finden.
    Bis eben war ich mir eigendlich schon sicher, dass die In- und Outputs richtig sind. Funktioniert ja eigendlich, aber halt nicht optimal.
    Schaltplan habe ich nicht. Ich könnte morgen aber einen machen falls das weiter hilft.
    Grüsse,
    Tornado

  5. #15
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    Ich habe hier zwar etwas gefunden, aber leider ist die Lösung nicht erklärt.
    Vieleicht kann jemand ja den code endziffern.
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=4867
    Wo wir da in C der Pull up Wiederstand aktiviert?

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2005
    Ort
    Wallis
    Beiträge
    137
    Hi tornado

    In C kannst du genau gleich auf die Register zugreifen wie in Assembler. Jedes Register hat eine bestimmte Adresse. Du hast sicher ein .h-File welches included wird. In diesem sind die Register definiert. Falls das OPTION_REG nicht aufgeführt ist, kannst du es manuell nachtragen.
    (Adressen siehe Datasheet Seite 104).

    Dann definiert man das Register in etwa so:
    #byte PORTA = 0x0F80 ; Beispiel am PORTA

    (Die Adresse stimmt nicht mit deinem PIC überein)

    Auf das Bit 0 greift man wie folgt zu:
    PORTA.0 = 1 ; PIN_A[0] = 1

  7. #17
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    Die einzige .h-File die ich "included" habe ist die vom PIC.
    Ist das dort wo ich gucken muss?

    Ich habe so das blöde gefühl, dass ich das hier nicht packe. Naja, ich werde mich weiter durchbeissen und weiter probieren.
    FAlls noch jemand eine gute Idee hat für die Tastatur lasst es mich bitte wissen.

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    40
    Beiträge
    398
    Mir ist da noch etwas eingefallen.

    Wenn ein Pin als Ausgang auf High steht, kommen 5V raus. Das stimmt bei mir so weit. Um eine LED anzuschliessen braucht man einen Vorwiederstand, damit die LED nicht kaputt geht.
    Bei mir ist das nicht nötig. Die brennt ganz normal wenn ich sie an den Pic anschliesse.
    Wenn ich dann die Spannung an den beiden Beinchen der Diode messe, kann man nur noch 2V messen.

    Kann es sein, dass der Trafo einfach nicht genug Saft liefert?
    Wäre das dann auch ein Grund weswegen das mit den pull up Wiederständen nicht richtig geht?

    Ich habe noch mal nachgeguckt.
    Um zu sagen ob ein pin Ein- oder Ausgang ist, habe ich folgendes stehen: 00011111 RB0 ist egal. Danach sind RB1 bis RB4 auf Eingang und RB5 - RB7 als Ausgang.

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    60
    Beiträge
    114
    Wie bitte?
    Du schließt eine LED ohne Vorwiderstand an den PIC an?
    Das ist das zweitbeste Rezept, um ihn kaputt zu kriegen. (Fass ihn doch mal im laufenden Betrieb an. Wird er schön warm? Dann am besten gleich wegschmeissen.)

    Jeder Ausgang kann ungefähr 20 mA liefern, also ungefähr soviel wie eine Standard-Diode braucht. ABER: Der Strom wird ohne Vorwiderstand nicht begrenzt. Wie der PIC auf so etwas reagiert, ist völlig undefiniert.
    Dass du an den Beinchen der Diode eine Spannung von 2 V misst, ist völlig normal, weil das genau die Spannung ist, die über der Diode abfällt. (Die Diode "verbrät" quasi immer 2 V Spannung, wenn sie leuchtet. Die genaue Spannung ist je nach Typ und Farbe verschieden.)

    Poste doch bitte einen Schaltplan, so wie du es jetzt aufgebaut hast und das komplette Programm. Dein Problem ist eigentlich eine Standardanwendung und sollte nicht schwer zu lösen sein.

    Ich kann auch nur empfehlen, das entsprechende "Data Sheet" des PIC wirklich (und am besten von vorne nach hinten) durchzulesen. Ja, ich weiß, es ist mühselig. Man muss (und kann) auch beim ersten Lesen längst nicht alles davon verstehen. Aber das ist die beste Chance, sich mit PICs vertraut zu machen. "Trial and Error" funktioniert bei den Teilen eher schlecht.

    Gruß
    Phaidros

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    75
    Beiträge
    2.063
    Zitat Zitat von phaidros
    Jeder Ausgang kann ungefähr 20 mA liefern, ....
    Das ist so nicht richtig.
    30 Ausgänge wie z.B. beim PIC16F877 mal 20mA wären 600mA !!!
    Richtig ist aber:
    Absolute Maximum Ratings †
    Code:
    Total power dissipation (Note 1) ............................1.0W
    Maximum current out of VSS pin ..............................300 mA
    Maximum current into VDD pin ................................250 mA
    Input clamp current, IIK (VI < 0 or VI > VDD).............. ± 20 mA
    Output clamp current, IOK (VO < 0 or VO > VDD) ............ ± 20 mA
    Maximum output current sunk by any I/O pin....................25 mA
    Maximum output current sourced by any I/O pin ................25 mA
    Maximum current sunk by PORTA, PORTB and PORTE (combined) ...200 mA
    Maximum current sourced by PORTA, PORTB and PORTE (combined) 200 mA
    Maximum current sunk by PORTC and PORTD (combined)  .........200 mA
    Maximum current sourced by PORTC and PORTD (combined) .......200 mA
    Das sind Angaben, ab denen der PIC gerade noch nicht zerstört wird.
    Kein Lebensmüder, der 70kg wiegt, wird sich an einem Seil aufhängen, das bei 70kg reißt.
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen