Forum: Mikrocontroller und Digitale Elektronik Zufallsgenerator mit 7-Segment


von Dirk B. (bau3r)


Lesenswert?

Hey Leute,
ich bräuchte von euch mal ein bischen Hilfe.

Ich möchte gerne eine Schaltung Aufbauen bei dem ich mit 7-Segment 
Anzeigen  eine Zahl (1-40) ODER (A-D, +  1-10) per "Zufall" generieren 
kann die jedoch dann bei dem nächten Zufall herausfällt, bis es keine 
Möglichkeit mehr gibt.
Es sollte ein Start/Stop funktion des Generators geben und einen 
kompletten Rest der Möglichkeiten.

Wie schwer wird sich so ein Projekt gestalten? Mit Micocontrollern habe 
ich noch nichts gemacht, daher bin ich mir bis jetzt noch sehr unsicher 
welche Hardware ich benötige um mich auch dementsprechend ein zu lesen.
Bzw muss ich mir selbst etwas programmieren bzgl der 
Auswahlmöglichkeiten des Generators?

von Werner H. (pic16)


Lesenswert?

such mal hier im Forum nach Lottozahlengenerator.

von Karl M. (Gast)


Lesenswert?

Hallo,

mit einem Micocontroller, z.B. Atmel atmega328p und 2x 7segment LED
und einer eindeutigen Logik kein Problem.

von Michael B. (laberkopp)


Lesenswert?

Dirk B. schrieb:
> Wie schwer wird sich so ein Projekt gestalten? Mit Micocontrollern habe
> ich noch nichts gemacht,

Ohne Microcontroller ziemlich aufwändig, mit Arduino simpel:
1
bool pressed,down;
2
char used[40];
3
char free;
4
char choosen;
5
char segment7[]={0xBF,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x7F,0x6F,0x77,0x7C,0x39,0x5E};
6
// PortD.7 = Pin7 geht auf 1 um 1 von 10 darzustellen, sonst aus
7
8
void setup() 
9
{
10
  for(free=0;free<40;free++) used[free]=free;
11
  DDRC = 0xFF;
12
  DDRD = 0xFF;
13
  choosen=0;
14
}
15
16
void loop()
17
{
18
  pressed = DigitalRead(10); // Taster an Pin 10 nach VCC, 10k an GND
19
  if(free>0&&pressed&&!down)
20
  {
21
    PORTC=segment7[used[choosen]/10+10];  // 7 Segment für A..D an PortC
22
    PORTD=segment7[used[choosen]%10]; // 7 Segment für 10,1..9 an PortD
23
    used[choosen]=used[free-1];
24
    free--;
25
  }
26
  down=pressed
27
  delay(5);
28
  choosen++;
29
  if(choosen>=free) choosen=0;
30
}

von Dirk B. (bau3r)


Lesenswert?

Ok vielen Dank, genau solch einen Input brauchte ich noch.
Dann muss ich mich nur mal in die Programmiersprache C einlesen ^^
Würde dann ein Arduino Board UNO 65139 ATMega328 dafür ausreichen?

von Michael B. (laberkopp)


Lesenswert?

Dirk B. schrieb:
> Würde dann ein Arduino Board UNO 65139 ATMega328 dafür ausreichen?

Locker.
Der rechnet währenddessen noch die Lottozahlen von nächster Woche aus.

Aber: Offiziell hat der Uno nur 12 nutzbare Digitalausgänge. Daß man 
auch die Analogeingänge als Digitalausgang schalten kann, findet man 
nicht auf Anhieb. Sie heissen A0 bis A5 oder A7. Dann reichen die 
Anschlüsse um ohne weitere ICs die Anzeigen zu steuern.

von Manfred (Gast)


Lesenswert?

Michael B. schrieb:
> Aber: Offiziell hat der Uno nur 12 nutzbare Digitalausgänge.

7 x 2 = 9 Ausgänge, wenn man Multiplex macht, bei zwei Anzeigen kein 
großes Ding.

> Daß man auch die Analogeingänge als Digitalausgang schalten kann, findet man
> nicht auf Anhieb. Sie heissen A0 bis A5 oder A7.

Stimmt, A0..A5 werden dann als 14..19 angesprochen.

Nach den mir vorliegenden Informationen können A6 und A7 nicht digital 
verwendet werden, egal, da beim Uno eh nicht herausgeführt.

von Route_66 H. (route_66)


Lesenswert?

Manfred schrieb:
> 7 x 2 = 9 Ausgänge, wenn man Multiplex macht, bei zwei Anzeigen kein
> großes Ding.

Damit kann man auch 4 stellig 7-Segment-Anzeigen steuern.
Für zwei Stellen genügen 8 Ausgänge. Denn ein Bit genügt, um zwischen 
Einer- und Zehnerstelle zu wechseln.

von Reiner_Gast (Gast)


Lesenswert?

Route 6. schrieb:
> Manfred schrieb:
>> 7 x 2 = 9 Ausgänge, wenn man Multiplex macht, bei zwei Anzeigen kein
>> großes Ding.
>
> Damit kann man auch 4 stellig 7-Segment-Anzeigen steuern.
> Für zwei Stellen genügen 8 Ausgänge. Denn ein Bit genügt, um zwischen
> Einer- und Zehnerstelle zu wechseln.

Oder man besorgt sich eines der günstigen 7-Segment Anzeigen auf Basis 
eines...

MAX7221: 
https://www.amazon.de/Digitales-segment-Display-MAX7219-Raspberry/dp/B01MXQ4WJL/ref=sr_1_1?ie=UTF8&qid=1517301021&sr=8-1&keywords=max7221+arduino

oder eines TM1671: 
https://www.ebay.de/itm/LED-TM1637-4-Digit-Ziffern-7-Segment-Display-Modul-Arduino-Raspberry-Pi-rot-A/252799083792?hash=item3adbffe510:g:KykAAOSwm3paD2YO

oder eines HT1621: 
http://www.ebay.de/itm/LCD-Module-6-Bit-8-Segment-3-wires-SPI-HT1621-Module-Character-LCD-for-Arduino-D/391868765851?hash=item5b3d32d69b:g:Ug4AAOSw7cxZmp86

Die brauchen deutlich weniger Pins

von Jack (Gast)


Lesenswert?

Reiner_Gast schrieb:
> oder eines TM1671:
> Ebay-Artikel Nr. 252799083792

Für ein bisschen mehr Spaß würde ich ein TM1671 Board mit zusätzlichen 
Tastern nehmen: https://www.ebay.de/itm/173018613822

Damit hat man auch die Start/Stop Taste für den Generator.

von Reiner_Gast (Gast)


Lesenswert?

Jack schrieb:
> Reiner_Gast schrieb:
>> oder eines TM1671:
>> Ebay-Artikel Nr. 252799083792
>
> Für ein bisschen mehr Spaß würde ich ein TM1671 Board mit zusätzlichen
> Tastern nehmen: Ebay-Artikel Nr. 173018613822
>
> Damit hat man auch die Start/Stop Taste für den Generator.

Das stimmt... das habe ich zuhause auch im Einsatz.

von Reiner_Gast (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.