Stap 4: {alternatieve} Arduino Circuit + Code
Bedrading:
De bedrading is hieronder weergegeven.
De amber LED heeft haar + lood aangesloten op Arduino pin digitale 11. De - lood is geaard.
De rode LED heeft haar + lood aangesloten op Arduino pin digitale 7. De - lood is geaard.
De zoemer heeft haar + lood aangesloten op Arduino pin digitale 4. De - lood is geaard.
De IR-afstandssensor had de voorsprong van de rode (+) aangesloten op Arduino 5V lijn.
De IR-afstandssensor had haar zwarte (-) leiding verbonden met Arduino gnd lijn.
De infraroodsensor van de afstand had de leiding van het geel / wit verbonden met Arduino analoge PIN 0.
Code:
De onderstaande code wordt opgehaald uit het "pimp je pompoen" of u kunt de schets nu downloaden.
----------------------------------------------------------------------------------
#define CANDLELED 11
#define REDLED 7
#define ZOEMER 5
#define SENSOR 4 //nvm niet gebruikt
#define PROXIMITY_THRESHOLD 85 / / wijzigt deze # als u wilt wijzigen van de gevoeligheid
#define PROXIMITY_CONSECUTIVE_READINGS 3 / / ik kan wijzen op toenemende dit misschien 5-8
#define BUZZER_FREQUENCY 38
#define FLICKER_INTERVAL 25
lange previousMillis = 0;
lange closeReadings = 0;
VOID Setup {}
pinMode (CANDLELED, uitvoer);
pinMode (REDLED, uitvoer);
pinMode (ZOEMER, uitvoer);
pinMode (SENSOR, INPUT); nvm niet met behulp van
delay(1000); Toestaan dat de sensor van de nabijheid om te initialiseren
}
void loop {}
Als (analogRead(0) > PROXIMITY_THRESHOLD) / / Is iemand dicht?
{
closeReadings ++;
Als (closeReadings > = PROXIMITY_CONSECUTIVE_READINGS) / / n opeenvolgende "close" lezingen eisen alvorens in de modus van het kwaad. Hiermee voorkomt u dat weinig blips van de zoemer.
{
digitalWrite (CANDLELED, laag);
digitalWrite (REDLED, hoge);
Toon (ZOEMER, BUZZER_FREQUENCY);
}
}
anders
{//regular kaars flikkeren. Op basis van Arduino voorbeeld BlinkWithoutDelay.
noTone(BUZZER);
digitalWrite (REDLED, laag);
closeReadings = 0;
unsigned long currentMillis = millis();
Als (currentMillis - previousMillis > FLICKER_INTERVAL)
{
previousMillis = currentMillis;
analogWrite (CANDLELED, willekeurige (0, 256));
}
}
}