-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: PIC Ports

  1. #1

    PIC Ports

    Anzeige

    hi leute.wir beschäftigen uns demnächst in der Schule mit dem PIC 16F84A.Dazu sollen wir auch ein kleines Projekt machen.
    Ich hab schon mal ein bissien reingeschaut und hatte vor jetzt nach den ersten lauflichtern,Blinklichtern und Zählern zur ersten Übung einen Würfel (bzw. ein kleines Spiel) zu machen.
    Der Würfel sollte aus 7 LED's bestehen.
    Dazu einige Fragen:
    Braucht jede LED einen eigene Leitung an Port B,oder kann man diese auch zusammenschalten?Wenn ja wie?

    Und zum Quellcode:
    Kann man Zufallszahlen mit Assembler programmieren?

    Danke jetzt schon für eure Hilfe.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hi

    Am einfachsten wäre es natürlich, wenn du je led an einen pin hängst.
    wenn du *unbedingt* pins sparen willst, kannst du sie z.B. als matrix schalten ( www.sprut.de ).
    Andere Möglichkeiten (mit ICs):
    - Multiplexer CMOS 4051 (braucht im endeffekt nur noch 4 pins),
    - I2C-Erweiterungsbaustein (braucht nur noch 2 pins)
    - D-Latch o.ä.
    >> kurz gesagt gibt es tausende möglichkeiten.
    Allerdings ist das wahrscheinlich nicht notwendig, is nur unnützer aufwand (+programmieraufwand).
    bleib lieber dabei:
    1led=1pin
    [der pic 16f84 hat ja 13 i/o s!
    minus 7 leds= 6 freie pins
    -> noch 1 taster -> 5freie pins ?? warum also pins sparen???]

    Zum Quellcode:
    Richtige "Zufallszahlen" kann der PIC nicht erzeugen. Tipp: PIC ganz schnell (einige kHZ oder Mhz) von 1 bis 6 hochzählen lassen, wenn der Taster gedrückt wird. Wird der Taster losgelassen, wird der aktuelle Zählerstand an die LEDs ausgegeben. Für den User erscheint es, als ob es wirklich Zufall wäre.

    Viel Erfolg
    Mfg
    BMS

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    987
    jo oder man nimt nen pic der einen internen takt hat der ist unprizise genug dafür oder nen externen rc

  4. #4
    danke schon mal!
    das mit den Pins sparen war nur so ne idee,weil ich das ganze später evtl. noch ausbauen will und dazu auch noch den ein oder naderen pin benötige,aber ich denke ich mach es erst mal so dass ich jede LED an einen Pin hänge.
    aber irgendwie wollte ich den würfel noch interessanter machen(z.Bsp. dass er langsam ausläuft oder ähnliches)da wäre ich für ideen und anregungen auch dankbar

    @theborg:was meinst du mit "externer rc"?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    17.09.2006
    Ort
    Essen
    Alter
    56
    Beiträge
    83
    Für Zufallszahlen schau dir mal diese Seite an:http://www.piclist.com/techref/micro...y=random&from=

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.09.2006
    Ort
    Hamburg
    Alter
    35
    Beiträge
    987
    Zitat Zitat von ratze
    danke schon mal!
    @theborg:was meinst du mit "externer rc"?
    des ist um das Taktsignal mit nen widerstand und einen Kondensator zu erzeugen schau mal auf http://www.sprut.de/electronic/pic/osc/index.htm damit soltest genug taktabweichung bekommen um ne art Zufallszahlen zu generieren den kanste auch zusätzlich zum quatz oder internen takt betreiben nur für die Zufallszahlen hat ja nach Bauteile um die 25% abweichung.

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hi

    hab nochmal drüber nachgedacht
    Du kannst doch Pins sparen, mit sehr wenig Aufwand.
    Man kann nämlich die LEDs zusammenschalten, die gleichzeitig leuchten.
    Die LED in der Mitte bleibt allein.
    Die LED links unten kann man mit der rechts oberen zusammenschalten (In Reihe / Parallel, Widerstand anpassen)
    Die LED links oben kann man mit der LED rechts unten zusammenschalten und die mittleren (rechts+links) auch.

    A......C
    B..D..B
    C......A

    Darstellungen:
    Zahl --- folgende LEDs einschalten
    1 --- D
    2 --- C
    3 --- D,C
    4 --- A,C
    5 --- A,C,D
    6 --- A,B,C

    Damit reduzierst du die benötigten Pins auf 4, ohne viel Aufwand. Die Programmierung wird dadurch auch einfacher.

    MfG
    BMS

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    11.03.2006
    Ort
    Heitersheim
    Alter
    32
    Beiträge
    6
    hast du schon eine lösung gefunden?
    wenn ja wie?
    ich habe als schulprojekt in etwa das gleiche bekommen!
    ich soll einen elektronischen würfel abeuen aber anstatt mit einem 16F84A
    soll ich das ganze mit einem 12F629 bauen!
    das ziel des ganzen soll sein die ganze schaltung soll kelien als möglich aufzubauen!
    es soll auch mit einer batterie betrieben werden können, dh. es sollte möglichst stromsparend sein!
    eine weiterer toller effekt wäre wenn ich keine on/off schalter hätte sondern eine sleep funktion. leider weiß ich nicht wie ich die erstelle bzw wie diese funktioniert.
    also nochmal zusammen gefasst!

    -ich möchte einen Elektronischen würfel bauen
    -mit einem PIC12F629
    -platz sparen
    -batterie betrieb
    -sleep funktion


    ich freue mich über jede hilfe!

    ERS85

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Alter
    53
    Beiträge
    114
    Also erst mal würde ich die Idee von BMS übernehmen. Du kannst also mit 4 Pins die LEDs ansprechen. Diese Pins werden als Output konfiguriert. Die Pins können direkt LEDs treiben, du brauchst also keine Treiberbausteine, nur für jeden Pin einen entsprechend berechneten Vorwiderstand.

    Die Sleep-Funktion ist recht einfach zu machen. Ein Pin (z.B. GP0) wird als Input konfiguriert. Außerdem wird der interne Pullup-Widerstand für diesen Pin aktiviert und die Interrupt-On-Change-Funktion wird eingeschaltet. Das bedeutet, der Pin ist ohne weitere Beschaltung auf High-Pegel. Nun schließt du an diesen Pin einen Schalter an, der ihn nach GND zieht, wenn er gedrückt wird. Wenn der PIC im Sleep-Modus war (durch den Befehl SLEEP ausgelöst), wacht er auf und macht im Programm weiter. Der Sleep-Modus ist extrem stromsparend, also selbst mit einer kleinen 3 Volt Batterie läuft das Ding ewig.

    Um alles klein zu machen, ist wohl SMD am besten. Ich denke mit ein bißchen Geschick ist alles in einem Würfel von der Größe 5x5x5 cm unterzubringen.

    Wenn weitere Unklarheiten sind, einfach fragen.

    Gruß
    Phaidros

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hi

    Wenn du Low-Current-LEDs verwendest, dann hält die Batterie (theoretisch) 10x länger. Als Stromversorgung könnten vielleicht 1-2 Knopfzellen dienen, die sind ja auch recht winzig und leicht. Übrigens gibts dazu Halterungen bei reichelt.
    Mit der SMD-Technik wirds ziemlich schwierig. Ich würde höchstens die Widerstände (Mini-Melfs lassen sich noch recht gut löten) in SMD-Technik verwenden. Den PIC in SMD einzulöten erfordert viel Fingerspitzengefühl. Lieber den PIC im DIL-Gehäuse verwenden und evtl. noch einen Sockel.

    Braucht der Würfel überhaupt ein Gehäuse?

    Mfg
    BMS

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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