Spannungssensor
Diesen Sensor habe ich bereits im Beitrag Arduino Lektion 54: Spannungssensor vorgestellt. Und wenn ich ganz ehrlich sein soll, habe ich mir die Schaltung von genau diesem Sensor entnommen und nachgebaut. Der Sensor kostet bei knapp 4€ inkl. Versandkosten (Dieses mal ist es sogar egal ob man die Ware aus China oder Deutschland liefern lässt. ).
Arduino Eingang Abfragen Programming
Es ist also eigentlich ganz einfach. So wird sie geschrieben. Achte auf die zwei Gleichheitszeichen hintereinander. Das ist bei einer if-Abfrage sehr wichtig. if (Baustein==rot) {
packe Stein in Box A}
So, jetzt könnten wir alle roten Bausteine in Box A packen, würden aber alle blauen Steine nach der Überprüfung einfach liegen lassen. Wie kommen die jetzt in Box B? Arduino eingang abfragen programming. Ein Vorschlag:
nimm einen Baustein prüfe, ob der Baustein rot ist wenn er rot ist, packe den Stein in Box A sonst packe ihn in Box B
Gut, oder? Und so könnten wir das programmieren:
packe den Stein in Box A} else {
packe den Stein in Box B}
Wir benutzen also das Wort else. Das trifft sich gut, denn else heißt auf Deutsch sonst. Hast du den grünen Stein gesehen? Der wandert auch in Box B, denn wir fragen ja nicht, ob der Baustein blau ist, sondern nur: Ist er rot oder ist er nicht-rot? ;-)
Nun aber zurück zu unserem Programm. Das sieht bisher so aus und muss verändert werden:
pinMode(ledPin, OUTPUT);
pinMode(tasterPin, INPUT);}
Die if-Abfrage für den Button fragt, ob der Button HIGH ist:
if (digitalRead(tasterPin)==HIGH){}
Wenn der Button HIGH ist, soll die LED eingeschalten werden:
if (digitalRead(tasterPin)==HIGH){
digitalWrite(ledPin, HIGH);}
Ansonsten (else) soll sie ausgeschaltet werden:
digitalWrite(ledPin, HIGH);} else {
digitalWrite(ledPin, LOW);}
Hier noch mal das ganze Programm:
digitalWrite(ledPin, LOW);}}
Funktioniert es?
Arduino Eingang Abfragen Circuit
Die beiden anderen Beinchen von festem und Foto-Widerstand treffen sich in der Mitte, welche wir mit A0 des Arduino verbinden. Wenn jetzt Strom fließt, dann teilt sich die Spannung zwischem festen und Foto-Widerstand auf. Den einen Teil der Spannung messen wir an A0. In dieser Konfiguration wird die Spannung höher, desto heller es wird. Vertauschen wir GND und +5V, dann geben kleine Spannungen hohe Lichtwerte wieder. Mir gefällt aber: mehr Licht = mehr Spannung. Man könnte auch nur 3. Arduino eingang abfragen system. 3V Versorgungsspannung anlegen, aber dann würde man ein bisschen Messgenauigkeit verlieren, denn mit 5V haben wir einen größeren Messbereich (0-5V statt 0-3. 3V). Das Programm dazu sieht so aus:
// the setup routine runs once when you press reset:
void setup() {
// Serielle Verbindung mit 9600 bps aufbauen
(9600);}
// the loop routine runs over and over again forever:
void loop() {
int a0val = analogRead(A0); // wert vom Analogeingang A0 lesen (0-1023)
float a0percent = a0val*100. 0/1023. 0; // prozentwert errechnen (0-100)
intln(a0percent); // über die ser.
Arduino Eingang Abfragen Sensor
In diesem Beitrag möchte ich zeigen wie man mit einem Arduino die Spannung bis 5V messen kann. Arduino Uno
Rückblick
In dem Beitrag Arduino Lektion 4: LED mit Fotowiderstand habe ich gezeigt wie man den Wert eines Fotowiderstandes ausliest und diesen über eine Leuchtdiode "visualisiert". Was wir eigentlich gemacht haben ist die Spannung welche der Fotowiderstand durchlässt zu messen und diesen Wert dann auf eine PWM Signal zu mappen. Fotowiderstand
Alternativ können wir auch eine kleine Schaltung mit einem Drehpotentiometer aufbauen in welchem wir die Spannung von 5V (welche der Arduino über den Pin 5V liefert) anschließen und manuell mit einem Schraubendreher verändern können. Je nach Qualität des Microcontrollers kann der Wert leicht unter oder über dem Wert von 5V liegen. Arduino eingang abfragen sensor. Wenn man jedoch keinen Klon sondern einen originalen Arduino UNO verwendet liefert dieser fast genau 5V. vergleich 5V Spannung am Arduino UNO original und Keyestudio UNO
Sketch
In dem nachfolgenden Sketch lese ich den Wert vom analogen Pin A0 aus und mappe diesen zunächst auf das mögliche PWM Signal (0.. 255) und danach auf einen Wert zwischen 0 und 50 für die Berechnung der Spannung.
Arduino Eingang Abfragen Tutorial
Ich wähle hier bewusst die Werte von 0 bis 50 damit ich später diesen durch 10 dividieren und somit einen Gleitkommawert erhalte. #define rotaryResistor A0
#define led 9
void setup() {
(9600);
pinMode(rotaryResistor, INPUT);
pinMode(led, OUTPUT);}
void loop() {
int resistorValue = analogRead(rotaryResistor);
int ledValue = map(resistorValue, 0, 1023, 0, 255);
analogWrite(led, ledValue);
double v = map(resistorValue, 0, 1023, 0, 50);
(v/10, 2);
intln("V");
delay(100);}
messen von Spannungen größer als 5V
Möchte man Spannungen von mehr als 5V messen so muss man sich einer Spannungsteilerschaltung bedienen. Taster abfragen und richtig entprellen – Madgyver. Im nachfolgenden zeige ich dir den Schaltplan wenn die Eingangsspannung "VCC" bis zu 25V ist. Schaltung Spannungssensor (Spannungsteiler)
In diesem Fall wir an "S" & "-" eine Spannung von maximal 5V ausgegeben welche wir dann wiederum mit unserem Arduino am analogen Eingang messen können. Aufbau der Schaltung mit einem Breadboard
benötigte Bauteile für die Schaltung
Zunächst wollen wir die Schaltung auf einem Breadboard aufbauen.
Arduino Eingang Abfragen System
Dieses Verhalten nennt man auch " Prellen ". Wie man sich vorstellen kann, ist das ziemlich schlecht. Eine Tastatur würde z. pro Tastendruck mehrere Zeichen hintereinander ausgeben. Arduino Programmierung: Abfragen - Technik Blog. Die Korrektur dieses Verhalten heißt dementsprechend " Entprellen " und es gibt dafür mehrere Ansätze, sowohl durch elektrisch als auch Softwaretechnisch. Die einfachste Softwarelösung besteht darin, nach dem Einlesen des Tasters einen kurzen Moment zu warten und dann, falls dieser HIGH war, den Taster noch einmal einzulesen. Sollte der Taster immer noch auf HIGH sein, dann kann der Arduino sich sehr sicher sein, dass es ein echter Tastendruck war. delay(5);
if ((buttonState == LOW) && (digitalRead(buttonPin)))
if (digitalRead(buttonPin)) {
intln("Button pressed");}}}
Wie lange man genau warten muss, hängt von Fall zu Fall ab und ist nicht besonders kritisch. Für gewöhnlich reichen 5 bis 50 Millisekunden.
1 - Testschaltung für einen Drucktaster
Testschaltung für einen Drucktaster - 1
Material
1x Arduino UNO
1x Drucktaster als Schließer
1x Widerstand 470 Ohm (gelb-violett-braun)
1x LED rot
1x Steckdrähte
1x USB Kabel
Aufgaben
Baue die Schaltung aus Abb. 1 auf dem Steckbrett auf. Überprüfe die Funktion des Tasters und der LED. Notiere deine Ergebnisse. Schaltskizze und Schaltungsaufbau
Abbildung 1 - Schaltskizze und Schaltungsaufbau Drucktaster
Wie arbeitet die Testschaltung? Wird der Drucktaster nicht betätigt, ist er offen. Dies wird links
Abbildung 2 gezeigt. Ein Strom kann aufgrund der Unterbrechung (offener Stromkreis) nicht vom + - Pol zum Minuspol fließen. Die LED leuchtet nicht. Im rechten Bild ist der Taster geschlossen. Der Stromkreis ist geschlossen und die elektrische Ladung fließt vom Pluspol
über den Taster T1, den Widerstand und die LED zum Minuspol. Einen Schalter einlesen - arduino-basics.com. Die LED leuchtet. Abbildung 2 - Schalter offen - Schalter geschlossen
2 - Der Taster wird anders platziert In der folgenden Schaltung verhält sich die LED anders, weil der Taster parallel zur LED geschaltet ist.