Stap 5: Codering deel 3
Laat krijgen het echte vlees van deze code en duik in de hoofdlus. We weten dat we verschillende LED's willen oplichten overeenkomstig de afstand die uw hand van de sensor is. Dit betekent dat meer LEDs oplichten moeten wanneer minder licht is het raken van de sensor (zoals uw hand het omhoog dekt). Zoals we in de vorige lessen de ADC-waarde van het fotoweerstand circuit verhoogt met een afname van de licht zagen, dus we willen de structuur van onze code in een manier licht brandt meer LED's als de ADC waarde toeneemt.
Oef, was dat een hersenen bender! Laat een kijkje nemen op de code om te helpen ons te begrijpen wat we nodig hebben:
void loop(){<br> // default to LED's off 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 dit is logischer. Wij zijn voortdurend controleren van de waarde van de photoPin en vervolgens oplichten steeds meer LED's hoe hoger die waarde krijgt. Zoals u in de video op de volgende stap zien zult, deze standaardwaarden gehanteerd vrij welput voor mij met het omgevingslicht in de kamer, maar hebt om rond te spelen met deze waarden enigszins om hen aan de afstand van uw hand in de manier waarop u wilt reageren.