Étape 4: {autre} Arduino Circuit + Code
Câblage :
Le câblage est illustré ci-dessous.
L’ambre a LED sa + fil connecté à l’Arduino broche 11 numérique. Le - plomb est reliée à la terre.
La LED rouge a son + fil connecté à l’Arduino broche 7 numérique. Le - plomb est reliée à la terre.
Le buzzer a ses + fil connecté à la goupille de Arduino numériques 4. Le - plomb est reliée à la terre.
Le capteur de distance infrarouge avait son fil rouge (+) connecté à la ligne 5V Arduino.
Le capteur de distance infrarouge avait son fil noir (-) connecté à la ligne gnd Arduino.
Le capteur de distance infrarouge avait son câble jaune / blanc relié à Arduino analogique en pin 0.
Code :
Le code ci-dessous est copié à partir de "pimp votre citrouille" ou vous pouvez télécharger le croquis maintenant.
----------------------------------------------------------------------------------
#define CANDLELED 11
#define REDLED 7
#define BUZZER 5
#define SENSOR 4 //nvm ne pas à l’aide
#define PROXIMITY_THRESHOLD 85 / / modifier cette # pour modifier la sensibilité
#define PROXIMITY_CONSECUTIVE_READINGS 3 / / je puis me permettre ceci augmentant à peut-être 5-8
#define BUZZER_FREQUENCY 38
#define FLICKER_INTERVAL 25
long previousMillis = 0 ;
long closeReadings = 0 ;
void setup() {}
pinMode (CANDLELED, sortie) ;
pinMode (REDLED, sortie) ;
pinMode (BUZZER, sortie) ;
pinMode (entrée, capteur) ; ne pas utiliser de NVM
Delay(1000) ; Permettre au capteur de proximité initialiser
}
void loop() {}
Si (analogRead(0) > PROXIMITY_THRESHOLD) / / est une personne proche ?
{
closeReadings ++ ;
Si (closeReadings > = PROXIMITY_CONSECUTIVE_READINGS) / / besoin de n lectures consécutives de « fermer » avant de passer en mode MALÉFIQUE. Cela empêche les petits échos de l’avertisseur sonore.
{
digitalWrite (CANDLELED, basse) ;
digitalWrite (REDLED, élevé) ;
ton (BUZZER, BUZZER_FREQUENCY) ;
}
}
d’autre
{//regular scintillement de bougies. Basé sur l’exemple de l’Arduino BlinkWithoutDelay.
noTone(BUZZER) ;
digitalWrite (REDLED, basse) ;
closeReadings = 0 ;
unsigned long currentMillis = millis() ;
Si (currentMillis - previousMillis > FLICKER_INTERVAL)
{
previousMillis = currentMillis ;
analogWrite (CANDLELED, aléatoire (0, 256)) ;
}
}
}