Mål: Vrid på potentiometern(10kΩ) för att ändra på blinkhastigheten.
Teori: Spänningen på det mellersta benet på potentiometern avläses av Arduinos analoga pin A0. Spänningen ligger mellan 0 – 5V och omvandlas i Arduinon till ett värde mellan 0 -1024. Detta värde används för att ställa tiden för hur länge lysdioden är på och av.
Arduino kod1
int ledpin = 9; void setup() { pinMode(ledpin, OUTPUT); } void loop() { int sensorValue = analogRead(A0); digitalWrite(ledpin, HIGH); delay(sensorValue); digitalWrite(ledpin, LOW); delay(sensorValue); }
Arduino kod2
I denna kod har vi satt till map funktionen för att kunna skala om värden från potentiometern till andra värden som fungerar bättre med blinkandet.
int ledpin = 9; void setup() { pinMode(ledpin, OUTPUT); // declare pin9 as output } void loop() { int sensorValue = analogRead(A0); // read pin A0 (values between 0...1024) int mappedValue = map(sensorValue, 0, 1024, 100, 2000); // map sensorvalues digitalWrite(ledpin, HIGH); // led ON delay(mappedValue); // wait digitalWrite(ledpin, LOW); // led OFF delay(mappedValue); // wait }
Arduino kod3
Denna kod har vi utvecklat så att vi skrivit både sensorvärdet (sensorValue) och det skalade värdet (mappedValue) till serial monitorn för att se deras relation.
int ledpin = 9; void setup() { Serial.begin(9600); pinMode(ledpin, OUTPUT); // declare pin9 as output } void loop() { int sensorValue = analogRead(A0); // read pin A0 (values between 0...1024) int mappedValue = map(sensorValue, 0, 1024, 100, 2000); // map sensorvalues Serial.print(sensorValue); Serial.print(','); Serial.println(mappedValue); digitalWrite(ledpin, HIGH); // led ON delay(mappedValue); // wait digitalWrite(ledpin, LOW); // led OFF delay(mappedValue); // wait }