-         
Ergebnis 1 bis 10 von 10

Thema: Frage zu Arduino-UNO Digital-I/O PIN 0 und 1

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    145

    Frage zu Arduino-UNO Digital-I/O PIN 0 und 1

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    beim UNO sind PIN 0 und 1 jeweils mit doppelter Funktion belegt: sowohl Digital-I/O als auch RX und TX. Muss in einem Sketch ein spezieller Befehl eingetragen werden, wenn ich diese beiden PIN als Digital-I/O benutzen möchte (weil ich insgesamt alle 14 Digital-I/O benötige und nicht erst beim Arduino-UNO-PIN2 einsetzen kann)? Ich finde nur immer den Hinweis, dass Pin 0 und 1 möglichst nicht als I/O verwendet werden sollen, wegen RX bzw. TX. Das ist ein wenig irritierend.


    Andi

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    74
    Beiträge
    2.146
    ich meine mich erinnern zu können, dass wenn pin 0 und 1 als digitale pins verwendet werden das flashen nicht mehr möglich ist. Sicher bin ich aber nicht. ausprobieren...
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Können die Analogen nicht auch Digital-Pins sein?

    Noch ein wenig mehr dazu: https://www.arduino.cc/reference/de/...cation/serial/

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    145
    Ja, können Sie. Ist für die Könner unter den Usern. Ich fange fast jedesmal wieder von vorn an, wenn ich etwas am Arduino machen möchte. Naja, nicht ganz von vorn, aber ich bin immer froh, wenn ich es "einfach" hinbekomme.


    Andi

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Zurzeit mache ich nichts mit dem Arduino. Aber wenn ich mich recht erinnere, muss man die sonst analogen Pins nur im Programm ändern. "pinMode(A0, INPUT);" zum Beispiel. RX/TX würde ich lassen. Einen Kommunikationskanal zu haben, ist immer gut, und sei es nur zur Überprüfung des Programmablaufs im seriellen Monitor der IDE. So weit ich gezählt habe, komme ich - ohne Gewähr - auf 16 digitale Pins, ohne RX/TX.

    Gruß
    Moppi

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.525
    .. beim UNO sind PIN 0 und 1 .. Digital-I/O als auch RX und TX ..weil ich insgesamt alle 14 Digital-I/O benötige ..
    Haste Dich vielleicht/vermutlich verzählt? Hier (klick mal) , noch genauer hier (klick nochmal) oder "Datasheet" im Link unten - Seite 3, zähle ich ohne RX, TX, ohne Pin2 und ohne /RESET neunzehn ( 1 9 ) digitale IO´s. Ok, wenn Du die analogen Pins *gg* als analoge Pins benötigst oder das I²C-Protokoll fährst oder ähnliche Mehrfachnutzen benötigst, dann bist Du eingeschränkt.

    Schreib doch mal ausführich welche Pinne Du benutzen willst oder musst und wozu. Dann kann man das besser/genauer raten.

    .. wegen RX bzw. TX. Das ist ein wenig irritierend ..
    Wills mal so sagen: WENN ICH das ordentlich programmiere, dann wird RX und TX vor dem ersten Gebrauch entsprechend definiert/deklariert - damit NIX Undefiniertes passieren kann (Anm.: ich kenne kaum eine arduino-library, geschweige denn alle, daher kann ich das nur aus meiner Warte sagen). WENN ich die beiden Pinne "NUR" als digitale I/Os benötige, dann werden die eben nicht für die UART-Routinen deklariert. Nachteilig ist dann, dass der hardwaremäßige UART (siehe Dokumentation des mega328 ".. USART - Universal Synchronous Asynchronous Receiver Transceiver .." oder ".. USART0 .." wieder ´n Klick) nicht be-/genutzt werden kann.

    Nachtrag:
    ".. Ich finde nur immer den Hinweis, dass Pin 0 und 1 möglichst nicht als I/O verwendet werden sollen, .." heißt ja nicht "tu das auf keinen Fall" . . . *gg*
    Geändert von oberallgeier (16.01.2022 um 09:33 Uhr) Grund: besseres Diagramm bei "noch genauer"
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    145
    Danke für Eure bisherigen Antworten. Gezählt habe ich die PIN nicht, ich habe das in den Specs gelesen. Darin steht immer wieder "14 Digital I/O" (@oberallgeier: auch in dem Link von Dir), davon bin ich ausgegangen (ohne Einbeziehung der 6 analogen PIN).
    Da ich den Arduino nicht als fertigen Arduino einsetze, sondern den Atmega 328 mit der notwendigen Beschaltung (Quartz usw.) auf eine eigene Platine integriere, entfällt die mögliche Nutzung von PIN 1 und 2 als RX/TX. Der Atmega macht nur die eine Aufgabe, die er in seinem Programm geladen hat, nämlich per Tasterdruck an den Ausgängen Relais an- bzw. auszuschalten. Insofern benötige ich die Funktion RX/TX nicht, sondern nur Digital-In.
    PIN13 möchte ich umgehen, da dieser auch ein Signal ausgibt, wenn man RESET drückt. Das bedeutet, dass dann das zugehörige Relais entsprechend mehrmals schnell an und aus geht, was für meine Anwendung (Audio-Schaltmatrix) nicht sinnvoll ist. (gäbe es denn eine Möglichkeit, diese voreingestellte Funktion "RESET an PIN13" zu deaktivieren, so dass dort an PIN13 bei RESET kein Signal ausgegeben wird?)

    Anbei der Sketch (Foto, ist noch eine alte 6-Tasten-Version).

    @oberallgeier: wie würdest Du den denn "richtig" programmieren bzw. wie würdest Du RX/TX in diesem Beispiel deaktivieren, so dass "NIX Undefiniertes passieren kann"?

    Andi


    Klicke auf die Grafik für eine größere Ansicht

Name:	Foto.jpg
Hits:	5
Größe:	82,0 KB
ID:	35722

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.525
    .. Da ich .. den Atmega 328 .. auf eine eigene Platine integriere, entfällt die mögliche Nutzung von PIN 1 und 2 als RX/TX ..
    *Grübel* - dann ist das ja ein (?ungeschickter/falscher?) Platinenentwurf ! ? Denn - sobald die Controllerpinne PD0 und PD1 auf Deiner Platine irgendwie zugreifbar sind (und nicht unverbunden "die Beine in die Luft" strecken), könnte man den UART nutzen; das ist dann eben eine Softwarefrage. Hardwaremäßig reicht für bidirektionalen UART RX, GND und TX, nur Senden oder nur Empfangen geht mit GND und einem der beiden xX-Pinne.

    .. wie würdest Du den denn "richtig" programmieren bzw. wie würdest Du RX/TX in diesem Beispiel deaktivieren ..
    Uuups. Will mal so sagen: erstens programmiere ich nicht mit der arduino-IDE sonder mit ATMEL-Studio 4 oder ~7 üblicherweise in C. Sprich : es gibt diese Sprachbarriere, "mein" möglicher Code dürfte Dir nix nützen und ich werde mich nicht tiefer in die arduino-IDE einarbeiten. Zweitens : RX und/oder TX bzw. der HardwareUART muss durch geeignete Software aktiviert werden, die sind nicht "einfach so" funktionabel, müssen also vermutlich nicht erst deaktiviert werden. Wieso "vermutlich" : weil ich nicht weiß welche Bibliotheken Du oder Deine IDE-Einstellung einbindet.

    LRKS (langer Rede kurzer Sinn) : programmieren musst Du selbst.

    PS: ein screendump vom Code ist unschön und schwer leserlich. Der Forumseditor hat die Funktion "#" - die öffnet beim Schreiben ein/das Codefenster . . . Das sieht dann so aus:
    Code:
    // ============================================================================= =
    // ==   Ausgabe Text PWM=on
    // ============================================================================= =
      void itxt_po (void)           // "\r\tPWM ist on durch TC1PWM_on"
     {                              //
       uputs0 ("\r\tPWM ist on durch TC1PWM_on");   //
       itxt_rn();
     }                              //
    // ============================================================================= =
    Geändert von oberallgeier (16.01.2022 um 17:03 Uhr) Grund: Bibliotheken einbinden
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    145
    UART? Für eine an sich simple Aufgabe, per Taster Relais an- und auszuschalten? Der Platinenentwurf, den ich erstellt habe und der bereits hergestellt und im Einsatz ist, ist eigentlich ok Allerdings möchte ich das nochmal überarbeiten, da ich ein paar Kleinigkeiten im Layout übersehen habe, die allerdings "mechanische" Gründe haben, weil da etwas nur sehr eng ins Gehäuse passt. Bei dieser Gelegenheit würde ich eben gern PIN1 (PD1) zusätzlich noch als Digital-I/O verwenden. Um mich an UART usw. ranzuwagen, dazu fehlt mir noch das Wissen und - in diesem aktuellen Fall - denke ich, das ist nicht notwendig.

    Danke aber für Deine Hinweise, zumindest werde ich mal Richtung UART usw. lernen. Möglicherweise wäre diese Anwendung ja doch gar nicht verkehrt, wenn ich es dann mal verstanden habe.

    Danke für die Antworten.

    Andi

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.525
    .. werde ich mal Richtung UART usw. lernen. Möglicherweise wäre diese Anwendung ja doch gar nicht verkehrt ..
    Es wurde oben schon erwähnt dass man mit UART recht ordentlich debuggen kann - sprich: Fehler suchen. Grob skizziert plaziere ich in einem zu untersuchenden Code ein paar Ausgabebefehle, die eine Kennziffer, lieber gleich nen ganzen Satz/Text auf dem Bildschirm ausgeben. Erste SChritte mit UART (RS232 - klicks an) hatte ich schon mit nem Tiny13 gemacht bei/mit nem Experimentierkasten. Später nahm ich dann die sehr universelle Bibliothek von Peter Dannegger zu Hilfe - die erledigt mir seither in allen Projektchen die UART-Aufgaben. (Diese Bibliothek ist sehr gut und einfach zu benutzen - als Vorbild fürs Programmieren aber total ungeeignet. Peter produziert einen irre knappen, dafür sehr funktionellen Code).

    Viel Erfolg mit den Pinnen PD0 und ~1 und mit UART.
    Ciao sagt der JoeamBerg

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 27.02.2014, 03:14
  2. Arduino Digital Pin Ausgangsspannung?
    Von pro-bot128 im Forum Arduino -Plattform
    Antworten: 4
    Letzter Beitrag: 10.06.2011, 20:47
  3. analog digital wandler frage
    Von xbgamer im Forum Elektronik
    Antworten: 12
    Letzter Beitrag: 03.02.2009, 20:04
  4. Frage zu Analog/Digital Speicheroszilloskop
    Von Stefan090 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 16.04.2007, 16:50
  5. Digital Potentiometer Frage
    Von Hei.Mor im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 27.12.2005, 21:17

Berechtigungen

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