Digital production course
Nissim Peretz
ROLLING THE DICE CODE:
//הגדרת משתנה לפין
int first = 2;
int second = 3;
int third = 4;
int fourth = 5;
int fifth = 6;
int sixth = 7;
// הגדרת כפתור לפין
int button = 11;
// משתנה כדי לבדוק האם הכפתור נלחץ
int pressed = 0;
void setup() {
//הגדרת לדים
for (int i=first; i<=sixth; i++) {
pinMode(i, OUTPUT);
}
// הגדרת הכפתור
pinMode(button, INPUT);
randomSeed(analogRead(0));
// if we're debugging, connect to serial
#ifdef DEBUG
Serial.begin(9600);
#endif
}
void buildUpTension() {
// הדלק את הנורות משמאל לימין עד לחיצת כפתור
// left to right
for (int i=first; i<=sixth; i++) {
if (i!=first) {
digitalWrite(i-1, LOW);
}
digitalWrite(i, HIGH);
delay(200);
}
// right to left ימין לשמאל
for (int i=sixth; i>=first; i--) {
if (i!=sixth) {
digitalWrite(i+1, LOW);
}
digitalWrite(i, HIGH);
delay(200);
}
}
void showNumber(int number) { // הגדרת פונקציה בשם showNumber שמדליקה מספר מנורות לפי המספר הרנדומלי
digitalWrite(first, HIGH);
if (number >= 2) {
digitalWrite(second, HIGH);
}
if (number >= 3) {
digitalWrite(third, HIGH);
}
if (number >= 4) {
digitalWrite(fourth, HIGH);
}
if (number >= 5) {
digitalWrite(fifth, HIGH);
}
if (number == 6) {
digitalWrite(sixth, HIGH);
}
}
int throwDice() { // הכנסה למשתנה מספר אקראי
int randNumber = random(1,7); // קבל מספר אקראי בין 1 ל 6
#ifdef DEBUG
Serial.println(randNumber);
#endif
return randNumber;//פלט מספר אקראי
}
void setAllLEDs(int value) {
for (int i=first; i<=sixth; i++) {
digitalWrite(i, value);
}
}
void loop() {
pressed = digitalRead(button);
if (pressed == HIGH) { // אם הכפתור לחוץ
setAllLEDs(LOW); // התחל את כל הנורות
int thrownNumber = throwDice(); //תכניס את המספר הרנדומלי למשתנה
showNumber(thrownNumber); //הכנס את המספר הרנדומלי לפונקציה שמדליקה נורות לפי המספר הרנדומלי
}
}

