Advertisement
Dimasw

Arduino zufalls zahl geber

Jan 21st, 2021
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. //Roulet Zahlengeber von 1 bis 9 mit 7 Segment anzeige
  2. //Dimas Wiedemann 18.11.2020
  3.  
  4. //A13,B12,C11,D10,E9,F8,G7; Die Segmente in verbindung zum Pin, SegmentPIN.
  5. int current = 1; //Die gewählte zahl von 1 bis 9
  6. int pin = 13; // Die einzelne pins
  7. int section = 0; //Der ausgewehlte LED Segment
  8. int number[9][7] = { // Ein 2D array wo die Zahle in Spalten sotiert sind und die LED Segmente in Zeilen.
  9. {0,1,1,0,0,0,0}, //1
  10. {1,1,0,1,1,0,1}, //2
  11. {1,1,1,1,0,0,1}, //3
  12. {0,1,1,0,0,1,1}, //4
  13. {1,0,1,1,0,1,1}, //5
  14. {1,0,1,1,1,1,1}, //6
  15. {1,1,1,0,0,0,0}, //7
  16. {1,1,1,1,1,1,1}, //8
  17. {1,1,1,1,0,1,1} //9
  18. };
  19.  
  20. void show() // Einge Funktion definiert um sich nicht zu wiederholen beim einzeigen. Wir defineren es bevor setup weil es dort benutzt wird.
  21. {
  22. pin = 13; //Starten wir von Pin 13
  23. section = 0; // Starten wir von section 0
  24. for (int x = 0; x < 7; x++) { //Wir haben 7 Segmente also laufen wir durch die alle.
  25. digitalWrite(pin, number[current-1][section]); // Zuerst wählen wir den Pin und schauen ob er an oder aus sein soll. Der array fragt welche Zahl mit current und -1 weil der array von 0 anfängt.
  26. pin--; //Wir gehen ein pin runter
  27. section++; //Wir gehen zum nächsten Segment
  28. }
  29. }
  30.  
  31. void setup()
  32. {
  33.  
  34. for (int i = 7; i < 14; i++) { // Definiere i als 7 Local, frage ob i kleiner ist als 14 und erhöhe es bei nächste abfrage.
  35. pinMode(i, OUTPUT); // Pin 7 bis zu 13 wird als Ausgang gesetzt
  36. }
  37. pinMode(1, INPUT); //Pin 1 als Eingang setzen
  38. current = random(1,10); // Zufalls zahl von 1 bis 9
  39. show(); // Zeige unsere zufalls start Zahl
  40. }
  41.  
  42.  
  43. void loop()
  44. {
  45. if (digitalRead(1)) { // Ist der Knopf gedrückt?
  46. delay(100); // Warte 1/10 Sekunde um ein rollen der Zahl zu simulieren. Wir warten bevor wir eine neue Zahl wählen um schummeln zu vermeiden.
  47. current = random(1,10); // Wähle eine zahl von 1 bis 9
  48. show(); // Zeige unsere zufalls zahl
  49. }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement