Étape 6: Le Code
Le code d’origine provient d’une découverte de l’internet qui est remarquée dans les commentaires
J’ai grandement modifié
Quelques questions :
sans un capteur hall, on sera obligé de jouer avec le temps entre les mots pour obtenir une image raisonnablement stable
Arduino vélo POV
//
par Scott Mitchell
www.OpenObject.org
Open Source urbanisme
//
Copyright (C) 2008 Scott Mitchell 10/12/2008
//
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier
elle aux termes de la GNU General Public License telle que publiée par
la Free Software Foundation, soit la version 3 de la licence, ou
(selon votre choix) toute version ultérieure.
//
//============================================================
6/2011 fortement modifiée par c. Dubois pour mon projet POV
Capteur Hall est un commutateur, alors j’ai utilisé le code différent pour elle
également utilisé un font.h que j’ai trouvé
// ------------------------------------------------------------
définition de l’alphabet
#include « font.h »
définir les broches de l’Arduino LED en cours d’utilisation
const int [] LEDpins = {}
1,2,3,4,5,6,7} ;
nombre de LEDs
const int charHeight = sizeof(LEDpins) ;
const int charWidth = 5 ;
var int = 0 ;
int worddelay = 50000 ;
installation du capteur
const int sensorPIN = 0 ; définir la broche du capteur Arduino
sensorFlag booléen = false ; stocke l’état de la sonde
int sensVal ; variable pour stocker la valeur provenant de la sonde
const char textString [] = "CLAIRE" ;
const char [textString2] = "est un" ;
const char [textString3] = "HONEY" ;
const char [textString4] = "BADGER" ;
void setup()
{
pinMode (13, sortie) ;
pinMode (1, sortie) ;
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;
pinMode (6, sortie) ;
pinMode (7, sortie) ;
Serial.Begin(9600) ;
}
void loop()
{
Led s’allume pour un cercle au milieu et preuve qu’arduino est alimenté
digitalWrite (13, HIGH) ; la valeur de la LED sur
sensVal = analogRead(sensorPIN) ; lire le capteur à effet Hall
Serial.println(sensVal) ;
retard (500) ;
Si (sensVal! = 1023) {}
Allumer les leds pour vérifier qu’ils fonctionnent et créer des cercles
digitalWrite (1, haut) ; la valeur de la LED sur
Delay(500) ;
digitalWrite (2, haut) ; la valeur de la LED sur
Delay(500) ;
digitalWrite (3, élevée) ; la valeur de la LED sur
Delay(500) ;
digitalWrite (4, élevée) ; la valeur de la LED sur
Delay(500) ;
digitalWrite (5, HIGH) ; la valeur de la LED sur
Delay(500) ;
digitalWrite (6, HIGH) ; la valeur de la LED sur
Delay(500) ;
digitalWrite (7, HIGH) ; la valeur de la LED sur
délai pour laisser le ventilateur à la vitesse
retarder (3000) ;
impression de toutes les lettres de la textString
puis les textstring2 claires et impression
var = 0 ;
alors que {(var < 200)
faire quelque chose de répétitif 150 fois
pour (int k = 0; k < sizeof(textString); k ++) {}
printLetter(textString[k]) ;
}
var ++ ;
espace entre les mots
delayMicroseconds(worddelay) ;
}
effacer les LEDs
digitalWrite (1, faible) ; déclencher la LED
digitalWrite (2, basse) ; déclencher la LED
digitalWrite (3, faible) ; déclencher la LED
digitalWrite (4, faible) ; déclencher la LED
digitalWrite (5, faible) ; déclencher la LED
digitalWrite (6, faible) ; déclencher la LED
digitalWrite (7, faible) ; déclencher la LED
délai entre les phrases
retard (500) ;
// ------------------------------
--Maintenant deuxième phrase---
var = 0 ;
tandis que (var < 100) {}
faire quelque chose de répétitif 75 fois
pour (int k = 0; k < sizeof(textString2); k ++) {}
printLetter(textString2[k]) ;
}
var ++ ;
espace entre les mots
delayMicroseconds(worddelay) ;
}
effacer les LEDs
digitalWrite (1, faible) ; déclencher la LED
digitalWrite (2, basse) ; déclencher la LED
digitalWrite (3, faible) ; déclencher la LED
digitalWrite (4, faible) ; déclencher la LED
digitalWrite (5, faible) ; déclencher la LED
digitalWrite (6, faible) ; déclencher la LED
digitalWrite (7, faible) ; déclencher la LED
délai entre les phrases
retard (500) ;
--maintenant faire troisième phrase---
var = 0 ;
tandis que (var < 100) {}
faire quelque chose de répétitif 200 fois
pour (int k = 0; k < sizeof(textString3); k ++) {}
printLetter(textString3[k]) ;
}
var ++ ;
espace entre les mots
delayMicroseconds(worddelay) ;
}
effacer les LEDs
digitalWrite (1, faible) ; déclencher la LED
digitalWrite (2, basse) ; déclencher la LED
digitalWrite (3, faible) ; déclencher la LED
digitalWrite (4, faible) ; déclencher la LED
digitalWrite (5, faible) ; déclencher la LED
digitalWrite (6, faible) ; déclencher la LED
digitalWrite (7, faible) ; déclencher la LED
délai entre les phrases
retard (250) ;
--maintenant faire quatrième phrase---
var = 0 ;
alors que {(var < 175)
faire quelque chose de répétitif 200 fois
pour (int k = 0; k < sizeof(textString4); k ++) {}
printLetter(textString4[k]) ;
}
var ++ ;
espace entre les mots
delayMicroseconds(worddelay) ;
}
}
// }
// ------------------- Functions _________________
Sub printLetter(char ch)
{
Veillez à ce que le personnage est dans les limites de l’alphabet (définis dans le fichier font.h)
Si ce n’est pas le cas, faire un caractère blanc
Si (ch < 32 || ch > 126) {}
ch = 32 ;
}
soustraire le caractère espace (convertit le nombre ASCII pour le numéro d’index de polices)
ch-= 32 ;
faire défiler chaque octet du tableau personnage
pour (int i = 0; i < charWidth; i ++) {}
b octets = police [ch] [i] ;
peu de changement par le biais de l’octet et de sortie sur la broche
pour (int j = 0; j < charHeight; j ++) {}
digitalWrite (LEDpins [j]!! (b & (1 << j))) ;
}
espace entre les colonnes
delayMicroseconds(425) ;
}
effacer les LEDs
digitalWrite (1, faible) ; la valeur de la LED sur
digitalWrite (2, basse) ; la valeur de la LED sur
digitalWrite (3, faible) ; la valeur de la LED sur
digitalWrite (4, faible) ; la valeur de la LED sur
digitalWrite (5, faible) ; la valeur de la LED sur
digitalWrite (6, faible) ; la valeur de la LED sur
digitalWrite (7, faible) ; la valeur de la LED sur
espace entre les lettres
delayMicroseconds(2600) ;
}