Arduino ljus Theremin (5 / 10 steg)
Steg 5: Kodning del 3
Kan komma till det verkliga köttet av denna kod och dyka i huvudloop. Vi vet att vi vill olika lysdioder lyser upp utifrån avståndet bort din hand är från sensorn. Detta innebär att fler LED-lampor ska tändas när mindre ljus slår sensorn (som din hand täcker det upp). Som vi såg i tidigare lektioner ADC värdet av fotomotstånd kretsen ökar med en minskning av ljus, så vi vill att strukturera vår kod i en sätt lyser upp mer lysdioder som ADC värde ökar.
Puh, var det en brain-bender! Låt oss ta en titt på koden för att hjälpa oss att förstå vad vi behöver:
void loop() {< br > / / standard till lysdioder av
ledState(LOW,LOW,LOW,LOW,LOW,LOW);
Serial.println(analogRead(photoPin));
IF(analogRead(photoPin) > 100) {
ledState(LOW,LOW,LOW,LOW,LOW,HIGH);
}
IF(analogRead(photoPin) > 200) {
ledState(LOW,LOW,LOW,LOW,HIGH,HIGH);
}
IF(analogRead(photoPin) > 300) {
ledState(LOW,LOW,LOW,HIGH,HIGH,HIGH);
}
IF(analogRead(photoPin) > 400) {
ledState(LOW,LOW,HIGH,HIGH,HIGH,HIGH);
}
IF(analogRead(photoPin) > 500) {
ledState(LOW,HIGH,HIGH,HIGH,HIGH,HIGH);
}
IF(analogRead(photoPin) > 600) {
ledState(HIGH,HIGH,HIGH,HIGH,HIGH,HIGH);
}
}
Ahhhh, nu detta är vettigare. Vi kontrollerar ständigt värdet för photoPin och sedan lyser upp fler och fler LED desto högre värde får. Som du ser i videon på nästa steg, dessa standardvärden fungerat ganska bra för mig med det omgivande ljuset i rummet, men du kan behöva leka med dessa värden något för att få dem reagerar till distansera av din hand på det sätt du vill.