Landningsbanan garage lampor (1 / 1 steg)
Steg 1: kod
Här är koden för systemet. Kolla kommentarerna i koden för mer information. Jag har försökt att se till att jag kommentera allt av vikt, men fråga gärna bort om det är något som inte är vettigt. Formateringen fungerar i Arduino programvara eller med en fast bredd teckensnitt./**************************************
* Program: runway v2.0 *
***************************************
* Beskrivning: *
* Flash 6 lysdioder på PWM portar i *
* ordna med en fade efter. *
* Justerbar ljusstyrka och *
* ' svans' längd. *
* Flash på börja kolla alla lysdioder *
* är verksamma. *
***************************************
* Användning: *
* Variabel "jämför" beslutar svansen *
* längd, större antal = större svans. *
* "maxbri" anger maximalt *
* ljusstyrka lysdioder, lägst *
* Det är desto snabbare cykeln kommer *
* fungerar så att den större "dly" *
* måste vara att hålla samma *
* ordnar kurs. *
**************************************/
byte led1 = 9. ledde portnummer
byte led2 = 10; alla på PWM-portar
byte led3 = 11;
byte led4 = 6;
byte led5 = 5;
byte led6 = 3;
byte led1bri = 0; LED ljusstyrka variabler
byte led2bri = 0;
byte led3bri = 0;
byte led4bri = 0;
byte led5bri = 0;
byte led6bri = 0;
byte jämför = 90. ljusstyrkan innan nästa led aktiveringen
byte maxbri = 128; maximal ljusstyrka på lysdioder. Jämför måste vara lägre än maxbri!
byte dly = 2; fördröjning för att sakta rutin, den lägre maxbri den
högre dly måste vara för att hålla samma rörelse
void setup()
{
pinMode (led1, produktionen); setup pin riktning
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
pinMode (led5, produktionen);
pinMode (led6, produktionen);
Flash alla lysdioder för att testa drift
digitalWrite (led1, hög); alla lysdioder på
digitalWrite (led2, hög);
digitalWrite (led3, hög);
digitalWrite (led4, hög);
digitalWrite (led5, hög);
digitalWrite (led6, hög);
Delay(1000); paus i 1 sekund
för (led1bri = 255; led1bri > 0; led1bri--)
{
analogWrite (led1, led1bri); blekna alla lysdioder samtidigt
analogWrite (led2, led1bri);
analogWrite (led3, led1bri);
analogWrite (led4, led1bri);
analogWrite (led5, led1bri);
analogWrite (led6, led1bri);
delayMicroseconds(750); kort fördröjning för snabb fade
}
digitalWrite (led1, låg); alla lysdioder iväg
digitalWrite (led2, låg);
digitalWrite (led3, låg);
digitalWrite (led4, låg);
digitalWrite (led5, låg);
digitalWrite (led6, låg);
Delay(500);
led1bri = maxbri; Prime led1 ljusstyrka
}
void loop()
{
huvudsakliga rutin, flashigt flashiga!
om (led1bri > 0) {led1bri--;} //decrement ledxbri om inte redan av
om (led2bri > 0) {led2bri--;}
om (led3bri > 0) {led3bri--;}
om (led4bri > 0) {led4bri--;}
om (led5bri > 0) {led5bri--;}
om (led6bri > 0) {led6bri--;}
om (led1bri == jämför) {led2bri = maxbri;} //if tidigare ledde på set ljusstyrka
om (led2bri == jämför) {led3bri = maxbri;} //set nuvarande ledde ljusstyrka för att
om (led3bri == jämför) {led4bri = maxbri;} //maximum i maxbri
om (led4bri == jämför) {led5bri = maxbri;}
om (led5bri == jämför) {led6bri = maxbri;}
om (led6bri == jämför) {led1bri = maxbri;}
analogWrite (led1, led1bri); utgång till lysdioderna
analogWrite (led2, led2bri);
analogWrite (led3, led3bri);
analogWrite (led4, led4bri);
analogWrite (led5, led5bri);
analogWrite (led6, led6bri);
Delay(DLY); paus innan du startar igen
}