Von Patrick Kaiser
// Widerstände messen
// _____
// -|_R1__|- VCC
//AnalogPin -' _____
// '-|_R2__|- GND
// R2 = zu messender Widerstand
float Quellspannung=5.0;
int AnalogPin=5;
int R1=1500.0; //Wert des bekannten Widerstands (der mitgelieferte 1,5k-Widerstand)
long Messwert;
float SpannungR2; //Spannung über dem zu messenden Widerstand
float Widerstand;
void setup()
{
Serial.begin(9600);
Serial.println("Widerstand ausmessen");
Serial.println();
}
void loop()
{
//5 Messungen machen und Mittelwert bilden
Messwert=0;
for(int i=0;i<5;i++){
Messwert+=analogRead(AnalogPin);
}
Messwert=trunc(Messwert/5);
//Spannung berechnen
SpannungR2=(Quellspannung/1023.0)*Messwert;
Serial.print("Spannung ueber R2 betraegt ");
Serial.print(SpannungR2,2);
Serial.println(" Volt!");
//Berechnung: (R2 = R1 * (U2/U1))
Widerstand=R1*(SpannungR2/(Quellspannung-SpannungR2));
Serial.print("Der Widerstand hat ");
Serial.print(Widerstand,2);
Serial.println(" Ohm.");
Serial.println();
delay(1000);
}
int ledPin = 9; // LED an Pin nr 9
int analogPin = 5; // potentiometer an analogPin1
float pwmOLD = 0; // variable
float pwmNEW = 0; // variable
void setup()
{
pinMode(ledPin, OUTPUT); // Pin 9 als ausgang
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop()
{
pwmNEW=0;
for(int i=0;i<100;i++)
{
pwmNEW+=(analogRead(analogPin)/4);
}
pwmNEW=trunc(pwmNEW/100);
if (pwmNEW != pwmOLD) // verleicht die Werte valNEW und valOLD
{
analogWrite(ledPin, pwmNEW); // PWM-Signal wird an LED-Pin gesendet
Serial.print(" PWM-Signal:");
Serial.println(pwmNEW); //PWM-Signal kann man an den serial-Monitor sehen
pwmOLD = pwmNEW; // valNEW wird zu valOLD gemacht und wird für den nächsten Loop-durchgang gespecihert
}
Serial.print("Analogsignal:");
Serial.println(analogRead(analogPin));
delay(100);
}