Circuit design – RGB Leds
Här har ni en Circuit design som jag har gjort. Med hjälp av min förståelse på rätt koppling även kodning samt att använda Arduino på rätt sätt kommit fram med denna digitala krets. Kodning gjordes med hjälp av block på Tinkercad Circuits som du hittar på Autodesk. I fortsättningen under detta inlägg ska förklara hur jag har gjort, så du kan lära dig något nytt för din egna utveckling.
START-Kopplingen
Du börjar med att ta fram ditt Arduino Uno R3 och en bredboard. Arduino för att göra kopplingen till hela kretsen och bredboarden för att vi enklare ska kunna koppla ihop kretsen, effektivare och mera tydligt. Jag valde att sätt ihop allt på detta sätt som du ser på denna bild och ovanför eftersom jag enklare kan koppla ihop sladdar och sådant som kan komma i vägen. Det ser även bättre ut att koppla ihop den på bredden än att göra det på längden nästan som i verkligheten. Det är även så att för mig tycker jag att det är inga problem om jag inte tydligt ser vad som står eftersom det är snett. Men för mig är det inga problem att vrida på huvudet lite grann.
För att kretsen ska fungera så måste vi kunna koppla upp sladdarna på rätt sätt i ett Arduino Board. Som du ser på bilden så har jag en svart och en röd kabel vid – och + polen i högra hörnet nedåt. Den röda sladden rör sig från + polen till 5V på Arduino board och den svarta sladden från – polen till GND (Ground) på Arduino. För vi även under processen enklare ska förstå vad är vad så ändrar vi färg på sladdarna till de respektive, alltså röd = + (Positivt) och svart = – (Negativt). I denna digitala krets behövs just denna typ av koppling för att de pushbuttoms jag utgått ifrån fungerar rätt. För att som du ser finns det en annan röd sladd på andra sidan av bread boarden som är kopplad från ena + polen till den andra. Detta ska finnas för att energin som tar sig från 5V pin genom sladen till bredboarden ska även föras genom den andra sladden upp till överdelen på bredboarden som där ger energin till pushbuttoms till att fungera. Den negativa sladden finns med för att resistorerna till dessa pushbuttoms ska fungera, alltså är denna uppkoppling viktig för att en digital krets med pushbuttoms ska fungera (iallafall i denna digitala krets).
Här har du hur jag har kopplat ihop mina pushbuttoms till den digitala kretsen. De pushbuttoms finns på de högra sidan av RGB leden där det fanns plats på bredboarden. Uppkopplingen är simple att göra men även komma ihåg för andra kopplingar av digitala kretsar. Så först sätter du dit fyra pushbuttoms med fyra resistorer vid högra under benet på varje pushbuttom, där resistorerna ska vara 220 ohm och glöm inte bort att resistorernas underdel ska vara kopplad till den negativa sladden vid – polen som du ser. Om du tidigare kommer i inlägget kommer ihåg att jag hade lagt till en sladd vid vänstra delen på bredboarden som gick från ena + polen till den andra + polen så kommer du nu förstå varför. För att om du kollar på pushbuttoms så ser du fyra positiva sladdar som är kopplad till det vänstra övre benet på varje pushbuttoms som även är kopplade till bredboardens övre + pol. Som tidigare förklarat har jag gjort så för att energin ska kunna ta sig från Arduino (5V) till bredboarden sedan runt hela bredboarden till pushbuttoms positiva sladdar. Varje resistor har en negativ sladd som du i andra bilden kan se är kopplade till de digital pins som med hjälp av kodning ska kunna tydligt utse vilken knapp ska kunna fungera till den rätta pin. Den första pushbuttom till vänster är kopplad till pin 7, den andra till pin -6, sedan -5 och sist -3. Alltså i kodningen kommer jag kunna göra så att programmet vet vilken pin ska fungera till vilken pushbuttom när den används, vilket du i kodningen snart kommer få reda på hur.
Här som du ser har jag utgått ifrån fyra RGB led och alla är kopplade på samma sätt. Varje RGB led som du ser har tre sladdar som är kopplade till de digital inputs pin som är -11 -10 -9, där den röda färgen är kopplad till pin -11, blå till pin -10 och grön till pin -9. Varför de sladdarna är kopplad på de sättet är för att RGB led färgerna ska bli korrekta då röd kommer först blå sedan grön, annars om du väljer färg låt säga blå så kan det bli rosa istället (har ej gjort någon undersökning om då blå blir till rosa om du har i fel pin, men gav ett exempel på vad fel pin kan leda till) I en kodningen. Men om du sätter in de i rätt pin, i rätt ordning kommer du få den korrekta pattern 255, 0, 0, så att du får den färgen du väljer att ha i kodningen. Men det räcker inte bara med att du lägger in den i rätt pin du måste även veta vilka färger är vad, utav de fyra benen som en RGB led har. Som du ser är röd på det första benet (längst ut till vänster) eftersom det benet är röd (R), därefter kommer cathode som är negativ där vi inte har den kopplad till en number pin men istället ground pin. Bredvid den kommer blå färg till det blåa benet (B) och sist men inte minst har vi gröna benet (G) och alla är kopplad till rätt pin och rätt ordning. Tre av dessa ben har resistorer utan en, såklart eftersom det enda benet är negativ och den ska inte ha resistor för den behöver inte en spänning som de andra benen. Spänningen vilket vi tar hjälp av en resistor ska vara 220 ohm, detta är den perfekta spänningen för en sådan RGB led så den inte exploderare eller så att inte ljuset blir för
svagt.
Kodning
Så här ser kodningen för min digitala krets och varje kodnings ruta ska fungera för varsin pushbuttoms eftersom de är fyra. Vi börjar med den första längst upp till vänster, du börjar med att göra en variable som du kan kalla för “PushButtom” eller “Knapp” eller “ColorButtom” du gör hur du vill så länge man vet att det är en knapp. Sedan så drar du ut en “set “ColorButtom” som du ska utgå ifrån när du kopplar ihop kodningen för en knapp. Därefter så drar du in en block ifrån input, som du kopplar ihop med din variable för att den ska veta att denna kodningen kommer fungera till den knappen som är kopplad till digital pin 7. Som du ovanpå på bilden ser så är den första rutans digital pin kopplad till pin 7, därefter så drar du in en block ifrån control för att vi ska kunna kontrollera hela processen på rätt sätt och denna block kallas för “if then else”. Sedan så lägger du till en math block “1 < 1” i control mellan if och then som du ser på bilden ovan. Istället för att det ska stå 1 på math blocken så lägger du först till din variable för att du ska enkelt veta och någon annan vad som ska göras, och på den högra sidan lägger du till “HIGH”. Istället för att det ska vara en mindre än pil alltså “<” så ska du ändra det till “=”, detta innebär att “if” “colorbuttom” är lika med hög när knappen trycks och RGB leden börjat lysa. Nu kommer vi till kopplingen till RGB leden där vi drar in en block från “output” “set RGB led in pins 11, 10, 9 to color red” denna output fungerar just för en RGB led. Denna block drar du och lägger in den mellan If och else för att indikera att när knappen trycks och den blir lika med hög så kommer den bli till den färgen jag valt då jag även lagt till rätt pins i rätt ordning alltså pin 11, 10, 9 som du på bilden ser. Därefter har jag lagt till en control som fungerar så att det stoppar processen it ett par “millisekunder” jag har lagt det på 2 millisekunder, alltså när knappen trycks så slocknar det inte direkt då jag slutat trycka på knappen men efter 2 millisekunder. För att man tydligt ska se vad som pågår. Till slut har vi den sista blocken som kommer efter “else” control blocken och det är output blocken för RGB led. Denna block ska hjälpa så att när man har släppt knappen som man tryckt på så ska det bli osynligt igen. Det fungerade bara när jag la till en sådan block och gjorde den till svart färg för annars när jag har tryckt klart på knappen så blir den inte osynlig men ändrar mellan två olika färger, vilket jag ej va ute efter. Färgen för svart är 0, 0, 0 därför när du väljer svart färg så blir inte lampan färg men istället osynlig. Mina tre andra kodningar fungerar likadant som den första, men det finns skillnader som jag ska förklara. Varje kodning har en egen read digital pin som funkerar för en varsin knapp, på en av kodningarna har jag gjort så att när knappen trycks så lyser de vit istället. Om du kollar på den tredje kodningen under den första, så ser du att set RGB led kommer inte i den ordningen 11, 10, 9 men istället 10, 9, 11 detta har jag gjort så att färgen istället blir blå, eftersom pin 10 va kopplad till blå så blir blå dominant då jag har den först på min “set RGB led in pins”. Likadant för min fjärde kodning, för min fjärde knapp så har jag där bara ändrat på read digital pin men även ordningen på “ser RGB led in pins” till 9, 10, 11 så att den dominanta färgen istället blir “grön”. När du har gjort kodningen så trycker du på “Start Simulation” och testar om din digitala krets fungerar likadant som den jag har gjort.