Närhet Sensing pumpa Carving (4 / 5 steg)
Steg 4: {alternativa} Arduino krets + kod
Ledningar:
Ledningar som visas nedan.
Amber LED har dess + bly ansluten till Arduino pin digital 11. -Är jordas.
Den röda lysdioden har dess + bly ansluten till Arduino pin digital 7. -Är jordas.
Summern har dess + bly ansluten till Arduino pin digital 4. -Är jordas.
IR-avstånd sensor hade dess Mönja (+) ansluten till Arduino 5V linje.
IR-avstånd sensor hade dess svart (-) leda ansluten till Arduino gnd linje.
IR-avstånd sensor hade den gul / vita ledningen ansluten till Arduino analog i pin 0.
Kod:
Koden nedan kopieras från "Pimpa din pumpa" eller du kan ladda ner skissen nu.
----------------------------------------------------------------------------------
#define CANDLELED 11
#define REDLED 7
#define SUMMERN 5
#define SENSOR 4 //nvm inte använder
#define PROXIMITY_THRESHOLD 85 / / ändra detta # om du vill ändra känslighet
#define PROXIMITY_CONSECUTIVE_READINGS 3 / / jag får föreslå ökar detta till kanske 5-8
#define BUZZER_FREQUENCY 38
#define FLICKER_INTERVAL 25
lång previousMillis = 0;
lång closeReadings = 0;
void setup() {
pinMode (CANDLELED, OUTPUT);
pinMode (REDLED, OUTPUT);
pinMode (Summer, OUTPUT);
pinMode (SENSOR, indata); NVM inte använder
Delay(1000); Tillåta Närhetssensor att initiera
}
void loop() {
om (analogRead(0) > PROXIMITY_THRESHOLD) / / är någon nära?
{
closeReadings ++;
om (closeReadings > = PROXIMITY_CONSECUTIVE_READINGS) / / kräver n i följd "Stäng" avläsningar innan du går in i onda läge. Detta förhindrar små ekon av summern.
{
digitalWrite (CANDLELED, låg);
digitalWrite (REDLED, hög);
tonen (Summer, BUZZER_FREQUENCY);
}
}
annat
{//regular candle flicker. Baserad på Arduino exempel BlinkWithoutDelay.
noTone(BUZZER);
digitalWrite (REDLED, låg);
closeReadings = 0;
osignerade långa currentMillis = millis();
om (currentMillis - previousMillis > FLICKER_INTERVAL)
{
previousMillis = currentMillis;
analogWrite (CANDLELED, random (0, 256));
}
}
}