- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 23

Thema: Arduino Leonardo/Micro Frage

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Zitat Zitat von Andi#87 Beitrag anzeigen
    Ich verstehe nicht, wie das funktionieren soll. Ein Portexpander-IC macht letztlich nichts weiter, als eine typische Binär-Matrix zu erstellen bzw. abzufragen. Also, z.B.: 0-0-0, 0-0-1, 0-1-0, 0-1-1, 1-0-0-, 1-0-1 usw. Wenn ich nun 2 Tasten gleichzeitig drücke, entsteht doch dort ein völlig anderes "Gebilde". Oder hab ich hier einen Denkfehler?

    Andi
    hängt sicher vom Portexpander ab, aber (IIRC) z.B. beim PCF8574 kannst du alle Werte als Byte-Mask für pins 0-7 gemeinsam abrufen. Sind z.B. Pins 0, 3 und 4 gedrückt und der Rest nicht, ist das Bitmuster 00011001.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    Aha. Ok, vielen Dank.
    In welchem Zeitintervall werden dann diese DigitalPIN vom Prozessor abgefragt? Ist das im unteren Millisekundenbereich?

    Andi

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Nö- von alleine fragt der gar nix ab.
    Entweder du benutzt Interrupts (dann merkt er automatisch, wenn du was drückst oder loslässt) oder aber du sagst ihm, wie oft er die Eingänge abfragen soll.
    Da ich weder mit Leonardos noch mit Micros arbeite, weiss ich nicht, wie lange das Einlesen dauert, aber da es um digitale Eingänge geht, wirds nicht schlimm sein (analog dauert ein klein bisschen) auf jeden Fall weit schneller als man Tasten drücken könnte- denk dabei auch ans entprellen.
    Bei manuell betätigten Tasten sind Frequenzen im einstelligen Millisekundenbereich völlig illusorisch (so schnell _kann_ man sie nicht drücken), wenn du die also alle 2/100s einliest (und das geht, wenn man nich im Hautprogramm rumtüdelt), wird das vollkommen reichen.
    Wie gesagt: entprellt werden muss sowieso, egal wie man das anstellt: es wird länger dauern als das Einlesen selber.

    Falls du es wirklich genau wissen musst: Dokus lesen. Irgendwo auf den Arduino-Seiten (den richtigen, nich abgeschriebener Kram) steht, wie man die Zeit, die die loop() für einen Durchlauf braucht, messen kann.
    So kannst du leicht ermitteln, wie schnell alles läuft.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  4. #4
    HaWe
    Gast
    einfach ausgedrückt, kannst du die PCF8674-Pin-Zustände genau so abfragen wie Pinzustände an den GPIO-Pins, nämlich in immer wiederkehrenden Schleifen oder per Timer- oder per Pinchange-Interrupts.
    Da der PCF8674 aber über I2C gesteuert wird, können höchstens alle (ca) 5ms die Werte aktualisiert werden, während sich GPIOs im 10-Nanosenkundenbereich abfragen lassen.
    Hinzu kommt, dass in Interruptroutinen die i2c-Abfrage blockieren kann und die dann u.U. nicht immer ganz "rund" läuft.
    Weiterer Nachteil von PCF8574 u.ä. ist, dass sie sich nicht immer auch für pwm verwenden lassen, da sie zu langsam reagieren.
    Kommt es dir also auf viele Pins auch für zeitkritische Anwendungen an, helfen IMO nur andere MCUs mit von sich aus vielen GPIO-Header-Pins, wie Arduino Mega2560 oder Due.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    Danke für Eure Antworten. Soooo zeitkritisch ist es nicht. Ich möchte das - einfach ausgedrückt - in eine Art Gegensprechanlage integrieren. RUF-Taste drücken und sprechen. Da sind Millisekunden mehr als ausreichend. Ich hatte Bedenken, dass das möglicherweise im Sekundentakt abgefragt wird.

    Interrupts klingen eigentlich für diese Anwendung recht interessant. Aber hier heißt es wohl auch: aufpassen. Aus dem Bauch heraus: würdet Ihr das, was ich plane, per Interrupts realisieren, oder per Loop-Schleife?

    Andi

  6. #6
    HaWe
    Gast
    Zitat Zitat von Andi#87 Beitrag anzeigen
    Danke für Eure Antworten. Soooo zeitkritisch ist es nicht. Ich möchte das - einfach ausgedrückt - in eine Art Gegensprechanlage integrieren. RUF-Taste drücken und sprechen. Da sind Millisekunden mehr als ausreichend. Ich hatte Bedenken, dass das möglicherweise im Sekundentakt abgefragt wird.

    Interrupts klingen eigentlich für diese Anwendung recht interessant. Aber hier heißt es wohl auch: aufpassen. Aus dem Bauch heraus: würdet Ihr das, was ich plane, per Interrupts realisieren, oder per Loop-Schleife?

    Andi
    da ich dein Programm und deine Hardware nicht kenne, würde ich es ausprobieren

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    Es gibt noch kein Programm. Mit Portexpander hab ich noch nicht gearbeitet.
    Als Board dachte ich an einen UNO.

    Andi

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 29.08.2015, 07:34
  2. Mikrocontroller Beetle / Arduino Leonardo wird nicht erkannt
    Von recke im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 12.01.2015, 09:13
  3. Bitte um Unterstützung bei MC33926 Dual Motor Controller an Arduino Micro
    Von pemiso im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 6
    Letzter Beitrag: 28.10.2014, 13:35
  4. Arduino IDE = C ? => Frage zu Pin0 und Pin1 MEGA32U4 / Leonardo
    Von PsiQ im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 12.07.2013, 11:51
  5. Antworten: 0
    Letzter Beitrag: 29.01.2013, 19:33

Berechtigungen

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

Labornetzteil AliExpress