Stap 8: Arduino voorbeeldcode
Hier is sommige Arduino voorbeeldcode die u kunt gebruiken.
U moet bepaalde waarden te kalibreren, hoeft uw Setup aanpassen.
#include
Servo myservo; maken van servo-object om te bepalen van een servo
int GreenLedPin = 8; Groene LED aangesloten op digital pin 8 int RedLedPin = 9; Rode LED aangesloten op digital pin 9 int BlueLedPin = 10; Blauwe LED aangesloten op digital pin 10
int analogPin = 0; fotoweerstand aangesloten op analoge pin 0 int GreenVal = 0; variabele voor het opslaan van de waarde van gereflecteerde groen licht int RedVal = 0; variabele voor het opslaan van de waarde van reflecterend rood licht int BlueVal = 0; variabele voor het opslaan van de waarde van reflecterend blauw licht
int GreenRedDifference = 0; int GreenBlueDifference = 0;
int GreenRedLockCode =-31; vergrendelen van waarde int GreenBlueLockCode = 47; Lock waarde
int gevoeligheid = 5; instellen van de gevoeligheid van de sensor van de kleur
void setup {myservo.attach(6); / / hecht de servo op pin 6 aan de servo-object
Serial.begin(9600); Setup seriële pinMode (GreenLedPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer pinMode (RedLedPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer pinMode (BlueLedPin, uitvoer); Hiermee stelt u de digitale pen als uitvoer}} void loop {delay(1000); digitalWrite (GreenLedPin, hoge); / / sets van de groene LED uit digitalWrite (RedLedPin, hoge); / / sets van de rode LED uit digitalWrite (BlueLedPin, hoge); / / sets van de blauwe LED uit delay(1000); / / wacht een tweede digitalWrite (GreenLedPin, laag); / / de groene LED sets op delay(100); GreenVal = 1023 - analogRead(analogPin); Lees de invoer pin Serial.println(); Serial.Print ("groen"); Serial.println(GreenVal); debug waarde delay(1000); wacht op een tweede digitalWrite (GreenLedPin, hoge); Hiermee stelt u de groene LED uit delay(1000); wacht een seconde
digitalWrite (RedLedPin, laag); Hiermee stelt u de rode LED op delay(100); RedVal = 1023 - analogRead(analogPin); Lees de input pin Serial.print ("rood"); Serial.println(RedVal); debug waarde delay(1000); wacht op een tweede digitalWrite (RedLedPin, hoge); Hiermee stelt u de rode LED uit delay(1000); wacht een seconde
digitalWrite (BlueLedPin, laag); Hiermee stelt u de blauwe LED op delay(100); BlueVal = 1023 - analogRead(analogPin); Lees de input pin Serial.print ("blauw"); Serial.println(BlueVal); debug waarde delay(1000); wacht op een tweede digitalWrite (BlueLedPin, hoge); de blauwe LED vertrekt
GreenRedDifference = GreenVal - RedVal; Serial.Print ("groen-rood Difference"); Serial.println(GreenRedDifference); debug waarde GreenBlueDifference = GreenVal - BlueVal; Serial.Print ("groenblauwe Difference"); Serial.println(GreenBlueDifference); debug waarde
if((ABS(GreenRedLockCode-GreenRedDifference) < gevoeligheid) & & (abs(GreenBlueLockCode-GreenBlueDifference) < gevoeligheid)) //compare gemeten kleurwaarde code waarde {Serial.println("Unlock"); / / ontgrendelen van het vak myservo.write(45);} anders {Serial.println("Lock"); / / vergrendelen van de doos myservo.write(135);}
delay(2000); }