Étape 5: Étape 5. Développement de code spark.io côté
Matériel préliminaire a été aménagé avec point de soudure. Développement de code initial a été fait avec
une arduino 328 clone .shiftOut (dataPin, clockPin, LSBFIRST, j) ; les premières instructions utilisées et il
a été constaté qu’elle déplacerait seulement à un mot un peu.
/*************************************************************/
/ * Spark.io fonctions de traitement des pages Web interaction * /
/ * Bloominglabs Spark.io construire nuit le 13 novembre et 15 2013 * /
/ * par Rex M Marling * /
/ * Actuellement un projet en cours pour un microcontrolled * /
/ * glockenspiel (xylophone). Le Spark.io permet sans fil * /
/ * interfaçage avec le fichier html de fichier associé jouer RexOphone * /
/ * 74ls595 deux registres à décalage sont utilisées pour étendre * /
/ * les données de sortie de la spark.io. 3 janvier 2015 * /
/ * INITIALISATION DATA TYPES et fonction de déclenchement interrompre / * / * données de type caractère * /
char * songPtr ;
/ * TYPE DE DONNÉES BOOLEAN * /
bool songDone = false ;
bool remoteTriggered = false ; variable d’état global pour la fonction remoteTrigger()
/ * TYPE DE DONNÉES BYTE *
/Byte default_dur = 4 ;
default_oct octets = 6 ;
lowest_oct octets = 3 ;
note de l’octet ; échelle d’octets ;
/ * TYPE DE DONNÉES INT * /
int x ; pointeur d’int ;
résultat de l’int ;
int bpm = 63 ;
int num ;
int clr = 7 ;
données int = 3 ;
horloge int = 4 ;
verrou int = 5 ;
activez int = 6 ;
int compteur ;
/ * TYPE DE DONNÉES UNSIGNED INT * /
unsigned int note ;
unsigned int masque ;
/ * l’unsignedInt suivant sont affectés pour 16 notes * /
unsigned int a1 = 0 x 0001 ;
unsigned int b1 = 0 x 0002 ;
unsigned int c1 = 0 x 0004 ;
unsigned int c1p = 0x0008 ;
unsigned int d1 = 0 x 0010 ;
unsigned int d1p = 0 x 0020 ;
unsigned int e1 = 0 x 0040 ;
unsigned int f1 = 0x0080 ;
unsigned int f1p = 0 x 0100 ;
unsigned int g1 = 0 x 0200 ;
g1p unsigned int = 0 x 0400 ;
unsigned int a2 = 0 x 0800 ;
unsigned int ap2 = 0 x 1000 ;
unsigned int b2 = 0 x 2000 ;
unsigned int c2 = 0 x 4000 ;
unsigned int [n] = {0 x 8000, 0 x 4000, 0 x 2000, 0 x 1000, 0 x 0800, 0 x 0400, 0 x 0200, 0 x 0100, 0x0080, 0 x 0040, 0 x 0020, 0 x 0010, 0x0008, 0 x 0004, 0 x 0002, 0 x 0001} ;
/ * TYPE DE DONNÉES LONG * /
wholenote long ;
longue durée ;
/ * DÉFINIT * /
#define DEBUG = false ;
/ * INTERRUPTION DE PORTS DE DONNÉES DE CONFIGURATION ET DE LA DÉTENTE * /
void setup(void) {}
if(Debug) Serial1.begin(115200) ;
pinMode(D6,OUTPUT) ;
pinMode(D7,OUTPUT) ;
pinMode(data,OUTPUT) ;
pinMode(clock,OUTPUT) ;
pinMode(latch,OUTPUT) ;
pinMode(enable,OUTPUT) ;
digitalWrite(clock,HIGH) ;
digitalWrite(data,HIGH) ;
digitalWrite(latch,HIGH) ;
digitalWrite(enable,LOW) ;
digitalWrite(clr,HIGH) ;
Spark.Function("Remote",remoteTrigger) ; }
/ * INTERRUPTION DE PORTS DE DONNÉES POUR LE RÉGLAGE FIN ET DÉCLENCHEUR * /
/ * BOUCLE principale * / void loop(void) {}
/ * La loop() principale traite la web bouton clic une remarque à la fois. */
/ * éviter de bloquer les tâches de fond trop longtemps * /
/ * ou sinon le noyau étincelle serait déconnecter du Cloud. */
{if(remoteTriggered)}
digitalWrite(D7,HIGH) ;
Lumière de la LED bleue à bord tandis que la chanson joue} ;
Delay(600) ;
digitalWrite(D7,LOW) ;
Éteindre la LED bleue à bord.
remoteTriggered = false ;
if(Debug) Serial1.println("Done!") ;
Delay(2000) ; }
{
le code suivant a été conçu à l’horloge un 16 bits
unsigned int « Remarque : données ci-dessus » par 2 x 74ls595
la fonction shiftOut transferts de registres à décalage
8 bits de données
syntaxe
shiftOut (dataPin, clockPin, bitOrder, valeur)
Paramètres
dataPin : l’axe sur lequel chaque bit (int) de sortie
clockPin : la broche pour basculer une fois le dataPin a été définie sur la valeur correcte (int)
bitOrder : quel ordre de déplacer les petits bouts ; MSBFIRST ou LSBFIRST.
(Plus importantes peu premier ou, Bit le moins significatif d’abord)
valeur : les données à passer dehors. (octet)
Serial.println (« commencer ») ; pour (pointeur = 0; pointeur < = 15 ; pointeur ++) {masque = 0 x 8000; / / & B1000000000000000 Remarque = n [pointer] ; Serial.println(note) ; pour (x = 0; x < = 16; x ++) {résultat = note & Masque ; Masque = Masque >> 1; if (entraîner > 0) {digitalWrite(data,HIGH) ; Serial.println ("élevé") ; }
if(result == 0) {digitalWrite(data,LOW) ; Serial.println ("low");} digitalWrite(clock,LOW) ; retard (15) ; digitalWrite(clock,HIGH) ; };
fin de boucle interne
digitalWrite(latch,LOW) ;
Delay(15) ;
digitalWrite(latch,HIGH) ;
Delay(15) ;
digitalWrite(enable,LOW) ;
Delay(15) ;
digitalWrite(enable,HIGH) ;
Delay(250) ; };
fin de boucle externe
activez enable sortie pour 74ls595 jouer la note « la voiture puissance transistors darlington » puis revenez à trois États
}
/**************************************************************/ /* */ /* END MAIN LOOP */ /**************************************************************
/ / * DÉCLENCHEMENT À DISTANCE D’ÉTINCELLE. PÉRIPHÉRIQUE d’e/s * / / *** / int remoteTrigger (String args) {si (args == « 1 ») {compteur = 1;} ;
Si (args == « 2 ») {compteur = 2;} ;
Si (args == « 3 ») {compteur = 3;} ;
Si (args = « 4 ») {compteur = 4;} ;
Si (args = « 5 ») {compteur = 5;} ;
Si (args = « 6 ») {compteur = 6;} ;
Si (args = « 7 ») {compteur = 7;} ;
Si (args = « 8 ») {compteur = 8;} ;
Si (args = « 9 ») {compteur = 9;} ;
Si (args = « 10 ») {compteur = 10;} ;
Si (args = « 11 ») {compteur = 11;} ;
Si (args = « 12 ») {compteur = 12;} ;
Si (args == « 13 ») {compteur = 13;} ;
Si (args == « 14 ») {compteur = 14;} ;
Si (args = « 15 ») {compteur = 15;} ;
Si (args == « 16 ») {compteur = 16;} ;
l’argument transmis depuis les boutons de la page Web est
chargé dans le compteur pour le contrôle de la boucle for
test visuel pour le bon fonctionnement des données de la page Web
passé sur clic de bouton de souris
pour (compteur, compteur > 0; compteur--)
{digitalWrite(D7,LOW) ;
Delay(200) ;
digitalWrite(D7,HIGH) ;
Delay(200) ;
digitalWrite(D7,LOW) ; }
remoteTriggered = true ; Retour à 200 ; }
/ * FIN GESTIONNAIRE DE PAGE WEB * /