Mål: att få fjärdstyrd legohanden med hjälp av sin egen hand
material:
- 5 servo motorer
- 5 flex sensorer
- 2 kopplingsplattor
- reglerbar strömkällä
hur handen fungerar
- Flex sensorerna böjs
- Spänningen förändras
- Spänningenförändringen avläses av arduino analog pin
- Spännignen som ligger mellan 0-5V omvandlas till en värde mellan 0-1024 (flexvalue). Detta värde skrivs sedan även till serialmonitorn.
- Flexvalue skalas om till ett värde mellan 0-180 (för servon).
- Det nya värdet skickas till servomotorerna
// inkludera servo biblioteket #include <Servo.h> // skapa och namnge ett servo objekt Servo minServo; Servo minServo1; Servo minServo2; Servo minServo3; Servo minServo4; void setup() { // starta serial kommunikationen Serial.begin(9600); // koppla din servo på pin9 till servo objektet minServo.attach(4); minServo1.attach(7); minServo2.attach(8); minServo3.attach(12); minServo4.attach(13); } void loop() { // läs int flexValueanalogpin A0 och spara värdet i variabeln flexValue int flexValue1 = analogRead(A0); int flexValue2 = analogRead(A1); int flexValue3 = analogRead(A2); int flexValue4 = analogRead(A3); int flexValue5 = analogRead(A4); // skriv ut värdet i serial monitorn Serial.print(flexValue1); Serial.print(" "); Serial.print(flexValue2); Serial.print(" "); Serial.print(flexValue3); Serial.print(" "); Serial.print(flexValue4); Serial.print(" "); Serial.println(flexValue5); delay(100); int mappedValue = map(flexValue1, 490, 690, 0, 180); int mappedValue1 = map(flexValue2, 490, 690, 0, 180); int mappedValue2 = map(flexValue3, 490, 630,0, 180); int mappedValue3 = map(flexValue4, 520, 730, 0, 180); int mappedValue4 = map(flexValue5, 530, 730, 0, 180); minServo.write(mappedValue); minServo1.write(mappedValue1); minServo2.write(mappedValue2); minServo3.write(mappedValue3); minServo4.write(mappedValue4); delay(2); // skala om sensorns värden till intervallet 0-180 grader }