Rotera servomotor med Arduino Uno och ändra färg på RGB led med kod
I den här artikeln visar jag hur du kan koppla ihop en Arduino Uno med en servomotor och få den att rotera med blockkod. Jag visar också hur du kan koppla ihop en RGB led med Arduinon så den ändrar färg i takt med rotationen av servomotorn.
Kopplingen av Arduinon och komponenterna
Jag skapade mina kretsar i simulatorn Tinkercad men självklart kan instruktionerna följas nästan likadant för verkliga fysiska komponenter. Från komponentlistan till höger började jag med att dra in själva Arduinon och en breadboard för att enklare hålla koll på mina kretsar och få lite struktur på arbetet som i bilden under.
Sedan kopplade jag ihop ~9 pinnen på Arduinon med den nedre långa plus raden på breadborden för att jag sedan ska kunna sända signaler genom kod till servomotorn. Jag kopplade också ihop GND (jord) till den nedre långa negativa raden och den övre negativa långa raden. Sedan drog jag också två kablar till rad nummer 4 och rad nummer 1 från pin 12 och pin ~11 till det övre stora området som du kan se på bilden nedan. Jag ändrade färg på “+” kablarna till röd och “-” kablarna till svart för att få mer struktur och i verkligheten brukar man använda de färgerna.
I nästa steg drog jag in en servomotor från komponentlistan och placerade den under breadborden. Jag kopplade ihop jord (GND) från den nedre långa raden med ground på servomotorn och kopplade ihop “+” från den nedre raden med signal eftersom det är den som kommer leda signalerna från Arduinon till servomotorn och styra rotationen. Den sista inmatningen på servomotorn kopplade jag ihop med 5V på Arduinon för att förse den med ström. På bilden nedan kan du se hur jag gjort om du inte förstår.
Efter det drog jag in två resistorer och kopplade ihop dem med kablarna från 12 och ~11 som på bilden nedan. På både resistorerna ändrade jag resistansen till 220 och ändrade till enheten Ohm (Ω).
Nu förser resistorerna rad 5 och rad 8 med ström så jag kan dra in en RGB led från komponentlistan och placera den så benet Red ligger på rad 5 och benet Green på rad 8. Jag behöver dessutom koppla ihop benet Cathode med med jord (GND) på den övre långa “-” raden. Här ser du på en bild hur det såg ut för mig:
Nu är alla kopplingar klara men om du trycker på “Start simulation” händer inget eftersom vi ännu inte förklarat för Arduinon genom kod hur den ska rotera servomotorn eller tända lampan, så vi går till nästa steg i denna artikel.
Blockkodningen
Nu är det dags att skapa lite blockkod så jag öppnar fliken “Code” uppe till höger. Jag skapar en variabel i fliken Variables som jag döper till “rotvar” men du kan döpa den till vad du vill. Sedan drar jag in ett “Set variable” block från samma flik och väljer variabeln jag nyss skapade. På värdet väljer jag 0 för att servomotorn ska ha rotationen 0 grader.
Efter det drar jag in en “Rotate servo on pin to” från fliken Output och placerar den under, den här kontrollerar rotationen på servomotorn baserat på variabeln vi har skapat. Välj pin 9 och från fliken Variables dra in din variabel och placera i rotationsvärdet. Sen drar du in två “Set pin” från Output som ska kontrollera strömmen till lamporna. På den första välj pin 11 och LOW och på den andra pin 12 och HIGH. Det kommer stänga av strömmen till benet Red och sätta på strömmen till benet Green så lampan lyser grönt.
Sedan drar jag in ett Wait block från fliken Control och väljer 2 sekunder. Det här blocket gör så att koden inte överlappar med koden efter. Sedan duplicerar jag allt jag gjort med jag blir tvungen att ändra några värden snart.
Jag ändrar värdet på den andra “Set variable” blocket till 90 för nu ska servomotorn rotera 90 grader. Sedan ändrade jag det första undre “Set pin” blocket till LOW så benet Green inte får någon ström och istället sätter jag pin 12 till HIGH så benet Red får ström och lampan nu ska lysa rött.
Så här ska det se ut om du har gjort allting korrekt, jag valde att inte kommentera andra delen av koden eftersom den är samma som den övre förutom att värdena var olika. Den här koden var ganska enkel så jag kommenterade i efterhand men på mer avancerad kod skulle jag kommenterat under arbetets gång för att hålla koll på all kods funktioner. En sak jag har lärt mig under det här arbetet som jag kan tipsa om är att man kan ändra vilken typ av komponenter man vill se i listan genom att ändra på fliken “Component Basic”. Om du väljer Arduino istället för Basic kan du se färdiga Arduino kretsar så jag använde den för att se hur man använder servomotorn innan jag visste hur det skulle kopplas.
Länk till mitt färdiga projekt ser du här: https://www.tinkercad.com/things/0d4zSshNMdt-skapa-digitala-kretsar-oskar-kasander/editel?sharecode=LwzdQjPEyd0q5u6mMi3ONSvE2-uyXzN8tcDHLsK-qlw