Beginner Arduino (9 / 15 stap)

Stap 9: Arduino functies

De volgende sketch vervaagt LED van rood naar groen naar blauw naar rood naar groen en zo verder...

 //RGB LED - fading between colors //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ for (int brightness=0;brightness<256;brightness++){ analogWrite(red, 255-brightness); analogWrite(green, brightness); delay(10); } for (int brightness=0;brightness<256;brightness++){ analogWrite(green, 255-brightness); analogWrite(blue, brightness); delay(10); } for (int brightness=0;brightness<256;brightness++){ analogWrite(blue, 255-brightness); analogWrite(red, brightness); delay(10); } } 

De schets boven werkt, maar er een heleboel herhaalde code is. We kunnen vereenvoudigen door het schrijven van onze eigen helper functie die verdwijnt van de ene kleur naar een andere kleur. Hier is wat de functie als zal kijken:

VOID fader (int color1, color2 int) {}

voor (int helderheid = 0; helderheid < 256; helderheid ++) {}
analogWrite (color1, 255-helderheid);
analogWrite (color2, helderheid);
Delay(10);
}

}

Laten we onderzoeken deze functie-definitie stuk voor stuk. De functie heet "fader" en duurt twee argumenten. Elk argument is gescheiden door een komma en een type in de eerste regel van de functie-definitie heeft verklaard:

VOID fader (int color1, color2 int) {}

We zien dat de argumenten fader accepteert allebei ints, en we de namen "color1" en "kleur2" als dummy variabelen voor onze functie-definitie gebruiken. De "leegte" verwijst naar het gegevenstype dat de functie retourneert, aangezien onze functie niet terugkrijgt iets (het voert gewoon opdrachten), zetten we het retourtype om te vervallen. Mochten we een functie maakt die twee getallen vermenigvuldigd en het product geretourneerd kan definiëren we het als volgt:

int vermenigvuldiger (int Getal1, getal2 int) {}

int product Getal1 = * getal2;
retourneren product;

}

Merk op hoe we hebt gedeclareerd int als het retourtype hier in plaats van leegte.

De ingewanden van de functie is spul wij voordien hebt gezien. Dat geldt ook voor lus die wij in onze laatste schets waren herhalen, maar de pin nummers zijn vervangen de color1 en kleur2 variabelen. Als we eisen:

Fader (rood, groen);

van de de Arduino loop, de Arduino evalueert de fader functie met color1 = rood en kleur2 = groen.

Om deze alle samen we de schets die met behulp van deze functie als volgt kunnen herschrijven, dit werkt precies hetzelfde als de schets aan de bovenkant van deze stap.

 //RGB LED - fading between colors //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ fader(red,green); fader(green,blue); fader(blue, red); } void fader(int color1, int color2){ for (int brightness=0;brightness<256;brightness++){ analogWrite(color1, 255-brightness); analogWrite(color2, brightness); delay(10); } } 

Gerelateerde Artikelen

Verkeerslichten [Beginner Arduino Project]

Verkeerslichten [Beginner Arduino Project]

dit is een beginners-project voor de Arduino. Ik ben met behulp van de Arduino Uno, maar zou moeten werken met weinig of geen wijzigingen op andere modellen van de arduino.Instellen van de hardware is zeer eenvoudig. Dit project is meer een trainings
Beginner Arduino - met behulp van een 1.8-Inch-TFT-Display

Beginner Arduino - met behulp van een 1.8-Inch-TFT-Display

Dit is uw inleidende gids voor het gebruik van een 1.8 in Duimtft vertoning met een Arduino. Ik houd van de 1.8 op display voor zijn kleine grootte en lage kosten. Ik heb de mijne voor ongeveer $10 op ebay, hier. Het komt niet met instructies maar me
Blinky Blockhead (beginner Arduino project)

Blinky Blockhead (beginner Arduino project)

Dit is enkel een pret weinig toevoeging aan uw bureau.Dank aan mijn zus voor het maken van de papieren kubus en de haren!Stap 1: Verzamel uw leveringen.Stap 2: Teken een rechthoek die is 2 1/2 X 10 "Stap 3: Tekent u lijnen die 2 1/2 uit elkaar.Stap 4
Lcd met gids van de Beginner Arduino interface

Lcd met gids van de Beginner Arduino interface

Deel te worden opgestart1. JHD162A LCD2. Arduino board3. potentiometer4. jumper dradenWat is LCD?LCD (vloeibare kristalvertoning) is de technologie die wordt gebruikt voor displays in notitieboekje en andere kleinere computers. Net als light - emitti
Een Beginner Arduino Project: Tri-Colour door een Bi-Colour LED

Een Beginner Arduino Project: Tri-Colour door een Bi-Colour LED

Hi en welkom op mijn 7e instructable. Ditmaal ben ik spelen met mijn nieuwe TRduino duemilanove. Eigenlijk het is een kloon van Arduino gemaakt door Thinnkware en hebben de 328 ATMega.Arduino is een zeer goede programmeur en het is ook open bron (het
Arduino Beginner en elementaire elektronica Kit Primer

Arduino Beginner en elementaire elektronica Kit Primer

ik leerde dat een van mijn nichtjes had een belang in de programmering.  Ze werkte met robotica op middelbare school en heeft een zomer stage waar ze Arduinos hadden.  Ik denk dat ze was in staat om te lenen van een Arduino om te experimenteren met t
Hoe maak je een LED 7-segment display met Arduino

Hoe maak je een LED 7-segment display met Arduino

Ik ga u tonen hoe te maken van een 7 segment display met LED's. Combineren met Arduino aftelproceduretijdopnemers, eenvoudige tekst, en meer te maken. Ik willen maken van de oorspronkelijke projecten. Ik zocht de hele instructables en als dit niet vi
Android praat met Arduino

Android praat met Arduino

dit project iets wijzigt de Google Android monster app genaamd "Bluetooth Chat" zodat u kunt een bericht typen in de Android app en die dezelfde boodschap op een LCD-scherm die is gekoppeld aan een Arduino Uno verschijnt.Functionaliteit: Android
Arduino - Theremin met 7 Segment LED-Display

Arduino - Theremin met 7 Segment LED-Display

In dit instructable, ik zal u tonen hoe maak je een eenvoudige speelgoed die combinatie van de LED flitser en de Theremin. We gonna met behulp van enkele elementaire elektronica gebouwd op de top van een Arduino. Het basisidee van de 7 Segment LED-Di
Gemakkelijk bouwen self balancing elektrische skateboard

Gemakkelijk bouwen self balancing elektrische skateboard

Wat is het?Dubbele wielen skateboard dat als een Segway werkt. Elektrische skateboards bestaan al met aangedreven achterwielen. Plan hier was om iets te bouwen als een Segway, maar in de vorm van een skateboard. Het weet welke kant is "up" via e
Arduibag: een aangesloten rugzak voor fiets renners

Arduibag: een aangesloten rugzak voor fiets renners

Arduibag is een aangesloten rugzak voor fiets renners. Het is ook een open source project gemaakt door twee gepassioneerde Franse jongens: Michaël D'AURIA en Stéphane DE GRAEVE.Als u weten meer over Arduibag ga dan wilt naar: http://www.arduibag.comH
Plot klok voor dummies.

Plot klok voor dummies.

Herzieningen:1. de DS1307 real-time klok module instructies toegevoegd.Dit is niet mijn idee, maar ik zal proberen aan te tonen hoe ik dit eindelijk werkt.De briljante jongens die maken deze spul, vergeet vaak dat er zijn idioten (zoals ik) rond, die
Low-Power pomp voor Gravity watertank

Low-Power pomp voor Gravity watertank

het ideeDit project startte als een test om te zien de minste energie nodig om water van de pomp in een gravity tank hoog van de grond. We wilden vinden de meest efficiënte pomp mogelijke, misschien slechts een paar watt. Het interessante deel leek d
Gekwetter Laser Tripwire met Webcam Capture

Gekwetter Laser Tripwire met Webcam Capture

Dit instructable zal u tonen hoe te bouwen van een laser tripwire dat kan twitter en pak een afbeelding van een webcam, evenals elk commando kun je in een bash-script.Dit instructable is eigenlijk vrij eenvoudig en is ook geschikt als een beginner ar