Projekt Eieruhr mit PIC-Mikrocontrollern |
![]() |
![]() |
Letztmalig dran rumgefummelt: 19.05.11 12:22:03 |
Die Controller-Projekte sollen anspruchsvoll sein, jedoch auch für jeden grundsätzlich lösbar bleiben. Hier nun werden nicht nur an den Schaltungsaufbau sowie die Software-Entwicklung Anforderungen gestellt (das können wir hier schon!!!), der Entwurf plus "Dimensionierung" einer entsprechenden Schaltung nach einer vorgegebenen Aufgabe kommen mit nicht unerheblichen Aufwand noch hinzu. Dann muss ein entsprechendes Modell gefertigt werden und die Schaltung mit dem Software-Konstrukt ein sinnvolles Ganzes ergeben. Der berühmte Operator heißt hier: "... mach mal!!!" | |
1. Aufgabe/Vorüberlegungen |
1. Aufgabe/Vorüberlegungen |
Ziel war es eine zeitlich programmierbare Eieruhr (Sanduhr) mithilfe eines PIC16F877A zu erstellen | |
Eieruhren (Sanduhren) funktionieren so das zu beginn der komplette obere Teil und zu ende der komplette untere Teil gefüllt ist, beim zeitlichen Ablauf wird die Menge im oberen Teil geringer und im unteren Teil gleich viel größer, Dies muss man nun aus Technischer Sicht vereinfachen. dabei gilt das von 2 jeweils gegenüber liegenden Lämpchenreihen ( oben und unten )nur eine Leuchtet. |
2. Bauteile/Schaltplan |
Nachdem der Grundlegende Aufbau klar ist, muss meine eine Schaltung entwickeln die die Rahmenbedingungen erfüllt, so muss die Schaltung aus Folgenden Elementen bestehen der "Eieruhr-form" aufgebaut aus Led´s dem Controller und den Verstärkern, da ein Ausgang keine Vielzahl von Led´s ansteuern kann, außerdem noch einen Reset-Taster und 2 weitere Taster ( dazu mehr im 3. Teil ) |
|
![]() Schlatplan als Download |
3. Programierung |
Nun geht es an die Erstellung des Programms, dabei muss zunächst die Abfolge der Led´s Programmiert werden, für die Abfolge der Ablaufenden Zeit. 11111111111 111111111 1111111 11111 111 1 000 00000 0000000 000000000 00000000000 0000000000 111111111 1111111 11111 111 1 000 00000 0000000 000000000 111111111111 |
|
Nun muss vor jede neue "Zeitstufe" eine Verzögerung diese entspricht pro umschalte Vorgang ((Anzahl der Reihen)-1)/2 = in diesem Fall beträgt die Lösung 5 Also die Gesamtzeit geteilt durch 5. --> delay_1s(Gesamtzeit/5) Zuletzt muss noch eine Möglichkeit gegeben sein die Durchlaufzeit zu regeln, dies erreicht man einfach indem man eine Counter-Variable einfügt und eine Zeiteinheit für die Stufenweise Erhöhung der Zeit Festlegt, in dem Fall 60sec. -->delay_1s((counter*60)/5) Um nun den Wert für Counter Festzulegen Bedarf es einer Vorschleife, mit einer Bedingung die erst die Sanduhr startet nachdem die Zeit eingegeben wurde. --> while pin_d0==low loop -- reserviert für Counter zähl Prozess end loop Nun noch die eigentliche Eingabe des Counter-Werts, mit Entprellung des Signals ( hierbei gilt ein Tastendruck für dich, sind mehrere Tastendrücke für den Controller ), dies erreicht man indem man schleifen verwendet die nur einmal das Signal durch lassen. -->While pin_d1==low loop -- tut solange nichts bis ein high kommt end loop counter=counter+1 -- addiert zum Counterwert eine Zeiteinheit while pin_d1==high loop -- tut solange nicht bis kein high mehr kommt end loop |
4. Funktion/Besonderheit |
Um die Sanduhr bedienen zu können muss man zunächst die Aufgabe der einzelnen Schalter kennen. A-->counter + 1 (60 Sekunden) B-->Start C-->Reset Bei Eingabe der Zeit und dem Starten muss man folgende dinge beachten 1. die Counter Variable läst sich nur alle 3 Sekunden erhöhen, das liegt daran das nach dem addieren eine 2 Sekunden-Pause nötig ist um die Eingabe zu Beenden, da ansonsten der Prozess direkt oberhalb der Zeiteingabe Feststecken würde und es nicht möglich ware den Zeitablauf zu Starte. Um das Programm zu starten muss man innerhalb der 2 Sekunden nach der letzten Zeit Eingabe den Startschalter betätigen und diesem halten, und zwar solange bis nur die obere hälfte der Sanduhr leuchtet, dann startet das Programm. Es muss mindesten einmal der Knopf A und B gedrückt werden ( 0 Sekunden würden auch wenig Sinn machen ;). |
|
|
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 1. März 2010 um 13.28 Uhr |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei f! Diddi Hallervorden, dt. Komiker und Kabarettist |
Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-) |