Étape 6: Étendre le code
Le code présenté ici devrait tous être assez simple si vous avez connaissance de code.
Méthode simple pour activer toutes les LEDs
void allOn() {}
int i ;
pour (i = 0; i < NUMBER_OF_LEDS; i ++) {}
digitalWrite (ledList [i], HIGH) ;
ledsOn [i] = 1 ;
}
}
Méthode simple pour désactiver toutes les LEDs
void allOff() {}
int i ;
pour (i = 0; i < NUMBER_OF_LEDS; i ++) {}
digitalWrite (ledList [i], faible) ;
ledsOn [i] = 0 ;
}
}
fonction d’assistance pour un tableau de la somme
sommation d’int (int array[]) {}
int somme = 0 ;
int longueur = sizeof(array)/sizeof(int) ;
int i ;
pour (i = 0; i < longueur; i ++) {}
Somme = somme + tableau [i] ;
}
retourner la somme ;
}
toutes les LED clignote. Si plus de 2 leds sont actuellement sur le cycle commence par les éteindre tous les
dans le cas contraire le cycle commence en les transformant tous sur.
void allFlashing (int delayLength) {}
Si {(summation(ledsOn) > 2)
allOff() ;
Delay(delayLength) ;
allOn() ;
Delay(delayLength) ;
} else {}
allOn() ;
Delay(delayLength) ;
allOff() ;
Delay(delayLength) ;
}
}
une méthode qui n’est pas réellement utilisée, mais pourrait être utile à l’avenir. Cette méthode va basculer selon la LED est actuellement
sélectionnée.
void toggleCurrentLed() {}
Si (ledsOn [stromgeführten] == 1) {}
digitalWrite (ledList [stromgeführten], faible) ;
ledsOn [stromgeführten] = 0 ;
} ElseIf (ledsOn [stromgeführten] == 0) {}
digitalWrite (ledList [stromgeführten], HIGH) ;
ledsOn [stromgeführten] = 1 ;
}
}
allume la LED actuelle
void currentLedOn() {}
digitalWrite (ledList [stromgeführten], HIGH) ;
ledsOn [stromgeführten] = 1 ;
}
s’éteint le voyant current
void currentLedOff() {}
digitalWrite (ledList [stromgeführten], faible) ;
ledsOn [stromgeführten] = 0 ;
}
Il s’agit d’une méthode qui rebondit qui semble envoyer une lumière de haut en bas
vos LEDs. Plutôt cool si vous me demandez. Assure le suivi d’une variable de direction
et tout ce que la Led actuelle étant allumée est pour s’assurer que l’interrupteur se trouve toujours en la
bonne direction.
Sub bounce (int delayLength) {}
Si (bounceDirection == 0) {}
Si (stromgeführten < NUMBER_OF_LEDS - 1) {}
currentLedOff() ;
stromgeführten ++ ;
currentLedOn() ;
Delay(delayLength) ;
} ElseIf (stromgeführten == NUMBER_OF_LEDS - 1) {}
currentLedOff() ;
stromgeführten--;
bounceDirection = 1 ;
currentLedOn() ;
Delay(delayLength) ;
}
} ElseIf (bounceDirection == 1) {}
Si (stromgeführten > 0) {}
currentLedOff() ;
stromgeführten--;
currentLedOn() ;
Delay(delayLength) ;
} ElseIf (stromgeführten == 0) {}
currentLedOff() ;
stromgeführten ++ ;
currentLedOn() ;
bounceDirection = 0 ;
Delay(delayLength) ;
}
}
}
Cette méthode vise actuellement à obtiennent le gradateur pendant que les environs obtiennent gradateurs.
La raison en est principalement pour réduire les interférences, comme dans le montage d’essai mis en place
la lumière émise par les LED est très facilement vu par la photorésistance, qui conduirait à
un comportement étrange.
Ces constantes devraient changer un peu pour votre circuit spécifique. Utilisez la fonction
Serial.println(analogRead(photoresistor)) ; pour afficher la valeur actuelle, et
déterminer les minimums et maximums approximatives.
void allFading() {}
int luminosité = map(analogRead(photoresistor), 255, 0, 450, 100) ;
int i ;
pour (i = 0; i < NUMBER_OF_LEDS; i ++) {}
analogWrite (ledList [i], luminosité) ;
}
}
Cette méthode transforme la lumière de vélo en une unité de mesure d’intensité lumineuse.
Le nombre de LEDs qui s’allument à un moment donné est indicatif de la luminosité, il est.
Les constantes couvrira généralement l’éclairage de la pièce standard avec tous les 5 LEDs
Ces constantes devraient changer un peu pour votre circuit spécifique. Utilisez la fonction
Serial.println(analogRead(photoresistor)) ; pour afficher la valeur actuelle, et
déterminer les minimums et maximums approximatives.
void photometer() {}
int luminosité = map(analogRead(photoresistor), 75, 450, 0, NUMBER_OF_LEDS) ;
int i ;
pour (i = 0; i < NUMBER_OF_LEDS; i ++) {}
Si (j’ai < luminosité) {}
digitalWrite (ledList [i], HIGH) ;
} else {}
digitalWrite (ledList [i], faible) ;
}
}
}
void loop() {}
Si (currentProgram == 0) {}
allOff() ;
} ElseIf (currentProgram == 1) {}
allOn() ;
} ElseIf (currentProgram == 2) {}
allFlashing(250) ;
} ElseIf (currentProgram == 3) {}
Bounce(100) ;
} ElseIf (currentProgram == 4) {}
allFading() ;
} ElseIf (currentProgram == 5) {}
PHOTOMETER() ;
}
}