Étape 8: Exemple de Code de l’Arduino
Voici un exemple de code Arduino que vous pouvez utiliser.
Vous aurez besoin d’ajuster certaines des valeurs de l’étalonner à votre configuration.
#include
Servo myservo ; Créez l’objet servo pour contrôler un servo
int GreenLedPin = 8 ; LED vert relié à la broche numérique 8 int RedLedPin = 9 ; LED rouge relié à la broche numérique 9 int BlueLedPin = 10 ; LED bleue relié à la broche numérique 10
int analogPin = 0 ; photorésistance connectée à la broche analogique 0 int GreenVal = 0 ; variable pour stocker la valeur de lumière verte réfléchie int RedVal = 0 ; variable pour stocker la valeur de lumière rouge int BlueVal = 0 ; variable pour stocker la valeur de la lumière bleue
int GreenRedDifference = 0 ; int GreenBlueDifference = 0 ;
int GreenRedLockCode = -31 ; verrouiller la valeur int GreenBlueLockCode = 47 ; valeur de verrouillage
sensibilité de l’int = 5 ; Réglez la sensibilité du capteur couleur
void setup() {myservo.attach(6); / / attache le servo sur la broche 6 à l’objet de servo
Serial.Begin(9600) ; le programme d’installation série pinMode (GreenLedPin, sortie) ; définit la broche numérique comme sortie pinMode (RedLedPin, sortie) ; définit la broche numérique comme sortie pinMode (BlueLedPin, sortie) ; définit la broche numérique en sortie}} void loop() {delay(1000) ; digitalWrite (GreenLedPin, élevé); / / définit la LED vert éteint digitalWrite (RedLedPin, élevé); / / définit la LED rouge hors digitalWrite (BlueLedPin, élevé); / / définit la LED bleue hors delay(1000); / / attend un deuxième digitalWrite (GreenLedPin, basse); / / définit la LED verte sur delay(100) ; GreenVal = 1023 - analogRead(analogPin) ; lire l’entrée pin Serial.println() ; Serial.Print ("Green") ; Serial.println(GreenVal) ; delay(1000) valeur de débogage ; attend une seconde digitalWrite (GreenLedPin, élevé) ; définit le LED vert éteint delay(1000) ; attend une seconde
digitalWrite (RedLedPin, basse) ; définit la LED rouge sur delay(100) ; RedVal = 1023 - analogRead(analogPin) ; lire l’entrée pin Serial.print ("Red") ; Serial.println(RedVal) ; delay(1000) valeur de débogage ; attend une seconde digitalWrite (RedLedPin, élevé) ; définit la LED rouge au large de delay(1000) ; attend une seconde
digitalWrite (BlueLedPin, basse) ; définit la LED bleue sur delay(100) ; BlueVal = 1023 - analogRead(analogPin) ; lire l’entrée pin Serial.print ("bleu") ; Serial.println(BlueVal) ; delay(1000) valeur de débogage ; attend une seconde digitalWrite (BlueLedPin, élevé) ; la LED bleue se met
GreenRedDifference = GreenVal - RedVal ; Serial.Print ("différence de vert-rouge") ; Serial.println(GreenRedDifference) ; déboguer la valeur GreenBlueDifference = GreenVal - BlueVal ; Serial.Print ("différence de vert-bleu") ; Serial.println(GreenBlueDifference) ; valeur de débogage
if((ABS(GreenRedLockCode-GreenRedDifference) < sensibilité) & & (abs(GreenBlueLockCode-GreenBlueDifference) < sensibilité)) //compare mesurée à la valeur de couleur à la valeur de code {Serial.println("Unlock"); / / déverrouiller la boîte myservo.write(45);} else {Serial.println("Lock"); / / serrure de la boîte myservo.write(135);}
Delay(2000) ; }