Hi,
I'm a total newbie, so please forgive every forum convention I unintensionally break.
I have just made my two first posts, presenting myself and a little of my bigger project plan in this following thread:
http://arduino.cc/forum/index.php/topic,149747.0.html
Still I haven't even recieved my first Arduino units, but I have downloaded and tried the Windows IDE. So far, so good!
In order to restore as much functionality as possible to the old, broken Spanish Solid State pinball, I have decided to try to use one or probably more Arduino units together with some TTL circuits and the boards that still are somewhat functional on the game. See link above for more details.
The first step involving an Arduino unit will be controlling the behaviour of the triple drop target bank. I have written some sketch code that I don't know if it will work, probably not becuse I obviously can't test it before the Arduino boards have arrived. But at least it compiiles fine without warnings or errors in the IDE, but I'd like to have some input on the code to make sure I got it all right. So, here it is:
// Drop Target Sketch rev 001 2013-02-19
const int alldropsswPin = 2; // All Drop Targets Down Switch Pin
const int addBonusPin = 11; // Add Bonus Pin
const int score1000Pin = 12; // Score 1000pts/Hi-pitch Beep Pin
const int dropsolenoidPin = 13; // Reset Drop Target Bank Solenoid Pin
void setup()
{
// initialize the All Drop Targets Down Switch pin as input:
pinMode(alldropsswPin, INPUT);
// initialize the Add Bonus pin as output:
pinMode(addBonusPin, OUTPUT);
// initialize the Score 1000 Points pin as output:
pinMode(score1000Pin, OUTPUT);
// initialize Reset Drop Target Bank Solenoid pin as output:
pinMode(dropsolenoidPin, OUTPUT);
// Set initial state on output pins
// All activated/triggered on pin going LOW
digitalWrite(score1000Pin, HIGH);
digitalWrite(addBonusPin, HIGH);
digitalWrite(dropsolenoidPin, HIGH);
}
void loop()
{
if (alldown())
{
delay(200);
// Score 1000 pts + add 1 bonus
// TO DO: Disable the 3 individual Target Going Down Momentary Switches!!!
digitalWrite(score1000Pin, LOW);
digitalWrite(addBonusPin, LOW);
delay(40);
digitalWrite(score1000Pin, HIGH);
digitalWrite(addBonusPin, HIGH);
for(int i=0;i<4;i++)
{
delay(100);
digitalWrite(score1000Pin, LOW);
delay(40);
digitalWrite(score1000Pin, HIGH);
}
delay(200);
// Reset Drop Targets
digitalWrite(dropsolenoidPin, LOW);
delay(200);
digitalWrite(dropsolenoidPin, HIGH);
// TO DO: Enable the 3 individual Target Going Down Momentary Switches!!!
}
}
boolean alldown()
{
// Check if the All Drop Targets Down Switch is closed (ie grounded)
// If so, double-check if it's still closed after 50 ms
// just to eliminate the risk of false triggering and other error sources
// Return TRUE only if switch is closed at both times,
// Else return FALSE
if (digitalRead(alldropsswPin) == LOW)
{
delay(50);
if (digitalRead(alldropsswPin) == LOW)
{
return (false);
}
else return(true);
}
else return(true);
}
Many thanks in advance,
/Tore