Lampes témoins sur l’arbre de Noël via Bluetooth, Android et Arduino ! (3 / 8 étapes)

Étape 3: Le Code

Le code a été créé en grande partie à cause d’exactement comment je voulais que cela fonctionne. Aussi, je suis vraiment pointilleux à propos de faire les choses bien, c’est pourquoi c’est tout en fonctions, il ne faut vraiment être, c’est juste comment je le préfère. Beaucoup du code peut être omis si vous n’êtes pas aussi pointilleux que je suis sur son fonctionnement. Assurez-vous de lire les commentaires pour trouver les pièces inutiles du code pour votre projet.

Je dois vraiment remercier bwrussell pour son aide avec ce projet. Je lui ai posé plusieurs questions codage et il a répondu chacun d’eux dans les moindres détails, donc je pourrais comprendre. Il sait beaucoup plus sur l’Arduino et le codage que je fais, et je n’aurais pas pu faire sans lui. Il a été une ressource fantastique et juste un très gentil garçon Instructable-maker.

Voici le code que j’ai utilisé...

/ * Ce code est pour mon contrôleur Arduino/Bluetooth/Android. Une application Android enverra un spécifique « byte » des données
Ce code, l’interrupteur... instruction case reçoit le « byte » et tourne broches ou désactiver selon ce qu’il reçoit.

Algorithme: 4 broches sont déclarées, pinA - pinD. Voici les broches 4-7 sur l’Arduino. Commande est l’octet de données que le code
reçoit. rHigh et rLow sont utilisés pour les valeurs minimum et maximum de délai aléatoire. Le programme d’installation définit pinA - pinD comme sorties
et les place tout comme éteint. Il commence alors le transfert série, si un octet est reçu, il est défini comme commande. Dans la boucle
cas 1-4 il suffit d’activer ou désactiver la pinA - pinD. Cas 5 définit toutes les broches comme aléatoire. Cas 6 allume toutes les goupilles. Cas 7 tours
toutes les broches au large. Cas 8 démarre un modèle clignotant. */

const int pinA = 4 ;
const int pinB = 5 ;
const int pinC = 6 ;
const int pinD = 7 ;
commande de l’octet = 0 ;
const int rHigh = 555 ;
const int rLow = 100 ;
int randomPin ;
Sub pinDo (int code pin) ;
void allOn() ;
void allOff() ;
void randomStart() ;
void flashThrough() ;

void setup()
{
pinMode (pinA, sortie) ; la valeur de la broche de relais en tant que sortie
pinMode (pinB, sortie) ; //
pinMode (pinC, sortie) ; //
pinMode (pinD, sortie) ; //

allOff() ; Assurez-vous que toutes les broches sont désactivés pour commencer

Serial.Begin(9600) ;

Si (Serial.available() > 0) / / Start transfert série
{
commande = Serial.read() ; Commande Set pour égaler les données sérielles
}
}

void loop()
{
Si (Serial.available() > 0)
{
commande = Serial.read() ;
interrupteur (commande)
{
cas 1: / / Relais 1
pinDo (pinA) ;
rupture ;
case 2: / / Relais 2
pinDo (pinB) ;
rupture ;
case 3: / / Relais 3
pinDo (pinC) ;
rupture ;
case 4: / / 4 relais
pinDo (DINP) ;
rupture ;
cas 5: / / la fonction aléatoire
randomStart() ;
rupture ;
case 6: / / allumer toutes les broches
allOn() ;
rupture ;
cas 7: / / désactiver toutes les broches
allOff() ;
rupture ;
cas 8: / / Start modèle clignotant
tandis que (commande! = 6 & & commande! = 7)
{
flashOn() ;
commande = Serial.read() ; Recherchez de nouvelles données serial
}
}
}
}

Sub pinDo(int pin)
{
Si (digitalRead(pin) == faible)
{
digitalWrite (tige, haute) ;
}
d’autre
{
digitalWrite (broches, faible) ;
}
}

Sub randomStart ()
{
tandis que (commande! = 6 & & commande! = 7)
{
randomPin = random (pinA, pinD + 1) ;
Si (digitalRead(randomPin) == faible)
{
digitalWrite (randomPin, HIGH) ;
retard (aléatoire (rLow, rHigh)) ;
}
d’autre
{
digitalWrite (randomPin, basse) ;
retard (aléatoire (rLow, rHigh)) ;
commande = Serial.read() ; Recherchez les nouvelles données en série, dans l’affirmative, sortie le clignotement aléatoire
/ * Ces 2 si les déclarations sont présentes dans le 5ème cas parce que je voulais les broches à immédiatement
activer ou désactiver la fonction de la commande qu’il reçoit alors que dans la partie aléatoire de code.* /
Si (commande == 6)
{
allOn() ;
}
Si (commande == 7)
{
allOff() ;
}
}
}
}
Sub flashOn ()
{
digitalWrite (pinA, HIGH) ; tout sur
Delay(150) ;
digitalWrite (pinB, HIGH) ;
Delay(150) ;
digitalWrite (pinC, HIGH) ;
Delay(150) ;
digitalWrite (pinD, HIGH) ;
Delay(400) ;
allOff() ;
allOn() ;
allOff() ;
allOn() ;
allOff() ;
flashThrough() ;
flashThrough() ;
flashBack() ;
flashBack() ;
}

allOn Sub ()
{
digitalWrite (pinA, HIGH) ;
digitalWrite (pinB, HIGH) ;
digitalWrite (pinC, HIGH) ;
digitalWrite (pinD, HIGH) ;
Delay(300) ;
}

Sub allOff ()
{
digitalWrite (pinA, faible) ; prochaine étape
digitalWrite (pinB, faible) ;
digitalWrite (pinC, faible) ;
digitalWrite (pinD, faible) ;
Delay(350) ;
}

Sub flashThrough ()
{
digitalWrite (pinA, HIGH) ; prochaine étape
Delay(200) ;
digitalWrite (pinA, faible) ;
digitalWrite (pinB, HIGH) ;
Delay(200) ;
digitalWrite (pinB, faible) ;
digitalWrite (pinC, HIGH) ;
Delay(200) ;
digitalWrite (pinC, faible) ;
digitalWrite (pinD, HIGH) ;
Delay(200) ;
digitalWrite (pinD, faible) ;
}

retour de flamme Sub ()
{
digitalWrite (pinD, HIGH) ; prochaine étape
Delay(200) ;
digitalWrite (pinD, faible) ;
digitalWrite (pinC, HIGH) ;
Delay(200) ;
digitalWrite (pinC, faible) ;
digitalWrite (pinB, HIGH) ;
Delay(200) ;
digitalWrite (pinB, faible) ;
digitalWrite (pinA, HIGH) ;
Delay(200) ;
digitalWrite (pinA, faible) ;
}

Articles Liés

Comment grimper sur un arbre (en utilisant la seule corde!) la façon d’amuser/simple

Comment grimper sur un arbre (en utilisant la seule corde!) la façon d’amuser/simple

dans ce instructable, je vais montrer comment grimper sur un arbre à l'aide de seulement corde mousqueton, force musculaire et un temps.Je ne suis pas un grimpeur expérimenté ou formé. Ne me dites pas que je ne suis pas soit. Je seulement vous montre
Soude peut lampe en moins de 1$

Soude peut lampe en moins de 1$

J'ai eu quelques boîtes de conserve vides alors pensés de faire quelque chose.Puis j'ai eu une idée pour faire une lampe peut de soude.Il est vraiment facile à faire et il faut très moins de temps.Espérons que vous apprécierez ce qui en fait.Étape 1:
Comment grimper sur un arbre (avec prusiks!)

Comment grimper sur un arbre (avec prusiks!)

Une fois que vous pouvez grimper sur un arbre, vous pourrez monter dans le monde !J'ai voulu apprendre à monter des trucs à l'aide de corde, donc j'ai choisi cet arbre fabuleux dans une rue à Silver Lake, Los Angeles et monté tout !La théorie est que
Comment grimper sur un arbre

Comment grimper sur un arbre

Grimper aux arbres est génial ! Ici, je vais montrer comment grimper sur un arbre et profiter de la vue en toute sécurité !Étape 1: Trouver un arbreTrouver un bon arbre d'escalade entre les 2 à 3 étages avec branches accessibles.Etape 2: Conception d
Comme par magie, joignez une feuille sur un arbre !

Comme par magie, joignez une feuille sur un arbre !

Dans cette Instructable Jay Wethington vous montre comment restaurer magiquement une feuille sur l'arbre il vient !CLIQUEZ ICI POUR VOIR LA PERFORMANCE !http://www.youtube.com/watch?v=Bn0Ay_DiDtYVous voulez apprendre la magie des cartes ?https://www.
ArduDroid : Un Simple 2 voies Bluetooth-contrôleur basé sur Android pour Arduino

ArduDroid : Un Simple 2 voies Bluetooth-contrôleur basé sur Android pour Arduino

MISES À JOUR :Le 19 nov. 2031 : avis : la synergie incroyable entre Arduino & Android.30 octobre 2013 : Andruino est maintenant officiellement ARDUDROID et est bientôt disponible sur Google jeu. Ce changement de nom pour éviter un conflit avec une au
Faire un bricolage capteur de votre choix et affiche la mesure sur votre téléphone Android via Bluetooth

Faire un bricolage capteur de votre choix et affiche la mesure sur votre téléphone Android via Bluetooth

avez-vous besoin d'un capteur pour mesurer quelque chose, comme la température du corps, en dehors de la température, rayonnement UV, intensité lumineuse, l'irradiance solaire, champ magnétique, pression, etc. etc.. ?   Avec la technologie d'aujourd'
Lampe punk à vapeur sur 3040 CN

Lampe punk à vapeur sur 3040 CN

Il y a quelque temps j'ai vu une lampe rétro/steampunk vraiment sympa sur Pinterest (seconde image) et a décidé je vais faire moi un semblable à celui. Je vais utiliser des planches de bois mince pour découper la boîte (faite hors pièce supérieure et
3 sur l’arbre - ou - comment je vais briser juste ici et laissez vous bloqués !

3 sur l’arbre - ou - comment je vais briser juste ici et laissez vous bloqués !

J'ai un camion d'yard que nous avons acheté pour une bouchée de nombreuses années en arrière et ont depuis surnommé la « fosse d'argent ». Nous appelons en fait son Jethrina, mais je suppose que Money Pit est son deuxième prénom. Vous vous souvenez p
Comment faire une lampe de poche sur un frisbee petit

Comment faire une lampe de poche sur un frisbee petit

il s'agit d'une lampe de poche mini frisbee. juste jeter autour dans l'obscurité. Vous pouvez transporter dans votre poche et l'emporter partout avec vous.Étape 1: matériaux -LEDs-petit frisbee-3 petites rondes batteries-rubanÉtape 2: LEDs, le frisbe
Contrôler une lampe basée sur la position de la porte

Contrôler une lampe basée sur la position de la porte

ce blog décrit comment faire un système qui s'allume une lampe, lorsqu'une porte est ouverte. Si vous ne l'avez pas déjà fait, regardez cette vidéo ci-dessous pour avoir une idée de ce que le système va faire :La vidéo montre un système qui s'allume
Lampe d’alcool sur un budget chaussure

Lampe d’alcool sur un budget chaussure

après la construction de la Simple coupe réglable verre bouteilleJ'avais besoin de chauffer les bouteilles le long de la ligne de pliure pour obtenir une bonne pause. Beaucoup de gens a suggéré d'utiliser une bougie pour chauffer le biberon, le probl
Lampe de securite sur le casque de vélo

Lampe de securite sur le casque de vélo

un des plus importants conseils pour rouler en sécurité doit être aussi visible que possible aux voitures et aux piétons. En plus de la tête et feu arrière je joins également un feu arrière à l'arrière du casque pour une visibilité supplémentaire. Il
Barre de traction sur un arbre sans branches

Barre de traction sur un arbre sans branches

j'ai récemment essayé de trouver un moyen de le faire. Je ne suis pas le seul à la recherche alors j'espère que cela aide quelqu'un d'autre. Mon arbre se trouve être assez large que pas beaucoup d'extra pensée devait aller dedans. Je voulais aussi év