Etape 21 : codage
Copier le code :
cette esquisse doit exécuter un capteur PIR, 4 lumières clignotantes et un petit moteur à courant continu. Capteur PIR
se déclenchera rendant les voyants clignotent et ensuite tourner sur un moteur
définir les broches
#define LEDPINFAST1 7; //LED lumière
#define LEDPINFAST2 8; //LED lumière
#define LEDPINSLOW1 10 ; //LED lumière
#define LEDPINSLOW2 9; //LED lumière
fast1 int = LEDPINFAST1 ; //LED lumineux clignote rapidement
int fast2 = LEDPINFAST2 ; //LED lumineux clignote rapidement
int slow1 = LEDPINSLOW1 ; //LED léger clignotement lent
int slow2 = LEDPINSLOW2 ; //LED léger clignotement lent
int calibrationTime = 30; / / calibrer le capteur PIR
le temps quand le capteur génère une impulsion faible
unsigned long int lowIn ;
la durée en millisecondes, que le capteur doit être faible
avant que nous supposons que tout mouvement a cessé
unsigned long int pause = 100 ;
Boolean lockLow = true ;
Boolean takeLowTime ;
int pirPin = 2 ; la broche numérique connectée à la sortie du capteur PIR
int motorPin = 11 ; Broche moteur connecté
/////////////////////////////
PROGRAMME D’INSTALLATION
void setup() {}
Serial.Begin(9600) ;
pinMode (pirPin, entrée) ;
pinMode (motorPin, sortie) ;
digitalWrite (pirPin, basse) ;
pinMode(fast1,OUTPUT) ;
pinMode(fast2,OUTPUT) ;
pinMode(slow1,OUTPUT) ;
pinMode(slow2,OUTPUT) ;
sonde pour calibrer l’écriture au programme Aduino
Serial.Print ("calibrage capteur") ;
pour (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(".") ;
Delay(1000) ;
}
Serial.println ("terminé") ;
Serial.println ("capteur actif") ;
Delay(50) ;
}
////////////////////////////
BOUCLE
void loop() {//I sais il y a de meilleures façons d’écrire cette chaîne pour irratic clignotant feux - mais je suis encore à apprendre
if(digitalRead(pirPin) == HIGH) {}
analogWrite (slow2, 100) ;
Delay(1000) ;
analogWrite (slow2, basse) ;
Delay(10) ; {
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(10) ;
digitalWrite (slow1, basse) ;
Delay(10) ;
digitalWrite (fast1, HIGH) ;
Delay(100) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(10) ;
digitalWrite (slow1, basse) ;
Delay(30) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(2000) ;
digitalWrite (slow1, basse) ;
Delay(10) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(10) ;
digitalWrite (slow1, basse) ;
Delay(30) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(500) ;
digitalWrite (slow1, basse) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(2000) ;
digitalWrite (slow1, basse) ;
digitalWrite (fast1, HIGH) ;
Delay(100) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(10) ;
digitalWrite (slow1, basse) ;
Delay(30) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(2000) ;
digitalWrite (slow1, basse) ;
Delay(10) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(10) ;
digitalWrite (slow1, basse) ;
Delay(30) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(500) ;
digitalWrite (slow1, basse) ;
digitalWrite (fast1, HIGH) ;
Delay(10) ;
digitalWrite (fast1, faible) ;
Delay(10) ;
digitalWrite (fast2, HIGH) ;
Delay(10) ;
digitalWrite (fast2, basse) ;
Delay(10) ;
digitalWrite (slow1, HIGH) ;
Delay(2000) ;
digitalWrite (slow1, basse) ;
analogWrite (slow2, 10) ;
Delay(5) ;
analogWrite (slow2, 50); //LED léger à ont demi luminosité
Delay(10) ;
analogWrite (slow2, 100) ;
}
digitalWrite (motorPin, HIGH) ; {//the moteur broche est sur
Delay(1000) ; Attendez une seconde
digitalWrite (motorPin, basse) ; le moteur est éteint
Delay(5000) ; attendez cinq secondes
analogWrite (slow2, LOW); //LED lumineux lumière éteinte
}
if(lockLow) {//back à la sonde
PIR faible avant que plus la production est faite :
lockLow = false ;
Serial.println("---") ;
Serial.Print ("mouvement détecté à") ;
Serial.Print(Millis()/100) ;
Serial.println (« sec ») ;
Delay(50) ;
}
takeLowTime = true ;
}
if(digitalRead(pirPin) == faible) {}
digitalWrite (motorPin, basse) ; PIR est faible alors le moteur est faible
{if(takeLowTime)}
lowIn = millis() ; transition de haute en bas
takeLowTime = false ;
}
Si (! lockLow & & millis() - lowIn > pause) {}
fait bien sûr ce bloc de code est exécuté uniquement après
une nouvelle séquence de mouvement a été détectée
lockLow = true ;
Serial.Print ("requête s’est terminée à ») ; sortie
Serial.Print((Millis() - pause) / 100) ;
Serial.println (« sec ») ;
Delay(50) ;
}
}
}