Servo
Mål: Att kunna styra positionen på en servo.
Teori: En servo har tre kablar: Vin, GND och signal. Ge servon 5V/GND och styr signalkabeln med Arduinon. Servon kommer då att kunna roteras exakt mellan 0 och 180 grader.
Fritzing kopplingsschema
Arduino koden
#include <Servo.h> // inkludera servo biblioteket Servo myservo; // skapa servo object // upp till 12 servo objekt kan skapas pa de flesta kort int pos = 0; // servons position sparas i variabeln pos void setup() { myservo.attach(13); // kopplar servo objektet till pin13 } void loop() { for(pos = 0; pos <= 170; pos += 5) // starta fr 0 och hoppa med 5 grader tills 170 grader { myservo.write(pos); // skriv till servon de olika positionerna delay(5); // pausa 5ms } for(pos = 170; pos>=10; pos-=5) // samma tillbaka { myservo.write(pos); delay(5); } }
Servo med knapp
Mål: Att kunna styra positionen på en servo då man trycker på en knapp
Teori: Arduino läser tryckknappen på pin 2 hela tiden. Då knappen inte är intryckt så är pin 2 kopplad till ground (LOW) och när knappen trycks in så kopplas pin 2 till 5V (HIGH). Resistorn på 10 kiloohm är till för att undvika kortslutning.
I koden styrs servon beroende på tryckknappens läge.
fritzing layout
Arduino koden
#include <Servo.h> // inkludera servo biblioteket Servo myservo; // skapa servo object int button; // en variabel för att spara knappens värde (på eller av) void setup() { myservo.attach(13); // kopplar servo objektet till pin13 pinMode(2, INPUT); // definiterar pin2 som input } void loop() { button = digitalRead(2); // läs pin2 (på eller av) if(button == HIGH){ // om knappen på myservo.write(90); // rotera servon till 90 grader } else if(button == LOW){ // om knappen av myservo.write(0); // rotera servon till 0 grader } }