Motion activé Servo (3 / 4 étapes)

Étape 3: Code

Ce code devrait être téléchargé vers votre Arduino. Si vous le souhaitez, vous pouvez ouvrir la série Moniter dans l’IDE Arduino pour voir ce que fait l’Arduino.

Pour écrire ce code, j’ai combiné fondamentalement code j’ai trouvé pour un capteur PIR (http://playground.arduino.cc/Code/PIRsense) et le code pour un servo (http://arduino.cc/en/Tutorial/Sweep) et ensuite apporté des modifications chaque fois que j’ai pensé que cela permettrait d’améliorer le code.

Code :

/ * Ce code balaie un servo de 0 degré à 180 quand le capteur infrarouge détecte un mouvement.
Remerciement spécial à l’auteur du code capteur PIR, dont le code a énormément aidé
dans l’élaboration de ce code et cette Instructable.
auteur du code capteur PIR : Kristian Gohlke / gmail krigoo (_) (_) com / http://krx.at
**/

#include < Servo.h >

Servo myservo ;  crée un objet de servo
vous pouvez créer un maximum de huit objets de servo

int pos = 0 ;        variable pour stocker la position du servo

quantité de temps, nous donnons le capteur à étalonner (10 à 60 secondes selon la fiche technique)

int calibrationTime = 30 ;

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 = 5000 ;

Boolean lockLow = true ;
Boolean takeLowTime ;

int pirPin = 12 ;            broche numérique connecté à la sortie de la PIR
int pirPos = 13 ;           se connecte à broches 5V de la PIR

void setup() {}
myservo.Attach(4) ;    attache le servo à la borne 4
Serial.Begin(9600) ;    commence la communication série
pinMode (pirPin, entrée) ;
pinMode (pirPos, sortie) ;
digitalWrite (pirPos, HIGH) ;

donner le temps de sonde pour calibrer
Serial.println ("calibrage capteur") ;
pour (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(calibrationTime-i) ;
Serial.Print("-") ;
Delay(1000) ;
}
Serial.println() ;
Serial.println("Done") ;

tout en faisant ce Instructable, j’ai eu quelques problèmes avec la sortie de la PIR
cours haute immédiatement après le calibrage
il attend jusqu'à ce que la sortie de la PIR est faible avant de terminer le programme d’installation
même si (digitalRead(pirPin) == HIGH) {}
Delay(500) ;
Serial.Print(".") ;
}
Serial.Print ("capteur actif") ;
}

void loop() {}

if(digitalRead(pirPin) == HIGH) {//if le PIR sortie est haute, tour servo

/ * tourne servo de 0 à 180 degrés et retour
Il fait ceci en augmentant la variable « pos » de 1 toutes les 5 millisecondes jusqu'à ce qu’il frappe 180
position du servo en degrés par rapport au « pos » en définissant toutes les 5 millisecondes
puis il le fait dans le sens inverse de la faire revenir en arrière
en savoir plus sur cette, google "pour les boucles"
pour modifier la quantité de degrés le servo tourne, changer le nombre de 180, au nombre de degrés souhaité à son tour
**/
pour (pos = 0; pos < 180; pos += 1) //goes de 0 à 180 degrés
{//in étapes d’un degré
myservo.Write(POS) ;                   raconte le servo pour aller à positionner dans la variable « pos »
Delay(5) ;                                   attend que le servo atteindre la position
}
pour (pos = 180; pos > = 1; pos-= 1) //goes de 180 à 0 degrés
{
myservo.Write(POS) ;                  pour rendre le servo à aller plus vite, réduire la durée des retards pour
Delay(5) ;                                  pour le faire aller plus lentement, augmenter le nombre.
}

{if(lockLow)}
fait en sorte de que nous attendre à une transition vers le bas avant sortie supplémentaire est faite
lockLow = false ;
Serial.println("---") ;
Serial.Print ("mouvement détecté à") ;
Serial.Print(Millis()/1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
takeLowTime = true ;
}

if(digitalRead(pirPin) == faible) {}

{if(takeLowTime)}
lowIn = millis() ;             économiser le temps de la transition entre la haute et basse
takeLowTime = false ;    Veillez à ce que cela se fait uniquement au début d’une phase de faible
}

Si le capteur est faible plus la pause donnée,
Nous pouvons supposer que le mouvement n’a cessé
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) / 1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
}
}

Articles Liés

Squirt - Arduino, motion activé des canons à eau

Squirt - Arduino, motion activé des canons à eau

Squirt est un canon à eau motion activé à l'aide d'Arduino.Cela a été conçu pour une utilisation dans le jardin, mais comme c'est l'hiver nous avons testé dans la salle de bain. Ça marche !Suivi de mouvement vrai est coûteux et compliqué donc ce syst
Gardez les indésirables visiteurs avec une Motion activé arroseur

Gardez les indésirables visiteurs avec une Motion activé arroseur

Les animaux les pensez que votre pelouse est leur toilette personnelle ? Les assassins ninja continuer à essayer de se faufiler dans votre maison ? Gardez ces visiteurs indésirables loin avec un système de gicleurs motion activé. Dès qu'ils entrer da
Motion activé Halloween araignée

Motion activé Halloween araignée

nous manquons une série spéciale de Instructables personnalisé pour Ace Hardware, un annonceur sur Instructables. Il s'agit de la première des trois projets génial, nous avons créé en internes à l'aide de pièces de notre magasin local d'Ace .J'ai vou
Motion activé « Attaque Creeper »

Motion activé « Attaque Creeper »

en janvier, j'ai décidé que je devais améliorer ma sécurité à domicile. Malheureusement pour moi mon immeuble n'autorise pas les chiens donc un grand animal effrayant n'était pas une option. Puis tout à coup, l'inspiration a frappé ou je suppose que
Motion activé arroseur bricolage

Motion activé arroseur bricolage

Protéger les jardins et yards des intrus animaux communs.Gardez ces visiteurs indésirables loin avec un système de gicleurs motion activé. Dès qu'ils entrer dans votre pelouse, un détecteur de mouvement infrarouge passif détecte les intrus et se met
Motion activé calendrier Digital

Motion activé calendrier Digital

J'étais fatigué d'avoir un ancien calendrier papier que ma femme et je mettrait à jour à la main et ne devrait pas à notre disposition lorsque nous n'étions pas maison. J'ai aussi eu une ancienne tablette Nexus 7 autour de la pose et une imprimante 3
Motion activé del

Motion activé del

dans ce tutoriel, je vais vous montrer comment créer motion activée LEDs qui seront déclenchés par un capteur PIR de parallaxe et contrôlées par un Arduino Uno. Ce projet peut avoir des applications pratiques telles que l'éclairage de nuit pour escal
Motion activé commutateur léger scintillement fix pour CFL

Motion activé commutateur léger scintillement fix pour CFL

si vous avez déjà essayé d'ajouter un interrupteur de lampe motion activé à un appareil avec une ampoule CFL vous avez sans doute remarqué qu'il scintille, sauf si vous avez eu la prévoyance de débourser 4 ou 5 fois plus cher pour une ampoule fluocom
Prop fantôme Motion activée

Prop fantôme Motion activée

Il s'agit d'une proposition de motion activée que vous pouvez placer n'importe où avec une prise murale.Il s'allume avec la lumière noire et le capteur PIR avec l'arduino va déclencher le relais pour allumer la lumière.Étape 1: Mécanisme électronique
Cercueil de bon marché motion activée

Cercueil de bon marché motion activée

c'est comment j'ai construit un cercueil qui a son, brouillard, lumières et un couvercle de motion activé. Pour regarder une vidéo à voir mon site photobucket.Étape 1: Construisent le cercueil j'ai commencé par découper un morceau de contreplaqué à l
Motion activée cat litter box odeur fan

Motion activée cat litter box odeur fan

Il s'agit d'un simple mis en place pour un problème puant.  (ça marche mieux, alors ça, je viens rapidement mis en place pour voir si cela fonctionne)J'ai utilisé l'interrupteur de mouvement se met en marche pendant 5 minutes mais peut être définie p
Motion activé vitesse costume

Motion activé vitesse costume

La plupart du fil EL temps est utilisé tel quel, avec manuel commande marche/arrêt. Cependant, j'ai voulu le contrôler avec un Arduino, donc il allait réagir aux résultats d'un capteur. Ce costume activé par mouvement clignote lorsque l'utilisateur c
Raspberry Pi Motion activé fantôme hurlant Transparent pour Halloween

Raspberry Pi Motion activé fantôme hurlant Transparent pour Halloween

Salutations. Veuillez garder avec moi, car il s'agit de mon premier Instructable. Cependant, j'ai ont construit à cet effet pour ce dernier Halloween et ont eu de très bons résultats avec elle. Alors j'ai pensé que je partagerais.Vidéos et des photos
Valentines Day Motion activé LED coeur

Valentines Day Motion activé LED coeur

ce cœur s'allume chaque fois qu'il détecte un mouvement par le capteur infrarouge passif (PIR). Nous allons utiliser le capteur PIR comme une entrée et les LEDs comme sorties.Étape 1: matériaux•PIR motion sensor (1) •Arduino micro (1) •Red LEDs (16)