Barnvänliga PuppyDuino 0,31 (5 / 7 steg)
Steg 5: känslighet utbildning - PuppyDuino 0.31
Kommer att potten
OK, nu har vi en valp som wags hennes svans när en sensor avläsning överskrider en förinställd hårdkodade tröskel vi bestäms av försök och misstag. Det är lugnt! Men om de omgivande ljusförhållandena ändras väldigt mycket vi kommer antagligen behöva ändra detta värde på koden och kompilera om igen. Det är inte så cool.
Vi ska fixa det på bara en minut genom att lägga till en justering knopp så att vi kan ändra detta värde i farten att matcha villkor. För detta kommer vi att använda en trim potentiometer eller trim potten, för att generera varierande värden som vi kan använda som våra wag tröskel. Berätta att en trim pott är bara ett variabelt motstånd är förenkling men att definitionen fungerar bra nog för vad vi gör här. När vi vrider ratten vi ändra motståndet av potten och ändra spänningen vid mellersta "torkar" PIN-koden.
Vi måste lägga till sist av komponenterna i våra bakbord som visas i ovanstående diagram och ladda upp denna lilla demo skiss. När du har den följetong bildskärmen öppna bör du se värden precis som vi såg från våra ljussensor i ett tidigare steg.
Vrid vredet genom bultpistol och du bör se siffrorna 0 till 1023. Vad sägs om det? Vi råkar bara behöver ett värde justerbar från 0 och 1023.
trimPot.ino
/*
trimPot.ino
Observera olika värden på wiper pin på trim potentiometer
*/
int potPin = 0;
int potValue;
void setup()
{
Serial.BEGIN(9600); Starta seriell kommunikation
}
void loop()
{
potValue = analogRead(potPin); läsa värdet på wiper
Serial.println(potValue); Skicka värdet att övervaka
Delay(300);
}
Är vi framme snart?
Svaret skulle bli ja. Vår krets är klar och detta är vår senaste skiss att ladda barn. Vi ska bara göra switcheroo med våra hårdkodade tröskelvärde för våra potten värde. Jag la några uttalanden som skrivs ut till seriell bildskärmen för att underlätta felsökning och testning. Dessa kan vara bortkommenterad genom att placera / / i början av raden om du inte behöver dem.
< /*puppyduino0_31.ino
valp viftar svansen när någon husdjur henne
servo svansen viftar När ljussensorn i skugga
Wag tröskel bestäms av värdet på potentiometer
*/
#include < Servo.h > //this import Servo biblioteket
Servo servo; skapa en Servo
int höger = 135; rätta omfattningen av Wiklund
int vänster = 180; vänstra omfattningen av Wiklund
int lightPin = 1; analoga pin ljussensor
int lightSensor = 0; initiera sensor värde till noll
int servoPin = 9; Servo kontroll pin
int jag = vänster; initiera jag till vänster
int potPin = 0; analoga pin läsa potten värdet
int potValue = 0; värdet av potten init till noll
void setup()
{
servo.attach(servoPin); Servo kontroll pin
Serial.BEGIN(9600); för att testa
}
void loop()
{
lightSensor = analogRead(lightPin); Läs ljussensor
potValue = analogRead(potPin);
seriell utgång för testning och felsökning
Serial.Print ("Pot:");
Serial.println(potValue);
Serial.Print ("Sensor:");
Serial.println(lightSensor);
IF(lightSensor > potValue)
{
Serial.println("Wagging!"); testa uttalande
Wag 3 gånger
för (int j = 0; j < = 3; j ++)
{
sopa rätt till vänster en grad på på gång
för (jag = höger; jag < = vänster; i ++)
{
servo.write(i);
Delay(10);
}
Svep vänster till höger en grad på på gång
för (jag = vänster; jag > = höger; i--)
{
servo.write(i);
Delay(10);
}
}
}
annat
{
servo.write(0); svans i ner position
}
}