Nybörjare Arduino (7 / 15 steg)

Steg 7: Blekna lysdioder med AnalogWrite

Ibland vi vill styra ljusstyrkan av en LED, i så fall kan vi använda ett kommando som kallas analogWrite(). analogWrite fungerar genom att vrida en LED på och av mycket snabbt, så snabbt att våra ögon inte uppfattar flimmer. Om en LED tillbringar halva sin ledighet och hälften av sin tid på, att så de visas hälften så ljusa. Denna teknik kallas puls bredd modulering (PWM), det används om och om igen i elektronik eftersom det tillåter oss att styra en komponent i en "analog" sätt med hjälp av en digital pin. Inte alla digitala stift på Arduino kan göra PWM, om du tittar noga på din Arduino, ser du att vissa stift har en "~" bredvid dem (stift 3, 5, 6, 9, 10, 11), dessa är PWM aktiverat stift.

Binda upp en av dina LEDs till en PWM aktiverat pin använde jag stift 9. Försök att köra blink skissen från förr, men Använd analogWrite istället för digitalWrite för att vända på LED (se skiss nedan). analogWrite() tar två argument: pin-kod och nivån på ljusstyrkan (mellan 0 och 255).

LED blinkar (halv ljusstyrka)

int ledPin = 9; //the Arduino stift som är ansluten till LED

void setup() {
pinMode (ledPin, produktionen); / / initiera PIN-koden som en utgång
}

void loop() {
analogWrite (ledPin, 255); //turn ledde på på full ljusstyrka (255/255 = 1)
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (ledPin, låg); //turn LED av
fördröjning (1000); //wait en sekund

analogWrite (ledPin, 191); //turn ledde på på 3/4 ljusstyrka (191/255 ~ = 0,75)
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (ledPin, låg); //turn LED av
fördröjning (1000); //wait en sekund

analogWrite (ledPin, 127); //turn ledde på på halv ljusstyrka (127/255 ~ = 0,5)
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (ledPin, låg); //turn LED av
fördröjning (1000); //wait en sekund

analogWrite (ledPin, 63); //turn ledde på på en fjärdedel ljusstyrka (63/255 ~ = 0,25)
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (ledPin, låg); //turn LED av
fördröjning (1000); //wait en sekund
}

Prova att ändra ljusstyrkan i analogWrite kommandon att se hur det påverkar ljusstyrkan på din LED.

Nästa ska vi skriva koden så att ljusstyrkan ramper smidigt från hela vägen upp till full ljusstyrka. Vi kunde kopiera samma bit kod:

analogWrite (ledPin, ljusstyrka);
fördröjning (5), //short dröjsmål

ljusstyrka = ljusstyrka + 1;

Om och om igen (255 gånger), ökande ljusstyrka av en varje gång. Här är vad det skulle se ut:

LED blinkar (halv ljusstyrka)

int ledPin = 9; //the Arduino stift som är ansluten till LED

void setup() {
pinMode (ledPin, produktionen); / / initiera PIN-koden som en utgång
}

void loop() {
int ljusstyrka = 0;

analogWrite (ledPin, ljusstyrka), //brightness = 0
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

analogWrite (ledPin, ljusstyrka), //brightness = 1
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

analogWrite (ledPin, ljusstyrka), //brightness = 2
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

analogWrite (ledPin, ljusstyrka), //brightness = 3
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

analogWrite (ledPin, ljusstyrka), //brightness = 4
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

analogWrite (ledPin, ljusstyrka); //brightness = 5
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

analogWrite (ledPin, ljusstyrka); //brightness = 6
Delay(5); / / kort fördröjning
ljusstyrka + = 1;

hålla upprepa tills ljusstyrka = 255 (full ljusstyrka)
}

Eller kan vi använda en for-loop igen att göra koden mer koncis. Jag har två öglor, första ramperna LED upp från utanför (0) till full brightness(255) i följande skiss:

för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {

analogWrite(ledPin,brightness);
Delay(5);

}

Den andra för loop ramper ner från full ljusstyrka på off:

för (int ljusstyrka = 255, ljusstyrka > = 0; ljusstyrka--) {

analogWrite(ledPin,brightness);
Delay(5);

}

(delay(5) används för att bromsa vissna, så tar det 5 * 256 = 1280ms = 1.28seconds)

I den första raden, använder vi "brightness--" för att berätta det för loop minska värdet för ljusstyrka med 1 varje gång loopen upprepas. Lägg också märke till hur slingan kommer att pågå till ljusstyrka > = 0, med hjälp av > = istället för > vi ta siffran 0 i området.

LED fade

int ledPin = 9; //the Arduino stift som är ansluten till LED

void setup() {
pinMode (ledPin, produktionen); / / initiera PIN-koden som en utgång
}

void loop() {
ramp ledde till full ljusstyrka (0 till 255)
för (int ljusstyrka = 0; ljusstyrka < 256; ljusstyrka ++) {
analogWrite(ledPin,brightness);
Delay(5);
}

Delay(1000); / / vänta en sekund

ramp ledde ner till ingen ljusstyrka (255 till 0)
för (int ljusstyrka = 255, ljusstyrka > = 0; ljusstyrka--) {
analogWrite(ledPin,brightness);
Delay(5);
}

fördröjning (1000); //wait en sekund
}

Och här är hur det ska se ut (denna simulering är inte riktigt lika bra, men du får idén). Försök redigera förseningar för att se hur det påverkar hastigheten på ramperna.

Se Steg
Relaterade Ämnen

Trafikljus [nybörjare Arduino projekt]

detta är en nybörjare projekt för Arduino. Jag använder Arduino Uno men bör fungera med liten eller ingen förändring på andra arduino modeller.Ställa in hårdvaran är mycket enkelt. Detta projekt är mer av ett verktyg för att lära sig hur man programm...

Blinky dumskalle (nybörjare Arduino projekt)

Detta är bara en kul liten tillägg till ditt skrivbord.Tack till min syster för att göra papper kub och hår!Steg 1: Samla dina leveranser.Steg 2: Rita en rektangel som är 2 1/2 X 10 "Steg 3: Rita linjer som är 2 1/2 apart.Steg 4: Dra 2 mer rutor och...

En nybörjare Arduino projekt: Tri Colour by en Bi färg LED

Hej och Välkommen till min 7th instructable. Denna gång jag leker med min nya TRduino duemilanove. Faktiskt det är en klon av Arduino görs av Thinnkware och har ATMega 328.Arduino är en mycket bra programmerare och det är också öppen källkod (sak jag...

Nybörjare Arduino - med en 1,8 tums TFT-skärm

Detta är din inledande guide till att använda en 1.8 i TFT-skärm med en Arduino. Jag gillar 1,8 i displayen för dess liten storlek och låg kostnad. Jag fick min för ca $10 på ebay, här. Det kommer inte med instruktioner men med lite forskning och mix...

DIY Home Automation för nybörjare. Absolut ingen kodning eller lödning behövs. Android/Arduino för att växla saker på och av

Denna instructiable är att den absoluta nybörjaren. Om du kan hantera en vass kniv utan att skära kan fingrarna av dig göra och anpassa denna hemautomation controller.Dessa instruktioner är också on-line på www.pfod.com.au under Android / Arduino för...

Arduino och LM35 baserade temperaturvakt för nybörjare

IntroduktionGör din egen temperaturövervakningssystem genom att använda Arduino och LM35 analoga temperatursensor. Detta är en mycket enkel DIY projekt för Arduino nybörjare. Alla åtgärder och krav som nämns i detalj nedan.Obs:- Denna handledning är...

Färg sensorer och Arduino seriell kommunikation för nybörjare

Hej alla, jag ska prata om färg sensorer: hur man bygger och kalibrera en och hur man använder det med seriell kommunikation genom en Arduino ombord.Det sista steget förklarar hur jag använde detta projekt för en Gimp (står för "GNU Image Manipulatio...

Arduino Intel Edison - nybörjare vattning Guide - Uncomplete

Hej alla,Här är min lilla guide för mitt projekt Intel IOT "Växt Rehab Installation".Min huvudsakliga koncept är att föra växter de bästa förutsättningarna att växa tack vare en Automatisk installation, drivs av Arduino - Intel Edison. Jag är ny...

Arduino trafikljus för nybörjare

setup() { // code in here runs once } voidloop() { // after the setup function, code in here runs over and over }T/FE5GXM7HKHPPROUTPUTT.MEDIUM.jpg"> * pinMode 8 / pinMode(3, OUTPUT); 4 / 3 HIGH 1 digitalWrite - uppdaterad till att omfatta trafiklj...

Handledning en: Arduino Switch ljus (nr Arduino programmering behövs) [nybörjare]

i detta Instructable syftar till nybörjare i magin i Arduino, kommer jag visa dig hur man gör en enkel krets som kräver ingen programmering att bygga. Jag att detta för barn som jag, som är förvånad med världen av datorer och elektronik och är ivriga...

Arduino projekt - E-Dice! (Nybörjare)

Tja, jag fick just min Arduino kit med posten igår, och jag var mycket glad att komma igång! Efter ungefär en timme eller två, jag bestämde mig att börja göra något roligt:En elektronisk tärning. Jag var tvungen att göra detta själv, eftersom det fan...

Kodgenerator för anpassade Android/Arduino menyer att slå Arduino utgångar på och av. Android/Arduino för nybörjare. Absolut ingen programmering krävs

Uppdatering: användare frågade för undermeny support. pfodApp alltid stött sub-menyerna men jag har lagt undermenyer till pfodDesigner. Den instructable Design A Custom menysystemet visar hur du använder pfodDesigner för att bygga en meny med underme...

Arduino för nybörjare, nu med data plottning, kontrolleras av Android, utan kodning, ingen lödning behövs.

IntroductionDetta instructable visar dig hur du kan läsa och skriva digital stiften på din Arduino Uno och läsa värden från de analoga pins alla styrs från din Android mobil utan att göra någon kodning. Hela projektet är plug and play. Ingen lödning...

Enkelklick på/av från din Android mobil med hjälp av Arduino och pfodApp. Arduino för nybörjare

IntroduktionDetta instructable visar hur du kan byta en Arduino utgång på och bort från din Android mobil med bara ett klick på ikonen pfodApp . Lägga till ett relä som drivs av denna utgång för att växla den riktig hårdvaran. Ingen Android kodning k...

SUPER ENKEL NYBÖRJARE ROBOT II (ARDUINO UNO VER.)

Detta "vänners kompatibla är baserad på min ganska populära SUPER enkel nybörjare ROBOT" vänners kompatibla. Efter många, många förfrågningar att tillhandahålla en uppdaterad version Arduino, är här det!Jag skapade detta Instructable, och dess f...

Arduino OLED termometer och Hygrometer med DHT11 för nybörjare

Hej! Jag ska visa dig hur man gör en Arduino OLED termometer och hygrometer * med DHT11.OLED vi använder idag är 1.3″ tum i storlek, funktioner 128 × 64 pixlar och använder SPI bussen. På nästa steg hittar du mer nyttig information om OLED tech och d...

Hemautomation (för nybörjare) med Arduino och Bludrinodroid

Detta är ett bra projekt för nybörjare på hemautomation. Bludrinodroid är en fantastisk app som inte många vet om id bra för nybörjare till proffs. Jag hoppas du njuta av projektet!Steg 1: Delarna De delar du behöver är:1) en Arduino2) en Bluetooth-e...

En nybörjares guide till Arduino

Efter några år av experimentera med Arduino, beslutade jag att det är dags att dela den kunskapen har jag fått. Så jag här går, en guide till Arduino, med nakna grunderna för nybörjare och lite mer avancerade förklaringar för personer som är något me...

Arduino nybörjare och grundläggande elektronik Kit Primer

lärde jag mig att en av mina systerdöttrar hade ett intresse för programmering. Hon arbetade med robotics på gymnasiet och har en sommar praktikplats där de hade Arduinos. Jag tror att hon kunde låna en Arduino för att experimentera med hemma men var...