Paso 37: Programa listado Arduino Uno R3 (aceptador)
La Arduino Uno R3 Lee cuando la entrada de moneda insertada está conectada a tierra. La Arduino Uno R3 también determina la animación de show y archivo de audio para jugar y envía un código binario de 4 dígitos para el reproductor de Audio Arduino Uno R3 que representa el archivo de audio deseado para reproducirse. Además de enviar el código binario de 4 dígitos, pide también una subrutina para reproducirse al Maestro. Consulte los planos eléctricos para obtener información de conexión. Actualmente, solo estoy emitiendo tres espectáculos diferentes pero tienen la capacidad de emitir 15 espectáculos diferentes basados en el código binario disponible. El código de Arduino se enumera a continuación.
serie a la configuración de maestro
#include
#define txPin 6
#define rxPin 7
MySerial SoftwareSerial (rxPin, txPin);
void setup()
{
Serial.Begin(9600); Habilitar puerto serie Local de depuración
Serie a la configuración de maestro
Serial.Begin(9600);
Retraso en el poder hasta para evitar la activación del efecto
Delay(10000);
Configurar pin 3 como entrada del relais ADAFruit controlador de arte. Relevador accionado por moneda mech.
pinMode (3, INPUT_PULLUP);
definir pins para la serie de software
pinMode (txPin, salida);
pinMode (rxPin, entrada);
definir pines para enviar a music maker arduino
pinMode (14, salida); para binario, pin 22 es 1 pin 24 2, pin 28 es 4, es el pin 30 es de 8
pinMode (15, salida); para binario, pin 22 es 1 pin 24 2, pin 28 es 4, es el pin 30 es de 8
pinMode (16, salida); para binario, pin 22 es 1 pin 24 2, pin 28 es 4, es el pin 30 es de 8
pinMode (salida 17); para binario, pin 22 es 1 pin 24 2, pin 28 es 4, es el pin 30 es de 8
Ajuste los pernos bajo
digitalWrite (14, bajo); 1 2 4 8
digitalWrite (15, bajo); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
Serial.println ("John Guarnero Señora K Fortune Teller Moneda Mech Arduno");
}
Mostrar número para jugar en maestro y audio;
int ShowNumber = 1;
int Coin_Memory = 0;
int Allow_Run = 1; añadido alow ya cuando un relé desenergizado, a veces sería iniciar un disparador como se inserta una moneda. Esto resuelve cualquier problema de tiro inductivo.
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;
retrasar (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); Ejecute la subrutina 1
mySerial.write((byte)0x00); id de dispositivo
Enviar valor binario 1 a Uno a jugar WAV archivo S1
digitalWrite (14, alto); 1 2 4 8
digitalWrite (15, bajo); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
Delay (500);
digitalWrite (14, bajo); 1 2 4 8
digitalWrite (15, bajo); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
retardo (30000); retardo (30000); retardo (30000); retrasar (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); Ejecute la subrutina 2
mySerial.write((byte)0x01); id de dispositivo
Enviar valor binario 2 a Uno jugar a WAV archivo S2
digitalWrite (14, bajo); 1 2 4 8
digitalWrite (15, alto); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
Delay (500);
digitalWrite (14, bajo); 1 2 4 8
digitalWrite (15, bajo); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
retardo (30000); retardo (30000); retardo (30000); retrasar (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); Ejecute la subrutina 3
mySerial.write((byte)0x02); id de dispositivo
Enviar valor binario 3 a Uno jugar a WAV archivo S3
digitalWrite (14, alto); 1 2 4 8
digitalWrite (15, alto); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
Delay (500);
digitalWrite (14, bajo); 1 2 4 8
digitalWrite (15, bajo); 1 2 4 8
digitalWrite (16, bajo); 1 2 4 8
digitalWrite (17, bajo); 1 2 4 8
retardo (30000); retardo (30000); retardo (30000); retrasar (5000);
Coin_Memory = 0;
Allow_Run = 1;
ShowNumber = 1;
}
}
}