Surfin ' Bird (Arduino Style) (2 / 4 étapes)

Étape 2: Le Code

/*
* //////////////////////////////////////////////////
* sortie de //making sens du capteur PIR de parallaxe
* //////////////////////////////////////////////////
*
* Broche de sortie commutateurs une LED selon l’état des capteurs.
* Détermine le début et la fin des séquences de mouvement continu.
*
* Kristian Gohlke / web.de krigo (_) / http://filformat.net
* 3. Septembre 2006
*
* kr1 (fente) 2006
* publié sous une licence creative commons "Attribution-NonCommercial-ShareAlike 2.0" licence
* http://creativecommons.org/licenses/by-nc-sa/2.0/de/
*
*
* Le capteur PIR de parallaxe est un module de détecteur de mouvement infrarouge numérique facile à utiliser.
* (http://www.parallax.com/detail.asp?product_id=555-28027)
*
* La broche de sortie de sensor´s va à haute si le mouvement est présent.
* Toutefois, même si le mouvement est présent il va à bas la de temps en temps,
* qui ne pourrait donner l’impression, aucun mouvement n’est présent.
* Ce programme aborde cette question en ignorant les phases de faible inférieurs à un moment donné,
* en supposant que mouvement continu est présent au cours de ces phases.
*
*/

/////////////////////////////
VARS
#include
#include
#include « util.h »
#include « wave.h »

Carte de AF_Wave ;
Fichier f ;
Wavefile vague ;

int calibrationTime = 30 ; le temps de nous donner la sonde pour calibrer lui-même (10 à 60 secondes selon la fiche technique)
unsigned long int lowIn ; le temps quand le capteur génère une impulsion faible
unsigned long int pause = 5000 ; la durée en millisecondes, que le capteur doit être faible avant que nous assumons tous les mouvement a cessé

Boolean lockLow = true ;
Boolean takeLowTime ;

int pirPin = 6 ; la broche numérique connectée à la sortie du capteur PIR
int ledPin = 13 ;

/////////////////////////////
PROGRAMME D’INSTALLATION
void setup() {}
Serial.Begin(9600) ;
pinMode (pirPin, entrée) ;
pinMode (ledPin, sortie) ;
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;
digitalWrite (pirPin, basse) ;

donner le capteur quelque temps à étalonner
Serial.Print ("calibrage capteur") ;
pour (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(".") ;
Delay(1000) ;
}
Serial.println ("terminé") ;
Serial.println ("capteur actif") ;
Delay(50) ;
Si (! card.init_card()) {}
retour ;
}
Si (! card.open_partition()) {}
retour ;
}
Si (! card.open_filesys()) {}
retour ;
}
Si (! card.open_rootdir()) {}
retour ;
}
}

////////////////////////////
BOUCLE
void loop() {}

if(digitalRead(pirPin) == HIGH) {}
digitalWrite (ledPin, HIGH) ; le voyant lumineux visualise l’état de broche de sortie de capteurs
{if(lockLow)}
lockLow = false ; Veillez à ce que nous attendons d’une transition vers le bas avant que n’importe quelle autre sortie faite
Serial.println("---") ;
Serial.Print ("mouvement détecté à") ;
Serial.Print(Millis()/1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
takeLowTime = true ;
}

if(digitalRead(pirPin) == faible) {}
digitalWrite (ledPin, basse) ; le voyant lumineux visualise l’état de broche de sortie de capteurs

{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 (! lockLow & & millis() - lowIn > pause) {//if le capteur est faible pour plus de la pause donnée, nous partons du principe qu’aucun mouvement plus ne va se passer
lockLow = true ; s’assure que ce bloc de code est exécuté uniquement à nouveau après qu’une nouvelle séquence de mouvement a été détectée
Serial.Print ("requête s’est terminée à ») ; sortie
Serial.Print((Millis() - pause) / 1000) ;
Serial.println (« sec ») ;
Delay(50) ;
}
Switch(digitalRead(pirPin) == HIGH) {}

cas 1 :
playcomplete("03SURF~1.wav") ;

}
}}

void playcomplete(char *name) {}
playfile(Name) ;
tandis que (wave.isplaying) ;
Card.close_file(f) ;
}

void playfile(char *name) {}
arrêter n’importe quel fichier déjà jouer
Si {(wave.isplaying)
Wave.Stop() ;
Card.close_file(f) ;
}

f = card.open_file(name) ;
Si (f & & wave.create(f)) {}
Wave.Play() ;
}

}

Articles Liés

Minty Magic Morse - Arduino Style

Minty Magic Morse - Arduino Style

ce Instructable a été supprimé, mais malheureusement le système ne me permettrait de ne pas publier.  La majorité de l'information et le code contenu dans ce instructable est disponible dans les forums sur Arduino.ccRay Burne participe n'est plus ave
Comment faire un obstacle évitant Robot Arduino Style

Comment faire un obstacle évitant Robot Arduino Style

vous avez toujours rêvé de faire un de ces robots cool qui peuvent éviter pratiquement n'importe quel objet. Pourtant, vous n'avez pas assez d'argent pour acheter un de ceux-là vraiment cher, avec des pièces déjà découpées où toutes les matières où l
Paddle Ball, Arduino Style

Paddle Ball, Arduino Style

Je ne suis pas trop coordonnée et ballon de pagaie n'a jamais été une grande habileté pour moi. J'ai pensé un Arduino, secondé par un moteur d'asservissement et de quelques pièces imprimées 3d, pourrait effectuer sur un pied d'égalité avec moi. Je n'
Palm Arduino V3

Palm Arduino V3

j'ai concevoir et créer ce prototype de Palm Arduino V3 PCB, comme j'étais fatigué de recréer Arduino Compatible perf embarquer chaque fois j'ai prototypage un nouveau projet, surtout quand j'ai dû passer beaucoup de temps à retracer le câblage pour
Détecteur de métaux

Détecteur de métaux

Pourquoi ne pas découvrir les émanations des trésors de civilisations révolues, (ou peut-être oubliés biens auprès d'une partie près de la plage) avec votre propre détecteur de métal ? Dans ce Instructable, je vais vous montrer comment construire un
Machine de Routine matin

Machine de Routine matin

La vie s'accélère à un rythme effréné, et le temps est plus précieux que jamais. Si vous êtes comme moi et que vous désirez presser chaque seconde supplémentaire hors de tous les jours, pourquoi ne pas construire une machine, une machine merveilleuse
Sans fil Multi-Channel Voice-Controlled prises de courant avec Raspberry Pi

Sans fil Multi-Channel Voice-Controlled prises de courant avec Raspberry Pi

mise à jour 11/02/2014 : Merci à tous ceux qui ont voté pour ce projet au concours Raspberry Pi!Ce projet est une combinaison de plusieurs ressources de différence :Mon projet de single-prise de contrôle avec Raspberry Pi et Python, d'abord inspiré p
Station météo

Station météo

Reprendre le pouvoir des prévisions météorologiques de votre météo locale et commencer votre incursion dans le monde scientifique amateur de météorologie et de citoyen avec votre propre station météorologique de bricolage et l'enregistreur de données
MiniSub ROV

MiniSub ROV

L'océan est d'appeler votre nom ! Créatures marines et trésors naturels et artificiels se trouvent juste sous la surface des eaux du monde attendent d'être trouvé. Vous pourriez porter un costume et trempez-les dans, mais pourquoi aller à tout ce mal
Intro aux moteurs pas à pas

Intro aux moteurs pas à pas

Si vous avez déjà eu le plaisir de démonter une imprimante plus âgée afin de récupérer des pièces électroniques (je recommande fortement cette activité de fin de semaine si vous n'avez pas avant!) vous pouvez avoir rencontré un tas de mystère cylindr
PCB Quadrotor (Brushless)

PCB Quadrotor (Brushless)

Quadrotors sont le nouveau Segway : une plate-forme envoûtante, un peu magique, stabilisateur automatique que chaque personne tech veut avoir. Vous ne pouvez pas monter un quadrotor (Eh bien, peut-être que vous pouvez), mais ils ne volent pas, et vou
Bras de Robot de peinture pointilliste

Bras de Robot de peinture pointilliste

Il ne peut être un Da Vinci ou Kahlo, mais ce robot de peinture du punch tout l'artistique pour sa taille. Dans ce Instructable, Ill vous montrer comment je suis allé du concept jusqu'à la fin et construit un bras de robot de peinture à l'aide d'un I
PA-boisson-o: la barre de Pachinko Bot

PA-boisson-o: la barre de Pachinko Bot

Il est génial de partager un verre avec des amis. Partager du temps avec des robots est trop grande. Jouer à des jeux d'arcade classique ? Fantastique. J'aime profondément la bonté électromécanique de flipper classique, en combinant mes intérêts, j'a
Charliplexed arbre de Noël pour mon Cubby

Charliplexed arbre de Noël pour mon Cubby

l'année dernière j'ai eu une set de batterie exploité type d'ampoule Noël lumineux fixé à la maison magasin et mettre sur un dessus de table sapin de Noël.  Juste pour faire le cubby festive.  Presque tous les commentaires que j'ai reçue étaient le l