Advertisement
mnlpnn

dado display

Feb 25th, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. /* g f kc a b (pin 0) -> a
  2. | | | | | (pin 1) -> b
  3. ------------- (pin 2) -> c
  4. | a | (pin 3) -> d
  5. | --- | (pin 4) -> e
  6. | f | g | b | (pin 5) -> f
  7. | --- | (pin 6) -> g
  8. | e | | c | kc -> GND
  9. | --- | dp -> NC
  10. | d |
  11. -------------
  12. | | | | |
  13. e d kc c dp */
  14. #define pulsante 10
  15. #define a 0
  16. #define b 1
  17. #define c 2
  18. #define d 3
  19. #define e 4
  20. #define f 5
  21. #define g 6
  22. #define dp 7
  23. // Lookup table per display catodo comune: B0gfedcba
  24. byte lookup_7segmenti_catodocomune[10] = {
  25. B00111111, B00000110, B01011011, B01001111, B01100110,
  26. B01101101, B01111101, B00000111, B01111111, B01101111 };
  27. int statopresentepulsante = LOW;
  28. int statoprecedentepulsante = LOW;
  29. int numero;
  30.  
  31. void setup(){
  32. pinMode(pulsante, INPUT);
  33. pinMode(a, OUTPUT);
  34. pinMode(b, OUTPUT);
  35. pinMode(c, OUTPUT);
  36. pinMode(d, OUTPUT);
  37. pinMode(e, OUTPUT);
  38. pinMode(f, OUTPUT);
  39. pinMode(g, OUTPUT);
  40. randomSeed(analogRead(0));
  41. }
  42.  
  43. void displayWrite(int numero)
  44. {
  45. for (int i=a; i<=g; i++)
  46. {
  47. digitalWrite(i,numero&1);
  48. numero = numero >> 1;
  49. }
  50. }
  51.  
  52.  
  53. void loop() {
  54. statopresentepulsante = digitalRead (A0);
  55. if ((statopresentepulsante == HIGH)&&(statoprecedentepulsante == LOW))
  56. {
  57. numero=random(1,7);
  58.  
  59. }
  60. statoprecedentepulsante = statopresentepulsante;
  61. delay (50);
  62.  
  63. displayWrite(lookup_7segmenti_catodocomune[numero]);
  64.  
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement