Forum: Mikrocontroller und Digitale Elektronik Unterschied Arduino-PWM und Analog


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von klappspaten (Gast)


Lesenswert?

Hi,
ich verstehe nicht genau die Analog-Pins am Arduino Nano.
Der Arduino hat soweit ich das verstanden habe keinen echten 
Analog-Output, sondern imitiert das Signal mit PWM.

Allerdings sind im Pinout nur 6 Pins als PWM gekennzeichnet. (pins 1, 9, 
10, 13, 14 und 15)

Das verwirrt mich, müssten nicht alle Analog-pins PWM-pins sein?

Oder gibt es noch einen wesentlichen Unterschied zwischen PWM und 
Analog?

von Stefan F. (Gast)


Lesenswert?

> Der Arduino hat soweit ich das verstanden habe keinen echten
> Analog-Output

Gut dass es nur einen gibt...

> Allerdings sind im Pinout nur 6 Pins als PWM gekennzeichnet.
> Das verwirrt mich, müssten nicht alle Analog-pins PWM-pins sein?

Du verwechselt wohl die analogen Eingänge mit den PWM Ausgängen.

von Einer K. (Gast)


Lesenswert?

klappspaten schrieb:
> ich verstehe nicht genau die Analog-Pins am Arduino Nano.
> Der Arduino hat soweit ich das verstanden habe keinen echten
> Analog-Output,

Ich rate dir zum Datenblatt des ATMega328P
Wenigstens einmal lesen.
Dort wird haarklein erklärt wie die Pins usw. funktionieren.

von klappspaten (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Du verwechselt wohl die analogen Eingänge mit den PWM Ausgängen.

Also sind PC0 bis PC5 nur Eingänge?

von Einer K. (Gast)


Lesenswert?

klappspaten schrieb:
> Also sind PC0 bis PC5 nur Eingänge?

Nein!
Bitte nicht weiter von Irrtum zu Irrtum stolpern.
Das frustriert dich nur....

Nochmal: Datenblatt!

von klappspaten (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Nochmal: Datenblatt!

Alles klar, mach ich

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf

neuere Arduinos enthalten auch den PB-Typ, der hat ein paar erweiterete 
Funktionen
https://www.microchip.com/wwwproducts/en/ATmega328PB

Es gibt drei analoge Funktionen. den ADC-Eingang, der auf verschiedene 
Pins umgeschaltet werden kann, den Analogkomparator und die 
PWM-Ausgänge. Die sind alleine nicht analog sondern erst durch 
Nachschalten eines Tiefpassfilters.
Ausserdem kann jeder Portanschluss als ganz normaler digitaler Ein- oder 
Ausgang benutzt werden.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

klappspaten schrieb:
> Also sind PC0 bis PC5 nur Eingänge?

Bilder sprechen manchmal mehr als Worte.

Die Eingänge für analogRead() sind hellgrün markiert (A0) - (A5).
Die Ausgänge für analogWrite() haben das rote "PWM" Häkchen (✔).

All diese Pins kann man auch für digitalRead() und digitalWrite() 
nutzen.

von Falk B. (falk)


Lesenswert?

Stefan ⛄ F. schrieb:
> All diese Pins kann man auch für digitalRead() und digitalWrite()
> nutzen.

Und für die Lücke außerhalb des 100mil Rasters für die Buchsenleiste 
oben rechts gehört denen ordentlich eins hinter die Löffeln! So ein 
Schmarn!
Naja, einfach den Nano nehmen, der ist kleiner und kann das Gleiche.

von Wolfgang (Gast)


Lesenswert?

klappspaten schrieb:
> Oder gibt es noch einen wesentlichen Unterschied zwischen PWM und
> Analog?

Bei den AVR-Arduinos ist "Analog" Input und PWM Output - reicht das als 
Unterschied. Den Rest verrät dir der Schaltplan zusammen mit dem 
Datenblatt des betreffenden Prozessors.

von Einer K. (Gast)


Lesenswert?

Falk B. schrieb:
> Und für die Lücke außerhalb des 100mil Rasters für die Buchsenleiste
> oben rechts gehört denen ordentlich eins hinter die Löffeln! So ein
> Schmarn!
> Naja, einfach den Nano nehmen, der ist kleiner und kann das Gleiche.

Erstens:
Der TO verwendet einen Nano.
(aber das ist dir ja egal)

Zweitens:
Die "spezielle" Lücke macht die Angelegenheit recht Deppen sicher.
Es gibt keine Chance (ohne Hammer) ein Shield verdreht aufzusetzen.
(aber das ist dir ja auch egal)

Dass du auch ohne solche "Spezialitäten" leben kannst, ok, da sage ich 
nichts gegen. Aber es verhindert, dass es im Kinderzimmer knallt, raucht 
und teuer wird.
Es hat also auch was gutes!

Der Blick zu Seite:
Codierte Steckverbindungen werden auch, oder gerade, im Profisektor in 
großen Mengen eingesetzt.

Merksatz:
Der Ärger über solche Kleinigkeiten verschwindet meist ganz schnell, 
wenn man den Blickwinkel ein wenig verändert.

von vn nn (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Die "spezielle" Lücke macht die Angelegenheit recht Deppen sicher.
> Es gibt keine Chance (ohne Hammer) ein Shield verdreht aufzusetzen.
> (aber das ist dir ja auch egal)
>
> Dass du auch ohne solche "Spezialitäten" leben kannst, ok, da sage ich
> nichts gegen. Aber es verhindert, dass es im Kinderzimmer knallt, raucht
> und teuer wird.
> Es hat also auch was gutes!
>

Bullshit, zeig auch nur einen Stecker der durch eine dümmliche 
Abweichung im Raster codiert wird. Mit der Lücke hat man es auf 
grandiose Weise geschafft, Lochraster-Inkompatibel zu werden.
Tatsächlich ist es selbst in den Arduino-Fanforen bekannt, dass es sich 
um einen Designfehler handelt der aus Kompatibilitätsgründen beibehalten 
wurde.

> Der Blick zu Seite:
> Codierte Steckverbindungen werden auch, oder gerade, im Profisektor in
> großen Mengen eingesetzt.

Den Profisektor hast du halt noch nie gesehen...

von Manfred (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> klappspaten schrieb:
>> Also sind PC0 bis PC5 nur Eingänge?
> Nein!
> Bitte nicht weiter von Irrtum zu Irrtum stolpern.
> Nochmal: Datenblatt!

Warum erklärt ein Arduino Fanboy das nicht so, wie es unter Arduino 
typisch benutzt wird? Wer Lust hat, ein Datenblatt durchzuackern, ist 
nicht der typische A*-Benutzer.

Die A0..A5 sind analoge Eingänge, die eine Spannung von 0 bis 
Betriebsspannung umsetzen und 0..1023 ausgeben. Hilfreich ist das Bild, 
was Stefan gepostet hat, man kann diese auch digital benutzen, dann 
werden sie als 14..19 angesprochen.

klappspaten schrieb:
> habe keinen echten Analog-Output

Genau so ist das, die Digitalpins mit "~" bzw. dem roten Punkt können 
PWM ausgeben, dazu schreibt man in der A*-IDE z.B.
"analogWrite (6, 120);"

Ich habe eine Anwendung, wo ich eine echte Analogspannung möchte, da 
habe ich einen externen D/A-Wandler MCP4725 angeklemmt, in dem Fall 
werden A4 und A5 digital für den I2C-Bus benötigt.

von Wolfgang (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Zweitens:
> Die "spezielle" Lücke macht die Angelegenheit recht Deppen sicher.
> Es gibt keine Chance (ohne Hammer) ein Shield verdreht aufzusetzen.
> (aber das ist dir ja auch egal)

Deppensicher wäre es genauso, wenn einfach in der Stiftleiste ein Pin 
fehlt und in der Buchsenleiste entsprechend der Pin blockiert ist.
Dafür muss man nicht aus dem Raster raus gehen. Gerade für Prototypen 
auf Loch-Raster ist das nicht zu Ende gedacht - oder eben doch ;-(

Fixier dich nicht zu sehr auf deinen Blickwinkel. Es gibt noch andere 
...

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Wolfgang schrieb:
> Dafür muss man nicht aus dem Raster raus gehen. Gerade für Prototypen
> auf Loch-Raster ist das nicht zu Ende gedacht - oder eben doch ;-(

Als ich die Idee hatte, mir Arduino anzugucken, habe ich zwei ChinaUNO 
bestellt und ein paar Tage damit gespielt, mit Gewalt bekommt man die 
auch auf Lochraster gewürgt. Für einen 328 im TQFP-Gehäuse ist die 
Platine unverschämt groß, macht keinen Sinn.

Mit etwas Nachdenken fällt dann auf, dass der A*-Nano den gleichen 
Prozessor hat und alles, was ich auf dem Uno probiert hatte, auch auf 
dem läuft. Der Nano braucht auf der LR-Platte kaum mehr Platz als ein 
DIL, damit hat sich das Thema erledigt.

"nicht zu Ende gedacht - oder eben doch" - "doch" gibt Sinn, wenn man 
Shields verkaufen will. Brauche ich leider nicht, ein Relais / einen 
Transistor bringe ich eigenständig auf Lochraster, die Masse der Shields 
ist einfach nur dämlich.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Wer Lust hat, ein Datenblatt durchzuackern, ist
> nicht der typische A*-Benutzer.
Bist du jetzt auch dem "Arduino Basher Deppen Clan" beigetreten?
Hätte ich nicht von dir erwartet.

Wer die Datenblätter und Sprachreferenz nicht lesen will, muss im Nebel 
stochern und kommt nicht wirklich vorwärts.
Das weist du genau so gut wie ich.

Fall ich mich irre:
Kann es sein, dass du dich für den typischen Arduino User hälts, und 
dein Verhalten hier als den wahren Jakob anzupreisen versuchst.

Im Gegensatz zu dir, Maße ich mir nicht an, zu sagen, was der typische 
Arduino User ist.

Ich kanns aber mal probieren, vielleicht gefällt dir das ja:
Der typische Assembler Programmierer, ist zu blöd um C++ zu lernen, 
darum hasst er es und hackt auf jedem Arduino User herum, den er finden 
kann, denn genau die arbeiten tag täglich mit einer der 
schwierigsten/kompliziertesten Programmiersprachen, welche es z.Zt. 
gibt.

Nein!
Die Methode, alle in einen Sack und mit dem Knüppel drauf, halte ich für 
falsch. Denn das ist die unmittelbare Folge wenn man Menschen anhand 
einer recht unwichtigen Eigenschaft zu Gruppen klassifiziert.
Glückwunsch! Du hast die Mutter aller Vorurteile und Diskriminierungen 
neu erfunden.

von c-hater (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:

> Ich kanns aber mal probieren, vielleicht gefällt dir das ja:
> Der typische Assembler Programmierer, ist zu blöd um C++ zu lernen,
> darum hasst er es und hackt auf jedem Arduino User herum, den er finden
> kann, denn genau die arbeiten tag täglich mit einer der
> schwierigsten/kompliziertesten Programmiersprachen, welche es z.Zt.
> gibt.

Ach komm...

Was der typische Arduino-Benutzer fabriziert ist keinesfalls C++. Es ist 
allenfalls eine Art mit in C++ verfügbaren Features aufgehübschtes C. 
Genau mit den Features, die die Härten von C etwas entschärfen. 
Insgesamt erinnert die Sache sehr stark an die alten VB-Dialekte von 
Microsoft (nur dass man hier halt den vergleichsweise unsäglich schlecht 
lesbaren C'ischen Syntax-Stil hat.

D.h.: es gibt Objekte, die irgendwelche Leute machen, die wirklich C++ 
programmieren können (und Hardware verkaufen wollen) und es gibt 
Dau-Dummuser, der diese Objekte mit einem extrem minimierten Subset von 
C++ nutzen kann (und dann halt sein mühsam erworbenes Geld für die 
Hardware ausgibt, für die diese Objekte gemacht sind).

Das ist eigentlich schon alles. Ein Geschäftsmodell, dafür geschaffen, 
um Unfähigen das Geld aus der Tasche zu ziehen. Nunja, solange es 
funktioniert und dieses unfähige Pack sogar glaubt, es könnte dadurch 
programmieren, was soll's. Sollen sie es glauben...

von Qwerty (Gast)


Lesenswert?

naja die makerszene beinhaltet wohl paar dieser Leute, aber was schon 
beim PC funktioniert, wird nun auch beim Mikrokontroller Alltag werden.

Allein, wenn ich sehe dass ein RTOS und python vieles für totale 
Anfänger bzw. Maker aufbereitet wird.

Man sollte da doch radikal trennen zwischen den Ansprüchen und Vorgaben, 
ob Hobbriest / Maker oder ob ich damit mein Geld verdiene im 
industriellen Bereich, wo ich einige Vorschriften/Vorgaben einhalten 
muss.
Der Hobbybastler frägt sich zu den Weg schwer machen wenn es einfach 
geht.
Der Gewerbliche schimpft den Maker aus, wenn die Vorgaben umbastelt 
werden.

Also muss jeder da den Anspruch halt akzeptieren können.

von Manfred (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
>> Wer Lust hat, ein Datenblatt durchzuackern, ist
>> nicht der typische A*-Benutzer.
> Bist du jetzt auch dem "Arduino Basher Deppen Clan" beigetreten?

Natürlich nicht. Ich habe mit Arduino einige nette Dinge aufgebaut und 
werde A* weiterhin benutzen.

> Hätte ich nicht von dir erwartet.
Danke.

> Wer die Datenblätter und Sprachreferenz nicht lesen will, muss im Nebel
> stochern und kommt nicht wirklich vorwärts.
> Das weist du genau so gut wie ich.

Da bin ich nur teilweise bei Dir: Die Sprachreferenz habe ich natürlich 
parat und schaue dort bei Bedarf rein.

Auch das Datenblatt des ATMega liegt auf dem PC, aber mit dem will ich 
eigentlich nichts zu tun haben.

> Fall ich mich irre:
> Kann es sein, dass du dich für den typischen Arduino User hälts, und
> dein Verhalten hier als den wahren Jakob anzupreisen versuchst.

Anpreisen muß oder will ich hier garnichts, aber mit "dein Verhalten" 
triffst Du ziemlich genau meine Sicht: Es gibt für wenig Geld fertige 
Boards und die Hochsprache der IDE samt eingebauter Funktionen koppelt 
den Benutzer von der Hardwareebene ab, das war doch das Ziel der 
Entwickler.

Meine ersten Aktionen mit 6504, später 6502 und 6522 / 6532, es hat Tage 
gedauert, bis ich einen Schalter abfragen und eine LED anknipsen konnte, 
mit EProm rausziehen, extern programmieren, mit Licht löschen ... Dann 
gab es einen MC68HC805, mit EEProm, aber noch immer nicht inCircuit 
programmierbar, ich kannte die Datenbücher und sprach fast fließend 
Assembler.

Trotz Deines Protestes beharre ich auf meinem Standpunkt: Der A*-User 
will genau den bequemen Weg, oberhalb der Hardware- oder Assemblerebene 
möglichst einfach zum Ziel zu kommen. Betreibt man das ernsthaft, wird 
man irgendwann an Grenzen stoßen, da ist der TO mit seiner Frage aber 
noch meilenweit von entfernt.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> da ist der TO mit seiner Frage aber
> noch meilenweit von entfernt.

Natürlich ist der das!
Aber das kann sich ja ändern.
Immerhin hat er ja schon die Pins von PORTC gefunden.
Also gib ihm bitte die Chance!
Und verurteile nicht.


Wie lange braucht ein Kind, zum laufen lernen, und dann bis es einen 
Marathon bestreiten kann.
Sagst du da auch schon am dritten Tag:
> Ach du bist zu doof dazu.
> Alle Kinder sind zu doof dazu.
Nein das tust du nicht! (will ich hoffen)
Du weißt, dass das Zeit braucht.
Du weißt auch, dass nicht jeder ein guter Marathonläufer wird.

Manfred schrieb:
> Der A*-User
> will genau den bequemen Weg, oberhalb der Hardware- oder Assemblerebene
> möglichst einfach zum Ziel zu kommen.

Ich halte das für eine Projektion!
Du projizierst deine Sicht der Dinge, auf alle Arduino User.
Und natürlich siehst du dann nur das Bild, welches du selber auf diese 
projizierst hast.
Die Realität wird von deiner eigenen Projektion überdeckt.

Schau dir den c-hater an, der ist ein gutes Beispiel dafür...
Wiederholt dauernd den gleichen Mist.
Mittlerweile glaubt er bestimmt schon selber daran.
Ein gutes Beispiel, für eine erfolgreiche Selbstsuggestion.
Sein Mantra: "Ich bin der tollste! Alle Arduino User sind doof!"

Aber in Wirklichkeit verhält er sich wie ein Arschloch, und merkt es 
noch nicht mal mehr.

von xyz (Gast)


Lesenswert?

> Wie lange braucht ein Kind, zum laufen lernen

Unfug.
Das Kind lernt mit A* hoechstens das Krabbeln im Sandkasten.
Richtiges Laufen erfordert eine gewisse motorische Mindestkompetenz.
Krabbeln im Sandkasten behindert aktiv den Aufbau eben dieser.

von Einer K. (Gast)


Lesenswert?

OK, du hast bittere Erfahrung mit Sandkästen gemacht.
Oft eingesperrt und gedemütigt worden.
Hast mein volles Mitgefühl!

Aber mit Kindern hast du offensichtlich keine Erfahrung.
Die gehen aus deinen gebauten Gefängnissen stiften.
Die fügen sich nicht deinen Projektionen.

von Stefan F. (Gast)


Lesenswert?

c-hater schrieb:
> Was der typische Arduino-Benutzer fabriziert ist keinesfalls C++. Es ist
> allenfalls eine Art mit in C++ verfügbaren Features aufgehübschtes C.
> Genau mit den Features, die die Härten von C etwas entschärfen.

Das klingt negativ, aber ich sage dir was:

Es ist gut, wenn man sich nach zig Jahren die Freiheit heraus nimmt, von 
einer Programmiersprache nur das zu benutzen, was man braucht und gut 
durchblickt.

Wenn C++ perfekt wäre, gäbe es nicht so viele daran angelehnte Sprachen, 
die diese Welt verbessern wollen.

> Ein Geschäftsmodell, dafür geschaffen,
> um Unfähigen das Geld aus der Tasche zu ziehen

Das sehe ich völlig anders. Es ist ein Geschäftsmodell, dass eine real 
existierende Marktlücke gefüllt hat und Leuten Zugang zu µC verschafft 
hat, die sonst die Finger davon gelassen hätten.

Im Gegensatz zu vielen anderen erheblich teureren Baukästen hast du bei 
Arduino einen fließenden uneingeschränkten Übergang zur voll 
professionellen Programierung und auch Hardware. Wer will, der kann. 
Arduino hindert niemanden und Arduino ist auch noch der billigste von 
allen. Also erspare dir Vorwürfe von wegen "das Geld aus der Tasche zu 
ziehen".

Nicht jeder ist ein Meisterkoch und kaum jemand will es ernsthaft 
werden. Deswegen gibt es Gewürzmischungen und Maggie-Tüten. Die wurden 
auch nicht produziert, um dumme Menschen auszubeuten, sondern um ihnen 
zu ermöglichen, leckeres Essen zu machen ohne es im Restaurant kaufen zu 
müssen. Wenn du mal schaust, wie lange diese Marke schon existiert, kann 
die Idee nicht so falsch gewesen sein.

PS: Wenn du denkst ich sei ein Arduino Jünger, dann lies mal meine 
älteren Äußerungen dazu.

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> PS: Wenn du denkst ich sei ein Arduino Jünger, dann lies mal meine
> älteren Äußerungen dazu.
Das kann ich voll bestätigen!
Ehemals militanter und unreflektierter Arduino Basher, jetzt sitzt du 
mehr auf deinen Fingerchen.

Ich glaube, dass das nicht nur wegen der Unzahl Kopfnüssen geschah, 
sondern auch ein Gutteil Einsicht und Toleranz eingezogen ist. Denn das 
Leben ist einfach ein gutes Stück angenehmer, für alle, wenn man 
"liebevoll" mit anderen umgeht.

Ja, das sind so Dinger, die dem c-hater voll abgehen. Das kann/will er 
nicht. Eigentlich vermute ich ja, dass sein Gebaren hier, in 
Wirklichkeit, nur der unreflektierte Schrei eines hilflosen/gequälten 
Kindes ist, ein Schrei nach Liebe und Anerkennung. Dummerweise liefert 
ihm genau/auch der Widerstand, den man ihm entgegensetzt, seine 
Anerkennung/Verstärkung. Frei nach dem Motto: "Eine ordentliche Tracht 
Prügel, ist auch eine Form der Zuwendung."

von Stefan F. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Ich glaube, dass das nicht nur wegen der Unzahl Kopfnüssen geschah,
> sondern auch ein Gutteil Einsicht und Toleranz eingezogen ist.

Ja klar, beides trifft zu. Und, dass mir dass Framework nach einigen 
Anwendungen doch nicht mehr so suspekt ist, wie es mal war.

von Erwin D. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> und merkt es noch nicht mal mehr.
Oh doch. Er ist sogar stolz darauf!

von Einer K. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Und, dass mir dass Framework nach einigen
> Anwendungen doch nicht mehr so suspekt ist, wie es mal war.

Das ist wohl der wirklich wesentliche Punkt.
Sich mit den Dingen vertraut machen, ist das beste Mittel.

Dann kann man auch fundierter entscheiden, ist das was für mich, oder 
eben nicht.
Was auf jeden Fall hängen bleibt, da wird auch nur mit Wasser gekocht. 
So wie überall anders auch. Vielleicht eine andere Geschmacksrichtung, 
mehr nicht.

von Stefan F. (Gast)


Lesenswert?

Man kann aber nicht jedes Framework durchtesten um sich eine fundierte 
Meinung zu bilden. Dafür werden diese Sachen einfach zu schnell 
hintereinander aus dem Boden gestampft. Zudem erkennt man erst nach 
einigen Jahren, was davon Bestand hat.

Da muss man sich viel auf die Meinung von vertrauenswürdigen Beratern 
stützen, also wir hier :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.