Barnvänliga PuppyDuino 0,31 (3 / 7 steg)
Steg 3: Pet mig! Att göra en petting sensor
Se ljuset
Nu behöver vi ett sätt att upptäcka när PuppyDuino blir husdjur. Vi kommer att göra en ljussensor (eller mörk sensor beroende på ditt perspektiv) att upptäcka en förbigående hands skugga.
Ingrediens X av sensor är ett fotomotstånd som blir mindre motståndskraftig i ljusare ljus. Vi kommer tråd detta i serie med ett vanligt ol ' fasta motstånd och Arduino mäta spänningen på punkten mellan två. Som motståndet kommer förändringar i fotomotstånd så spänningen på den mittpunkten. Att förändring är hur vi känner en hand (shadow) passerade över Puppyduinos huvud.
Arduinoen kommer att testa denna spänning på en analog stift. Analoga stiften på Arduino tolka 0V till 5V som ett tal mellan 0 och 1023. Sensor kommer tillbaka några nummer i fullt dagsljus och några andra nummer i skugga beroende på de komponenter som används och ljusförhållandena i våra arbetsyta. Vi måste också se dessa nummer så vi använder den seriella Monitor i Arduino IDE för att kika på vad PuppyDuino avkänning.
Låt oss lägga upp lightSensor1 skissen och klicka på ikonen längst till höger på Arduino IDE. Det kommer att öppna den Serial Monitor. Vi kommer att skicka värden från våra ljussensor tillbaka från Arduino till seriell bildskärmen med uttrycket Serial.println(lightSensor).
lightSensor1.ino
/*lightSensor1.ino
Låt oss kika på värden från våra ljussensor
*/
int lightPin = 1; analoga pin ljussensor
int lightSensor = 0;
void setup()
{
Serial.BEGIN(9600); Starta seriell kommunikation (match värde seriell övervaka)
}
void loop()
{
lightSensor = analogRead(lightPin); få värdet ljussensor
Serial.println(lightSensor); avtrycken sensoren värde att övervaka
Delay(300);
}
På tiden skrev jag denna gruva läsa cirka 215 i ljus och sköt upp till 500 + i skugga. Du behöver dessa värden från bildskärmen följetong i en minut så skriv dem ner. Jag kommer stoppade mig lite och använde 400 för mörka värdet.
Ljussensor värde i ljus 215
Ljussensor värde i skugga 400
Att få en reaktion
Slutligen vill vi PuppyDiuno till wag henne svans men för nu Låt oss bara blinka ombord LED ansluten till stift 13. Ladda upp lightSensor2 skiss och titta på den LED blinkar när du lämnar passerar över ljussensorn.
Vår programmering logik går ungefär så här
Upprepa detta för evigt
- kolla ljussensor värde
- om ljus sensor värde > kända skuggvärdet, sedan blinkar LED
- om inte, ledde bort
lightSensor2.ino
/*lightSensor2.ino
Låt oss kika på värden från våra ljussensor
då blinka en LED när den upptäcker en skugga
*/
int lightPin = 1; analoga pin ljussensor
int lightSensor = 0; initiera sensor värde till noll
int ledde = 13. ledde pin
int shadowValue = 400. lite mindre än min lägsta observerade skuggvärdet
ändra detta för att matcha dina förutsättningar
void setup()
{
Serial.BEGIN(9600); Starta seriell kommunikation
pinMode(led,OUTPUT); ställa in vår stift ledde till produktionen läge
}
void loop()
{
lightSensor = analogRead(lightPin); läsa värdet från sensorn
Serial.println(lightSensor); Skicka sensor värde att övervaka
IF(lightSensor > shadowValue) //if skugga upptäcks därefter blink
{
digitalWrite (ledde, högt);
Delay(300);
digitalWrite (ledde, låg);
Delay(300);
}
annat //otherwise inte blinka
{
digitalWrite(led,LOW);
}
}
OK, får inte precis en svansen vifta men vi ett svar. Ha tålamod, i nästa steg vi ska gifta sig med vår svansen vifta kod till vår ljussensor kod.