Suche Home Einstellungen Anmelden Hilfe  

Zur Ordnungswirkung fundamentaler Ideen der Informatik am Beispiel der theoretischen Schulinformatik

Beispiel 1: Ampelkreuzung mit "Straßenbahn"


Eckart Modrow

Max-Planck-Gymnasium
Theaterplatz 10
37073 Göttingen
emodrow@astro.physik.uni-goettingen.de




Teilgruppe Ampelbau

Die Gruppe verfügt über eine USB-Interfacekarte






sowie eine Unit, die für die Digitalausgänge dieser Karte die folgenden Befehle bereitstellt:
 
procedure an(n: integer);  schaltet den Digitalausgang n ein (1<n<8)
procedure aus(n: integer); schaltet den Digitalausgang n aus (1<n<8)
procedure warte(sec: single) lässt das Programm sec Sekunden pausieren, aber weiter auf Ereignisse reagieren
procedure verbinde(n: integer; a: tApplication);  Damit beim Warten die Anwendung nicht blockiert wird, muss einmal diese Methode aufgerufen werden. Sie verbindet die USB-Karte Nr. n mit der laufenden Application.

Im Anhang sind die erforderlichen Delphi-Units angegeben.
(verplant wurden Doppelstunden)
 
Stunde Inhalt Kommentar
4
Nutzung der USB-Karte unter Delphi
(Die eingebauten LEDs vor den Digitalausgängen werden als Ampelersatz benutzt)
(Die Robotergruppe arbeitet selbstständig!)
System erklären, Delphi starten, einen Button einfügen, Ereignisbehandlung mit UNIT-Befehlen (an, aus, ...)
5
Schaltverhalten der Ampeln auf der Kreuzung programmieren zwei Ampeln einführen, Schaltverhalten den Zeitliniendiagrammen entnehmen, Ausgänge festlegen, ggf. Sonderphasen für Straßenbahnen, ...
6-7
Bau der Ampeln und Verdrahtung Ampeln bauen, Leitungen zusammenlöten und verlegen, Steuerung testen, Absprachen mit der Robotergruppe über Signale für die Straßenbahnen, ...

zur 4. Doppelstunde:

implementation


uses USB_Experimentierplatine;
{$R *.DFM}
 

procedure TForm1.FormCreate(Sender: TObject);
begin verbinde(0,Application) end;

procedure TForm1.bAnClick(Sender: TObject);
begin an(1) end;
 

end.

procedure TForm1.bAnClick(Sender: TObject);


begin
an(1);
warte(1);
aus(1)
end;

procedure TForm1.bAnClick(Sender: TObject);


begin an(1) end;
 

procedure TForm1.bAusClick(Sender: TObject);
begin aus(1) end;
 

zur 5. Doppelstunde:

procedure TForm1.bAnClick(Sender: TObject);


begin
an(1); warte(3); //drei Sekunden rot
an(2); warte(1); //eine Sekunde rotgelb
aus(1);
aus(2);
an(3); warte(3); //drei Sekunden grün
aus(3);
an(2); warte(1); //eine Sekunde gelb
aus(2);
end;

procedure TForm1.bAnClick(Sender: TObject);


begin
while true do //die Ampel läuft "ewig"
  begin
  an(1); warte(3);
  an(2); warte(1);
  aus(1);
  aus(2);
  an(3); warte(3);
  aus(3);
  an(2); warte(1);
  aus(2);
  end
end;

var ampelLaeuft: boolean;


procedure TForm1.bAusClick(Sender: TObject);
begin
ampelLaeuft := false
end;

procedure TForm1.bAnClick(Sender: TObject);
begin
ampelLaeuft := true;
while ampelLaeuft do //die Ampel kann geschaltet werden
  begin
  an(1); warte(3);
  an(2); warte(1);
  aus(1);
  aus(2);
  an(3); warte(3);
  aus(3);
  an(2); warte(1);
  aus(2);
  end
end;
 

zur 6./7. Doppelstunde:


Erweiterungen/Differenzierungsmöglichkeiten:

Nach dieser Unterrichtsphase sollen die Schülerinnen und Schüler mindestens Kenntnisse zu folgenden Themen besitzen:

Benutzer: gast • Besitzer: schwill • Last modified: