Étape 7: Communication sans fil
Programmation n’est pas très sexy-temps (à notre avis). Nous allons juste obtenir toutes les émissions hors de la voie.
Le Bullduino doit être chargé avec le code suivant de l’émetteur :
L’Arduino pour le boîtier récepteur doit être chargé avec le code suivant :
< pre > / * pantalon Romance par équipe Instructables principaux acteurs comprennent : Audrey Love, Amanda Ghassaei, Randy Sarafan le code reçoit des données série sans fil d’une paire de pantalons via Xbee et: - contrôler un contrôleur de ventilateur pour obscurcir l’éclairage de la pièce en corrélation avec une fermeture à glissière de pantalon - augmentant de volume sur une chaîne stéréo lors de la fermeture éclair est abaissée - éclairage bougies quand le pantalon est déboutonné pour plus d’informations , s’il vous plaît visitez : basé sur le code de http://www.ladyada.net/learn/sensors/ir.html, ce code est du domaine public, s’il vous plaît profiter! * / / / Définit la LED connectée à la broche numérique 13 int IRledPin = 13 ; Lampes connecté à la broche numérique 9 int lampsPin = 3 ; int sentDat ; int prevSentDat ; établir la comparaison valeur //for le volume jusqu'à une chute de la commande int = 250 ; void setup() {/ / initialiser la broche numérique IR en tant que sortie : pinMode (IRledPin, OUTPUT); //initializes la bougie sortie pin pinMode (8 sortie); pinMode (sortie 9) ; Serial.Begin(9600) ; } void loop() {si (Serial.available() > 0) {prevSentDat = sentDat ; sentDat = Serial.read() ; if (sentDat > prevSentDat) {//if la nouvelle valeur est plus élevée que le dernier moment (prevSentDat < sentDat) {prevSentDat ++; //increment prevSent analogWrite (lampsPin, prevSentDat); delay(5);}} d’autre {//new valeur est plus faible tout en (prevSentDat < sentDat) {prevSentDat--; //decrement prevSent analogWrite (lampsPin, prevSentDat); delay(5);}} //if est en baisse de la résistance, augmentez le volume si (abandon < = sentDat) {//volume monte volumeUp(); / / attendre 30 millisecondes delay(30) ; abandon = sentDat - 5;} si (sentDat == « z ») {/ / fondu de max min par incréments de 5 points : digitalWrite (8, HIGH) ; digitalWrite (9, HIGH) ; Delay(10000) ; digitalWrite (8, faible) ; digitalWrite (9, faible) ; {}} / / Cette procédure envoie une impulsion de 38KHz à la IRledPin / / pour un certain nombre de microsecondes. Nous allons utiliser ceci chaque fois que nous devons envoyer des codes void pulseIR (long microsecs) {/ / nous allons compter à rebours du nombre de microsecondes, on nous dit d’attendre cli(); / / cela désactive les interruptions de fond while (microsecs > 0) {/ / 38KHz est élevés environ 13 microsecondes et 13 microsecondes faible digitalWrite (IRledPin, HIGH); / / cela prend environ 3 microsecondes pour arriver delayMicroseconds(10); / / traîner pendant 10 microsecondes digitalWrite (IRledPin FAIBLE) ; Cela prend environ 3 microsecondes delayMicroseconds(10) ; passer du temps pour 10 microsecondes / / donc 26 microsecondes complètement microsecs-= 26 ; } sei() ; Cette tour à tour leur retour sur} void volumeUp() {/ / c’est le code pour ma stéréo JVC particulière / / pour le volume-up bouton delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(480) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(20140) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(480) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(20140) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(480) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(20140) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1520) ; pulseIR(520) ; delayMicroseconds(1540) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(480) ; pulseIR(520) ; delayMicroseconds(500) ; pulseIR(520) ; delayMicroseconds(20140) ; pulseIR(520) ; /////// }
Lorsque les deux sont programmés, assurez-vous qu’ils sont hors tension et fixer les écrans sans fil. S’assurer que les micro-interrupteurs sur deux les boucliers sont activés pour « micro ».