PROJEKT SERVO
PROJEKT SERVO s 1 I det här projektet ska du koppla en krets som innehåller ett servo och skriva ett program som styr servot. Ett servo är en motor som kan rotera och ställas i olika lägen. Materiel Arduino dator servo kopplingsdäck kondensator 100 µf, elektrolytisk två lysdioder i olika färger två motstånd 220 Ω kopplingssladdar Gör så här 1. Koppla ihop Arduinon med datorn. 2. Koppla samman komponenterna på kopplingsdäcket enligt bilderna nedan. 3. Skriv in programkoden som finns på sidan 3. 4. Prova att din krets och ditt program fungerar som de ska. Elektronik
POWER ANALOG PROJEKT SERVO s 2 9V EXTERNAL POWER USB RESET RESET 3.3V 5V Vin A0 (D14) A1 (D15) A2 (D16) A3 (D17) A4 (D18) A5 (D19) DIGITAL 13 12 ~ 11 ~ 10 9 8 7 ~ 6 ~ 5 4 ~ 3 2 TX 1 RX 0 Beskrivning av elektroniken Servot har tre anslutningar: Kontroll. Är ofta orange. Via denna anslutning kan Arduinon styra till vilket läge servot ska rotera. Läget anges i grader. Servot monteras så att läge 90 grader är rakt fram, vilket innebär att läge 0 grader är åt vänster, och läge 180 grader är åt höger. Strömförsörjning. Är ofta röd och ska kopplas till 5 V på Arduinon. Denna ström driver servot. Signalerna som når servot via Kontroll kan ses som informationen om vilket läge servot ska ta, medan strömförsörjningen driver servots motor att inta detta läge. Jord. Är ofta svart/brun. Servot hanteras av ett så kallat bibliotek (engelska library). I ett bibliotek finns färdigskrivna funktioner som alla program kan använda sig av. Det enda som krävs är att du inkluderar dem i ditt program genom raden #include. Det bibliotek som du ska använda heter Servo. I kretsen ingår en så kallad kondensator. Den fungerar som ett litet uppladdningsbart batteri och genom att det är anslutet på det sätt som bilden visar hålls det alltid laddat. Kondensatorn hjälper till att leverera ström till kretsen när servot roterar, eftersom Arduinons strömförsörjning då riskerar att inte räcka till. Viktigt! Kondensatorns långa ben ska anslutas till 5 V, det korta till jord.
PROJEKT SERVO s 3 Programkod // funktioner för att hantera servot finns i biblioteket Servo #include <Servo.h> // servot är anslutet till port D10 int pinservo = 10; // används för att kommunicera med servot Servo myservo; void setup() { myservo.attach(pinservo); // ställ servot i läge 90 grader myservo.write(90); } void loop() { // ställ servot i läge 0 grader myservo.write(0); // vänta 1000 ms så att servot hinner rotera delay(1000); } // ställ servot i läge 180 grader myservo.write(180); // vänta 1000 ms så att servot hinner rotera delay(1000); Beskrivning av programkoden Raden Servo myservo; låter Arduinon prata med servot genom en variabel kallad myservo. I setup() talar vi om vilken port som servot är anslutet till på Arduinon: myservo.attach(pinservo); Arduinon ber servot att rotera till ett visst läge genom: myservo.write(180); där siffran 180 är vinkelvärdet i grader. Det är viktigt att programmet ger servot tid att rotera. Därför ligger det en delay()-funktion efter rotationen. I setup() roterar programmet servot till utgångsläget 90 grader. I loop() styr programmet servot så att det roterar och ställer sig i läge 0 grader. Sedan väntar programmet en sekund innan det låter servot rotera igen och ställa sig i läge 180 grader.
PROJEKT SERVO s 4 Uppgifter Nu har du kopplat, skrivit kod samt kontrollerat att allt fungerar, och det är dags att börja ändra i koden och kretsen. Detta gör du genom att arbeta med uppgifterna nedan. Tänk på att dokumentera ditt arbete och dina resultat enligt instruktionerna i uppgifterna så att din lärare kan se hur du arbetat och vad du lärt dig. 1. Ändra i programmet så att servot ställer sig i olika lägen. Pröva dig fram. Hur mycket kan servot rotera? Beskriv hur du prövade dig fram, vilka ändringar du gjorde och hur programmet nu fungerar. Använd begreppet myservo.write(). 2. Ändra tiden som programmet ger servot för att rotera. Undersök hur många millisekunder servot behöver för att vrida sig från ett läge till ett annat. Beskriv hur du prövade dig fram, vilka ändringar du gjorde och hur programmet nu fungerar. Använd begreppet delay(). 3. Skapa en loop där servot roterar och ställer sig i 3 4 olika lägen. Beskriv hur du ändrade programmet och hur det nu fungerar. Använd begreppen myservowrite(), loop() och delay(). 4. Koppla in två lysdioder med olika färg till utgångarna 6 och 7. Återgå till ursprungsprogrammet och ändra i det så att den ena lysdioden är tänd när servot är i läge 0 grader, och den andra lysdioden är tänd när servot är i läge 180 grader. Är du osäker på hur du ska styra lysdioderna, gå tillbaka till Projekt Ljus. Beskriv hur du tänkte, hur du skrev om programmet och hur du löste eventuella problem som uppstod under arbetet. Använd begreppen setup(), digitalwrite(), myservo.write() och delay().