Obwohl der Mega verwendet wird, fehlen mir noch ein paar Digitalpins.
Analogpins hingegen brauche ich nicht. Daher die Frage, ob man die
Analogpins als "reine Digitalpins" konfigurieren kann, also als Digital
INPUT?
Als Digital OUTPUT lassen sie sich ja konfigurieren: pinMode(A0,
OUTPUT). Ich nehme an, als Digital INTPUT lassen sie sich nicht
konfigurieren? Ist eigentlich auch unnütz, weil man Analogeingänge "so
wie sie ist" ja sowieso als Digitaleingang verwenden kann.
Was ich nicht weiß ist, sind die "Nebenwirkungen". z.B. was die
Lesegeschwindigkeit des Analogeingangs betrifft. Außerdem vermute ich,
dass Analogeingängen keine Pull-Up-Widerstand geschaltet werden können,
diese also keine "reine Digitalpins" werden können.
Bitte klärt mich mal auf über diese Kleinigkeit. Vielleicht gibts ja
einen Trick, wie ich die Analogpins ändern kann.
Zweite Frage: Wenn ich einen Teil der Analogeingänge verwende, kann ich
die anderen am selben Port "schwebend" lassen, oder gibts da
Übersprechprobleme? Also offene A-Eingänge über je eine R auf GND legen?
Chris schrieb:> Stefan ⛄ F. schrieb:>> Ja, geht in beide Richtungen, ohne Tricks.> wie jetzt? Mit dem pinMode Befehl?
Ja sicher, womit sonst?
Du kannst unbenutzte Eingänge offen lassen. Allerdings neigen sie dazu,
auf elektromagnetische Wellen zu reagieren und die Stromaufnahme unnötig
zu erhöhen. Das wird wohl nur auffallen, wenn man auf Bruchteile von mA
achtet.
Besser ist es, sie mit VCC oder GND zu verbinden, oder als Ausgang zu
konfigurieren oder als Eingang mit Pull-Up. Es geht darum, dass sie
einen eindeutigen LOW oder HIGH Pegel haben sollen.
Stefan ⛄ F. schrieb:> Chris schrieb:>> Stefan ⛄ F. schrieb:>>> Ja, geht in beide Richtungen, ohne Tricks.>> wie jetzt? Mit dem pinMode Befehl?>> Ja sicher, womit sonst?
Danke.
Nur mal zum lernen: Wenn ein analoger Inputpins über pinMode zum
Digitalpin wurde, mit welchem Befehl macht man ihn wieder zum Analogpin?
Leider stehe ich noch etwas am Dunkeln, vielleicht denke ich einfach nur
in die falsche Richtung.
Sieht nach Arduino aus?
Welcher ATMega ist in deinem Board verbaut? Für den gibt es
Datenblätter, die dir die Fragen direkt beantworten.
Die meisten IO-Pins sind konfigurierbar und sind nach dem Einschalten
digitale Eingänge. Erst die SW bestimmt, ob ein solcher Eingang auf
einen ADC führt. Ausnahmen gibt es: z.B. bei MEG328 (und verwandten)
sind zwei der acht ADC-Eingänge nur für den ADC verwendbar. Alle anderen
sind auch als digitale Pins verwendbar, als Eingang auch mit PU
definierbar und sind vollwertige digitale IOs.
Chris schrieb:> Zweite Frage: Wenn ich einen Teil der Analogeingänge verwende, kann ich> die anderen am selben Port "schwebend" lassen, oder gibts da> Übersprechprobleme? Also offene A-Eingänge über je eine R auf GND legen?
Es wird ja nicht der ganze Port auf die ADC-Verwendung geschaltet,
sondern nur der jeweilige Pin. Die anderen an dem Port verhalten sich so
wie jeder andere digitale Pin auch und sollten auch so verwendet werden;
also z.B. den Eingang nicht offen lassen, wenn unbenutzt. Dazu reicht
aber der interne PU oder einfach den Pin auf Output schalten.
Chris schrieb:> Nur mal zum lernen: Wenn ein analoger Inputpins über pinMode zum> Digitalpin wurde, mit welchem Befehl macht man ihn wieder zum Analogpin?
Natürlich mit pinMode.
Es gibt keine analogen Pins. Alle diese Pins sind primär ganz normale
digitale I/O Pins*.
Es gibt nur welche, die mit dem ADC verbunden werden können, und andere
wo das nicht geht.
*) Eine kleine Ausnahme: Die SMD Version vom ATmega328 hat einen Eingang
ADC7, welcher auf den Arduino Uno/Nano Boards nicht verwendet wird.
Dieser kann wirklich nur analog gelesen werden.
Stefan ⛄ F. schrieb:> Die SMD Version vom ATmega328 hat einen Eingang> ADC7, welcher auf den Arduino Boards nicht verwendet wird.
Es sind ADC6 und ADC7, die das betrifft, also zwei Pins.
Stefan ⛄ F. schrieb:> Chris schrieb:>> Nur mal zum lernen: Wenn ein analoger Inputpins über pinMode zum>> Digitalpin wurde, mit welchem Befehl macht man ihn wieder zum Analogpin?>> Natürlich mit pinMode.>> Es gibt keine analogen Pins. Es gibt nur welche, die mit dem ADC> verbunden werden können, und andere wo das nicht geht.
Jetzt schlagt mich nicht gleich. Ich weiß, ich stehe irgendwo am
Schlauch. Ich habe hier gelesen:
https://www.arduino.cc/reference/de/language/functions/digital-io/pinmode/
Aber wie WÜRDE (...wenn man es wollte...) der Digitalpin wieder analog?
Da steht nix ...
Das ist jetzt reine Theorie. Meine Fragen wurden beantwortet, danke
dafür.
Alle Analogen Daten sind digital wenn man das will ;)
https://www.youtube.com/watch?v=zaMemluFaoM
Hier ist ein einfaches Beispiel für diese Aussage.
Der Trick ist. Man muss nur den Schwellenwert bestimmen. Wird der
überschritten ist das Signal HIGH = 1 ansonsten Low = 0 .
In den Beispiel wird mit Hilfe des programmierten Schwellenwert erkannt
welcher Taster gedrückt wurde.
Der einzige Vorteil eines analogen Pin ist es, das man viel feiner
Abtasten kann wie bei Digital. Bei Audio ist das der Krieg zwischen
Schallplatte und CD. ;)
Chris schrieb:> Aber wie WÜRDE (...wenn man es wollte...) der Digitalpin wieder analog?> Da steht nix ...
Nochmal:
Alle Pins können digital gelesen werden. Und zwar immer, ganz egal ob
sie als Eingang oder Ausgang konfiguriert sind.
Die Pins die am Arduino als A0..A6 beschriftet sind, können zusätzlich
auch analog gelesen werden. Und zwar immer, ganz egal ob sie als Eingang
oder Ausgang konfiguriert sind.
Nur der 7. analoge Eingang des ATmega328 (das wäre A7) kann nur analog
gelesen werden. Er hat keine digitale Funktion.
Selbst wenn du einen Pin als OUTPUT konfiguriert hast, kannst du seine
Spannung analog einlesen. Du willst ihn aber wohl eher als INPUT
verwenden. Geht auch. Einfach so. Ohne Tricks.
Man kann einen Pin nicht als "analog" Konfigurieren. Die Eingänge A0 bis
A6 sind immer analog lesbar. Was du konfigurieren kannst, ist die
Signal-Richtung INPUT oder OUTPUT.
Und nein, der Mikrocontroller kann keine analogen Spannungen ausgeben.
Das was Arduino analogWrite() nennt, sind pulsierende digitale
Signalemit Pulsweitenmodulation (PWM).
Chris schrieb:> Aber wie WÜRDE (...wenn man es wollte...) der Digitalpin wieder analog?
Indem man ihn einfach mit analogRead(Ax) anspricht. 'x' steht für die
Kanalnummer.
Stefan ⛄ F. schrieb:> Nur der 7. analoge Eingang des ATmega328 (das wäre A7) kann nur analog> gelesen werden. Er hat keine digitale Funktion.
Nochmal: Das gilt für ADC6 und ADC7!
Schlaumaier schrieb:> Alle Analogen Daten sind digital wenn man das will ;)
Die Pins sind ein Stück Blech - weder digital noch analog.
Es geht um die Pins bei irgendeinem "Mega"
Bei einem ATmega328, wie er auf einem Arduino Nano sitzt, hängen sowohl
Analog- als auch Digitalbeschaltung am Pin. Die Signale vom Pin gegen
sowohl über den Analogmultiplexer auf den ADC geführt als auch auf den
digitalen Port. Die Verarbeitung digital vs. analog ist unabhängig und
grundverschieden.
Wirf einfach mal einen Blick ins Datenblatt, z.B. zuerst auf das Block
im Kapitel Overview und spar dir deine Allgemeinplätze.
HildeK schrieb:> Chris schrieb:>> Aber wie WÜRDE (...wenn man es wollte...) der Digitalpin wieder analog?>> Indem man ihn einfach mit analogRead(Ax) anspricht. 'x' steht für die> Kanalnummer.
Das reicht nicht.
Der Pin muss voher mit pinMode zum INPUT gemacht werden.
Stefan ⛄ F. schrieb:> Was du konfigurieren kannst, ist die> Signal-Richtung INPUT oder OUTPUT.Stefan ⛄ F. schrieb:> Es gibt keine analogen Pins. Alle diese Pins sind primär ganz normale> digitale I/O Pins*.Stefan ⛄ F. schrieb:> Die SMD Version vom ATmega328 hat einen Eingang> ADC7, welcher auf den Arduino Uno/Nano Boards nicht verwendet wird.> Dieser kann wirklich nur analog gelesen werden.Stefan ⛄ F. schrieb:> Nur der 7. analoge Eingang des ATmega328 (das wäre A7) kann nur analog> gelesen werden. Er hat keine digitale Funktion.
warum schreibst du so penetrant falsch?
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
In the TQFP and QFN/MLF package, ADC7:6 serve as analog inputs to the
A/D converter. These pins are powered from the analog supply and serve
as 10-bit ADC channels.
Die haben keine Möglichkeit digital out zu geben!
wurde schon um 25.09.2020 17:40 geschrieben
HildeK schrieb:> Es sind ADC6 und ADC7, die das betrifft, also zwei Pins.
und trotzdem ignorierst du weiter A7 und dichtest dem A6 auch digital
out zu!
Stefan ⛄ F. schrieb:> Die Pins die am Arduino als A0..A6 beschriftet sind, können zusätzlich> auch analog gelesen werden. Und zwar immer, ganz egal ob sie als Eingang> oder Ausgang konfiguriert sind.>> Nur der 7. analoge Eingang des ATmega328 (das wäre A7) kann nur analog> gelesen werden. Er hat keine digitale Funktion.Stefan ⛄ F. schrieb:> Ja, geht in beide Richtungen, ohne Tricks.
ja und je nach Quelle ist die Erde eine Scheibe und dreht sich die Sonne
um die Erde!
Arduino Fanboy D. schrieb:> Das reicht nicht.> Der Pin muss voher mit pinMode zum INPUT gemacht werden.
Man kann auch Ausgänge analog einlesen. Aus diese Weise kann man z.B
erkennen, ob ein Ausgang überlastet wird.
Joachim B. schrieb:> und trotzdem ignorierst du weiter A7 und dichtest dem A6 auch digital> out zu!
Du hast etwas übersehen:
HildeK schrieb:
> Das gilt für ADC6 und ADC7!Stefan ⛄ F. schrieb:> Ja
Arduino Fanboy D. schrieb:> Hier dreht es sich um eine ATMEGA2560.
ist wo geschrieben?
ich lese nur:
Chris schrieb:> Obwohl der Mega verwendet wird
ist das der Arduino Mega?
oder nur der ATmega328?
Ist das der DIP oder der SMD?
es hat keinen Sinn zu antworten wenn jeder was anderes versteht!
Stefan ⛄ F. schrieb:> Chris schrieb:>> Aber wie WÜRDE (...wenn man es wollte...) der Digitalpin wieder analog?>> Da steht nix ...>> Nochmal:>> Alle Pins können digital gelesen werden. Und zwar immer, ganz egal ob> sie als Eingang oder Ausgang konfiguriert sind.
OK. Jetzt hats endlich klick gemacht :-)
Danke allerseits.
Joachim B. schrieb:> ich lese nur:>> Chris schrieb:>> Obwohl der Mega verwendet wird>> ist das der Arduino Mega?> oder nur der ATmega328?> Ist das der DIP oder der SMD?
Arduino im Titel. Also der Arduino Mega.
Stefan ⛄ F. schrieb:> Man kann auch Ausgänge analog einlesen. Aus diese Weise kann man z.B> erkennen, ob ein Ausgang überlastet wird.
Interessante Perspektive. Tolles Forum.
Chris schrieb:> Arduino im Titel. Also der Arduino Mega.
gebe nächstes mal bitte unmissverständlich an, um welche Produkte es
geht. Das vermeidet Stress. Wegen solchen Unklarheiten wird allzu oft um
den heißen Brei herum diskutiert.
Chris schrieb:> Arduino im Titel. Also der Arduino Mega.
Auf jedem aktuellen Arduino Nano sitzt bspw. ein ATmega328.
So klar ist dein "also" wahrlich nicht.
Schlaumaier schrieb:> Und von A4+A5 würde ich auch die Finger lassen. Die brauch man für> wichtigere Dinge ;) i2c z.b. ;)
Ich ärgere mich gerade über den Pro-Mini, da haben die Flitzepiepen A4
und A5 nicht auf den Steckerleisten. Die zwei liegen neben der Reihe,
natürlich um 1,27 mm versetzt, sodass man sie auf einer 2,54er
Lochrasterkarte nicht direkt gesteckt bekommt.
Wenn man Uno oder Nano einsetzt und I2C nicht braucht, gibt es keine
Restriktionen, die lassen sich ganz normal verwenden!
Joachim B. schrieb:>> Es gibt keine analogen Pins. Alle diese Pins sind primär ganz normale>> digitale I/O Pins*.> doch die gibt es
Super Schlaumeier, dass es eine Ausnahme gibt habe ich in der Fußnote
zum Sternchen geschrieben. Und dass es nicht nur ADC7 sondern auch ADC6
betrifft, haben auch schon alle gesagt, die aufmerksam dabei sind, nur
du noch nicht.
Abgesehen davon ist die Diskussion um diese beiden Pins völlig sinnlos,
da es ja um ein anderes Board geht, wie wir inzwischen wissen. Wissen
wir doch, oder?
Stefan ⛄ F. schrieb:> Super Schlaumeier, dass es eine Ausnahme gibt habe ich in der Fußnote> zum Sternchen geschrieben. Und dass es nicht nur ADC7 sondern auch ADC6> betrifft, haben auch schon alle gesagt
ja eben, nur wenn und das mit dem A6 nicht wusstest, warum schreibst du
dann immer?
Stefan ⛄ F. schrieb:> *) Eine kleine Ausnahme: Die SMD Version vom ATmega328 hat einen Eingang> ADC7, welcher auf den Arduino Uno/Nano Boards nicht verwendet wird.> Dieser kann wirklich nur analog gelesen werden.
und bevor alles klar war schriebst du:
Stefan ⛄ F. schrieb:> Ja, geht in beide Richtungen, ohne Tricks.
nochmal was war falsch dir es noch mal zu zeigen was du geschrieben
hast?
ohne wenn und aber?
gebe doch einfach mal zu das du nicht alles weisst und demzufolge auch
mal die Finger stillhalten kannst!
klar kann man sich irren, aber auch dazu stehen und sich nicht
rauswinden wollen!
Joachim B. schrieb:> gebe doch einfach mal zu das du nicht alles weisst
Warum soll ich zugeben, was du behauptest? Ich habe nie behauptet, dass
ich alles weiß.
Ich habe mich daran erinnert, dass ADC7 beim Atmega328 ein rein analoger
Pin ist. Dass ADC6 auch betroffen ist, habe ich vergessen. Es wurde
korrigiert, ich habe es bestätigt.
Ich habe mich geirrt. Was für eine Schande! Muss ich jetzt sterben?
Macht dich das scharf?
Stefan ⛄ F. schrieb:> Macht dich das scharf?
nö, es würde helfen wenn du nicht zu allem was schreiben würdest, vor
allem wenn du unsicher bist:
was ist gemeint?
passt die Antwort?
Ich weiss der Narr ist sich stets sicher, nur der Weise zweifelt!
Manchmal sollte ich auch weniger schreiben, aber auch ich habe Fehler.