Fragen rund um den Arduino Uno?
Hi Leute, ich habe ein paar Projekte mit dem Arduino Uno gemacht und eines davon war folgender:
Einen Motor mittels eines Potentiometers steuern, also dessen Geschwindigkeit. Dabei gab es zudem einen Schalter zum an und ausschalten des Motors und einen Schalter zum Ändern der Richtung des Motors. Der Motor wurde mit einer 9 Volt Batterie betrieben, gesteuert wurde das ganze mit einem IC, welches genau, weiß ich leider nicht mehr.
Zu dem Projekt ergeben sich für mich folgende Fragen:
- Es schien egal zu sein, welchen Wert der Poti hat, die beiden äußeren Beine wurden mit 5V und GND verbunden, die mittlere Leitung ging an einen Analogen Pin. Auslesen tat der Arduino dabei, je nach Zustand des Potis, Werte von 0 bis 1023. Ich würde gerne wissen, warum das so ist? Was genau gibt der mittlere Pin eines Potis aus, sodass der Arduino es, egal welchen Widerstandswert der Poti hat, von 0 bis 1023 interpretiert.
- Wo wir schon beim Poti sind, wenn ich den Widerstand auf 0 Setze durch drehen des Hebels, dann habe ich ja 5V mit GND kurzgeschlossen. Warum ist dem Arduino dennoch nichts passiert? Ist dort eine Sicherung vorhanden? Oder fließt ein so geringer Strom, sodass dem Arduino dabei nichts passiert? Eigentlich sollten die 500mA des USB Steckers doch ausreichen, den zu grillen oder?
- Was genau ist der Unterschied zwischen +5V und Vic?
Vielen Dank für die, hoffentlich, kommenden Infos :)
1 Antwort
Beim Poti sind die äußeren Pins der Anfang und das Ende der Widerstandsbahn. Der mittlere ist ein Schleifer, der irgendwo auf der Widerstandsbahn eine Spannung abgreift. Die Widerstandsbahn arbeitet als dynamischer Spannungsteiler. Kommt der Schleifer an den Pin mit 5V, steigt die Spannung gegen Masse auf bis zu 5V, dreht man den Poti Richtung Masse, sinkt sie Spannung kontinuierlich bis man irgendwann das Massesignal auf dem mittleren Pin hat. Steht das Poti genau auf halb, hat man vom Schleifer aus gesehen die hälfte des Gesamtwiderstandes zu Plus wie auch zu Masse und somit auch die hälfte der Spannung am mittleren Pin. In dem Fall 2,5V.
Es gibt keinen Kurzschluß, da der Widerstand zwischen 5V und Gnd gleich bleibt. Nur die Position des Abgriff ändert sich...
Sorry, bissl später geworden... Die Arduino misst mit einen Analog-Digitalwandler die Differenz von Eingangsspannung zur Referenzspannung (In dem Fall 5V Referenz) Die Differenz wird in 1024 bits aufgeteilt. (0-1023) Also ist 0 entsprechend 0 und 5V (volle Referenzspannung) dann 1023...
Alles klar, vielen Dank. Besser spät als nie.
2 Fragen habe ich noch, vielleicht kannst du diese auch beantworten:
- Der Arduino benutzt wohl pullup widerstände für die Digitalen Pins, hat er auch pulldown? Wenn ja, wie genau funktionieren die?
- Man kann wohl die Analogen Pins, sofern man keine Analogen braucht, dafür aber mehr Digitale, in digitale Pins umwandeln. Werden dabei direkt alle umgewandelt? Oder nur einzelne? Haben diese Digitalen dann auch Pullup?
Nun, es gibt nur die PullUp. PullDown musst Du extern beschalten. Die Eingänge sind ohne PullDown sensibel auf Störungen durch Induktion.
Die Analog-Pins sind genauso als digitale Pins zu nutzen, wie die anderen auch. Auch mit PullUp und getrennt von einander konfigurierbar. Diese haben nur zusätzlich einen A/D-Wandler, den man entsrechend ansteuern kann (Nur Abhängig vom verwendeten Befehl zum einlesen)
Oh je, da sind wieder neue Begriffe aufgetaucht :/
Also, was ist ein A/D Wandler? Und PullUp zieht auch 4,5 Volt auf 5 Volt hoch, damit es als HIGH erkannt wird?
A/D-Wandler ist der Analog-Digitalwandler abgekürzt.
Der PullUp schaltet einen Widerstand auf 5V. Über den Widerstand liegt am offenen Eingang dann 5V an und der Eingang ist High. Man kann dann den Eingang gegen Masse schalten, damit er Low wird. Der Widerstand begrenzt den Strom gegen Masse, damit kein Kurzschluß entsteht.
Ok, vielen Dank.
Und wieso kann der Arduino den schleifer Wert, unabhängig vom Poti Wert, als 0-1023 interpretieren?