Etape 37 : Programme inscription - Arduino Uno R3 (accepteur de pièce)
L’Arduino Uno R3 lit lorsque l’entrée de la pièce insérée est raccordée à la terre. L’Arduino Uno R3 aussi détermine le spectacle animation et le fichier audio à jouer et envoie un code binaire à 4 chiffres pour l’Audio Player Arduino Uno R3 qui représente le fichier audio souhaité d’être joué. En plus d’envoyer le code binaire de 4 chiffres, elle demande aussi une sous-routine pour être joué au Maestro. Se référer aux dessins pour l’information de raccordement électriques. Actuellement, je suis seulement délivrer trois spectacles différents, mais j’ai la possibilité de délivrer 15 spectacles différents basés sur le code binaire disponible. Le code de l’Arduino est répertorié ci-dessous.
série-maestro config
#include
#define txPin 6
#define rxPin 7
SoftwareSerial mySerial (rxPin, txPin) ;
void setup()
{
Serial.Begin(9600) ; Activer pour le débogage Local Serial Port
Série-maestro config
Serial.Begin(9600) ;
Retard à la puissance vers le haut pour éviter le déclenchement de l’effet
Delay(10000) ;
Mettre la broche 3 comme l’entrée du relais ADAFruit Art contrôleur. Relais déclenché par pièce Mech.
pinMode (3, INPUT_PULLUP) ;
définir les broches pour le logiciel serial
pinMode (txPin, sortie) ;
pinMode (rxPin, entrée) ;
définir les goupilles d’envoyer à music maker arduino
pinMode (sortie 14) ; pour binaire, broche 22 est 1, pin 24 est 2, broche 28 est 4, broche 30 est de 8
pinMode (15, sortie) ; pour binaire, broche 22 est 1, pin 24 est 2, broche 28 est 4, broche 30 est de 8
pinMode (16, sortie) ; pour binaire, broche 22 est 1, pin 24 est 2, broche 28 est 4, broche 30 est de 8
pinMode (sortie 17) ; pour binaire, broche 22 est 1, pin 24 est 2, broche 28 est 4, broche 30 est de 8
Réglez de façon strictement faible
digitalWrite (14, LOW) ; 1 2 4 8
digitalWrite (15, faible) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
Serial.println ("John Guarnero Madame K Fortune Teller Coin Mech Arduno") ;
}
concert numéro à jouer sur maestro et audio ;
int ShowNumber = 1 ;
int Coin_Memory = 0 ;
int Allow_Run = 1 ; ajouté alow courir car quand un relais de mise hors tension, il serait parfois initie un déclencheur comme une pièce de monnaie a été inséré. Cela résolu tout problème kick inductive.
int Coin_Detected_Debounce = 0 ;
void loop()
{
int Coin_Detected = digitalRead(3) ;
Si (Coin_Detected == 0)
{
Coin_Detected_Debounce = Coin_Detected_Debounce + 1 ;
Serial.println(Coin_Detected_Debounce) ;
}
Si (Coin_Detected == 1)
{
Coin_Detected_Debounce = 0 ;
}
Si (Coin_Detected_Debounce > = 150 & & Allow_Run == 1)
{
Coin_Memory = 1 ;
retarder (1000) ;
}
{
Si (ShowNumber == 1 & & Coin_Memory == 1)
{
Allow_Run = 0 ;
Si (mySerial.available())
Serial.Write(mySerial.Read()) ;
Si (Serial.available())
mySerial.write(Serial.read()) ;
mySerial.write(0xA7) ; l’exécution de sous-routine 1
mySerial.write((byte)0x00) ; id de périphérique
Envoyer la valeur binaire 1 à Uno jouer WAV File S1
digitalWrite (14, HIGH) ; 1 2 4 8
digitalWrite (15, faible) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
retard (500) ;
digitalWrite (14, LOW) ; 1 2 4 8
digitalWrite (15, faible) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
délai (30000) ; délai (30000) ; délai (30000) ; retarder (5000) ;
Coin_Memory = 0 ;
Allow_Run = 1 ;
ShowNumber = ShowNumber + 1 ;
}
Si (ShowNumber == 2 & & Coin_Memory == 1)
{
Allow_Run = 0 ;
Si (mySerial.available())
Serial.Write(mySerial.Read()) ;
Si (Serial.available())
mySerial.write(Serial.read()) ;
mySerial.write(0xA7) ; l’exécution de sous-routine 2
mySerial.write((byte)0x01) ; id de périphérique
Envoyer valeur binaire 2 à Uno jouer WAV File S2
digitalWrite (14, LOW) ; 1 2 4 8
digitalWrite (15, HIGH) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
retard (500) ;
digitalWrite (14, LOW) ; 1 2 4 8
digitalWrite (15, faible) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
délai (30000) ; délai (30000) ; délai (30000) ; retarder (5000) ;
Coin_Memory = 0 ;
Allow_Run = 1 ;
ShowNumber = ShowNumber + 1 ;
}
Si (ShowNumber == 3 & & Coin_Memory == 1)
{
Allow_Run = 0 ;
Si (mySerial.available())
Serial.Write(mySerial.Read()) ;
Si (Serial.available())
mySerial.write(Serial.read()) ;
mySerial.write(0xA7) ; l’exécution de sous-routine 3
mySerial.write((byte)0x02) ; id de périphérique
Envoyer valeur binaire 3 à Uno jouer WAV File S3
digitalWrite (14, HIGH) ; 1 2 4 8
digitalWrite (15, HIGH) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
retard (500) ;
digitalWrite (14, LOW) ; 1 2 4 8
digitalWrite (15, faible) ; 1 2 4 8
digitalWrite (16, faible) ; 1 2 4 8
digitalWrite (17, basse) ; 1 2 4 8
délai (30000) ; délai (30000) ; délai (30000) ; retarder (5000) ;
Coin_Memory = 0 ;
Allow_Run = 1 ;
ShowNumber = 1 ;
}
}
}