Autor |
|
|
|
BID = 407711
blamaster Gerade angekommen
Beiträge: 10
|
|
Hallo,
ich bin ganz neu auf dem Gebiet der Microcontroller Technik.
Mein Projekt ist folgendes:
- Eine gewisse Anzahl an Relais soll über den Controller zu einem gewissen Zeitpunkt angesteuert werden können.
- Auf dem Controller sollen sich die Zeit Daten über einen Pc speichern lassen und später über Tastendruck abgerufen werden können.
Die Relais sollten mindestens 12V und um die 20A vertragen können.
Kann mir vielleicht jemand sagen mit welchen Bauteilen das umsetzbar ist bzw. was die Bauteile kosten würden ?
mfg Blamaster |
|
BID = 407745
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
|
Hi blamaster,
geb noch ein paar genauere Infos, so kann man dir noch nicht helfen. Wie viele Relais sollen angesteuert werden. Wie viele Zeiten und welche Zeiträume sollen gespeichert werden (minimale Zeitauflösung). Wie genau sollen die Zeiten eingehalten werden (RTC, DCF77).
Prinzipiel sollte das z.B. mit einem AVR kein großes Problem sein. Ein einfaches Benutzerinterface ist über die serielle Schnittstelle ohne weiteres zu realisieren... und das Timing ist per Timer auch relativ einfach.
Gruß,
SIGINT |
|
BID = 407747
blamaster Gerade angekommen
Beiträge: 10
|
Hallo,
es sollen 20 Relais angesteuert werde.
Die Zeit soll im Formt Minuten/Sekunden/Millisekunden gespeichert werden können.
mfg Blamaster
|
BID = 408122
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Jedenfalls ein sehr 'vielsagender' Threadname.
Also ein ATmega16 hat insgesamt 32 IO-Ports, was auch abzüglich der für die Kommunikation nötigen Pins leicht ausreichen dürfte.
Für die Zeiten würde ich eine struct verwenden.
Für das abrufen per PC gibt es mehrere Möglichkeiten:
1. die Visual Basic Variante unter zuhilfenahme von MSCommControl: ist zwar recht einfach, aber auch langsam und recht eingeschränkt (VB halt)
2. die API Variante: dabei wird über C++ die serielle Schnittstelle direkt angesprochen, was viel schneller geht und außerdem den Vorteil bringt, dass man die Benutzerschnittstelle auf sehr direkte Weise gestalten kann.
Kommt halt drauf an ob du eine schnelle, einfache Lösung oder die Herausforderung suchst (so wie ich).
Welche Kenntnisse hast du über Mikrocontroller, Programmieren, Schaltungen,...
Wenn du von all dem gar keine Ahnung hast (so wie ich vor wenigen Monaten) empfiehlt es sich zb. mit einem ATmega16 anzufangen. (Nicht zu letzt deshalb weil ich mich damit auskenne und dir somit weiterhelfen kann. )
_________________
|
BID = 408286
blamaster Gerade angekommen
Beiträge: 10
|
Hi,
auf dem Gebiet Microkontrollersteuerung bin ich ein absoluter Anfänger.
Programmierkenntisse in C++ sind minimal vorhanden.
Ich denke mal du meinst folgenden Kontroller:
http://www.reichelt.de/?SID=152MDgs.....=1000
Wenn ja wie würde denn da dann ungefähr die Schaltung aussehen ? Die Polbelegung so sagt mir bis auf VCC, GND und AVCC leider reichlich wenig
|
BID = 408337
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
Jo,
den Chip dürfte er meinen... auch wenn mich das Bild etwas stutzen lässt.
Die Relais würde ich über ULN-Treiber ansteuern... die sind extra für sowas gedacht. Da sind gleich die Freilaufdioden im Array integriert. Die passenden Relais kannst du dir dann einfach raussuchen. (12V bei 20A sollte aber machbar sein)
Mit C (GCC) liegst du beim AVR schon nicht schlecht... Assembler sollte aber auch kein großes Problem werden.
Fürs Timing kannst du entweder eine RTC nehmen oder den AVR ein DCF77 Signal dekodieren lassen. Für beides dürftes du schon fertige Beispiele im Netz finden.
Ich persönlich würde dem AVR noch ein Komandozeileninterface verpassen, daß man mit jedem Rechner der Hyperterminal hat die Zeiten anschauen und ändern kann... diese werden dann im internen EEPROM des AVR gespeichert.
Gruß,
SIGINT
|
BID = 408341
blamaster Gerade angekommen
Beiträge: 10
|
Kannst du mir vielleicht den Begriff UULN-Treiber genauer erkläen ? Bin wie schon gesagt ein Neuling auf dem Gebiet
Meine momentan größte Frage ist allerdings die Pinbelegung des Kontrollers.
Ist es schwer eine einfache Programmierbasis zu programmieren die folgendes kann:
Programm so aufgebaut wie eine Tabelle. Die Zeit dann einfach so eintragen Real 1 : Auslösen nach 1 Minute.
Relai 2 : Auslösen nach 1:20 Minuten.
usw. ?
mfg Yannic
|
BID = 408384
bastler16 Schreibmaschine
Beiträge: 2140 Wohnort: Frankreich
|
Zitat :
| Kannst du mir vielleicht den Begriff UULN-Treiber genauer erkläen ? |
Heisst ULN.
Ein IC der nur ein paar Darlington-Transistoren (Open-Collector) enthält, gibts bei Reichelt. (Keine Ahnung ob dir das weiterhilft, sonst frag mal Google oder das Datenblatt vom ULN2003/04)
Zitat :
| Meine momentan größte Frage ist allerdings die Pinbelegung des Kontrollers. |
Frag Google oder schau ins Datenblatt.
Wozu soll das ganze dienen?
|
BID = 408389
blamaster Gerade angekommen
Beiträge: 10
|
Ins Datenblatt habe ich ja schon geschaut. Nur leider werde ich da nicht so wirklich schlau draus.
|
BID = 408401
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Unter "Pin Configuration" sieht man sie:
_________________
|
BID = 408579
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
Eine genaue Zeitbasis vorausgesetzt sollte das mit vertrettbarem Aufwand machbar sein. Du musst aber vorher ganz klar definieren, was das Teil können soll:
Soll eine Art "Count Down Timer" gebaut werden, oder
zu festen Zeitpunkten geschaltet werden.
Wie sollen Zeitpunkte und Zeitspannen angegeben werden (absolut[z.b. montag um 18:20] oder relativ[in 20minuten])...
Soll das Relais nur ein- und ausgeschaltet werden oder auch toggeln, zeitgesteuert werden,etc.
Alle diese Fragen sind zu klären.
Gruß,
SIGINT
|
BID = 408627
PhyMaLehrer Schriftsteller
Beiträge: 911 Wohnort: Leipzig
|
Zitat :
blamaster hat am 20 Feb 2007 19:54 geschrieben :
|
Meine momentan größte Frage ist allerdings die Pinbelegung des Kontrollers.
|
Was einen Anfänger vielleicht ein bißchen verwirrt: Jeder Portpin hat auch irgendeine Sonderfunktion, z. B. Interruptauslösung, Spannungsmessung, serielle Schnittstelle usw. Jeder der P...-Pins läßt sich aber im Programm als ganz normaler Ein- oder Ausgang definieren.
|
BID = 408629
blamaster Gerade angekommen
Beiträge: 10
|
@PhyMaLehrer
Genau das war mein Problem
@Sigint
Also ums nochmal genau zu schreiben
-> Controller aus
-> Controller wird eingeschaltet
-> Durch Taster wird Programm gestartet
-> Dann fängt ein Timer an zu zählen
-> Die einzelnen Kanäle werden dann bei dem erreichten Zeitpunkt geschaltet.
(Nachdem der Taster gedrückt wurde, soll dan z.B. nach 2sek der Erste Kanal geschlossen und somit das Relai ausgelöst werden)
Der Controller soll sich weder selber einschalten noch Tage eingespeichert haben, das ist total egal.
mfg Yannic
Edit. Mit dem ULN war folgender IC gemeint ?
http://www.reichelt.de/?SID=152MDgs.....ET=16
Wenn ja hätte ich zu dem IC noch 2 Anschlussfragen.
Der IC hat ja jeweils Eingang nr.1 und Ausgang nr.1, sprich ih schließe jetzt einen Ausgang des Kontrollers an den Eingang 1 des IC´s und den Relai dann an Ausgang 1 ?
[ Diese Nachricht wurde geändert von: blamaster am 21 Feb 2007 19:27 ]
|
BID = 414343
ffeichtinger Schreibmaschine
Beiträge: 1050 Wohnort: Traunkirchen im Salzkammergut
|
Hallo
Um mit dem Controller überhaupt etwas anfangen zu können benötigt er eine gewisse Grundbeschaltung, wie Quarz für die Taktfrequenz, Kommunikation mit dem PC,... siehe Anhang
Die LED's kannst du natürlich auch weglassen, allerdings sind die oft ganz nützlich zum debuggen.
Du benötigst also:
ATmega16 DIL40
Sockel DIL40
ULN2803 Darlington Array
7805 Fixspannungsregler
Quarz 16MHZ
2xAnschwingkondensatoren 22pF
74HC14 zum Invertieren des RS232 Signals
D-SUB 9 Buchse+Kabel
Bis auf den Controller und die Buchse kosten all diese Teile nicht viel.
eine Handvoll Widerständen, Kabeln, Elko's, Experimentierplatine, Taster,... sollte sowieso jeder haben.
Außerdem benötigst du noch so einige Software. Nach den folgenden Begriffen und Programmen solltest du am besten ein bisschen googlen:
Eine ISP Schnittstelle um auf den rohen Chip den Bootloader auf zu spielen. Dafür benötigst du außerdem einen Programmieradapter (zb. Reichelt oder selber bauen) sowie zb. PonyProg. (Ich hab das selbst noch nie gemacht, da auf meinem schon ein Bootloader oben war. )
Ist der Bootloader erst mal oben kannst du deine Programme mit einem C Compiler (WINAVR) schreiben und mit einem speziellen Programm (Megaload) über die COM-Schnittstelle auf den Controller speichern.
Es ist sehr empfehlenswert eine eigene kleine Sammlung von Programmen und Datenblättern an zu legen, vor allem von den IC's die du verarbeiten willst. Datenblätter findest du zb. bei: http://www.alldatasheet.com/
Der ULN macht im Prinzip nichts anderes als den Ausgang mit Masse zu verbinden, wenn der Eingang vom µC angesprochen wird (wenn du den ULN gleich neben dem ATmega16 in die Platine Fallen lässt kannst du die entsprechenden PIN's gleich mit einem Tropfen Lötzinn verbinden). Du kannst die Last (Relais) also zwischen Versorgungsspannung und dem Ausgang anschließen. Der PIN GND gehört auf GND, und wenn du induktive Lasten Schalten willst (wie zb. Relais) solltest du 'COMMON FREE WHEELING DIODES' zusätzlich an die Versorgungsspannung der Relais anschließen.
Soviel mal zu Vorbereitung, wenn du das geschafft hast ist das Programmieren nicht mehr schwer.
_________________
|
BID = 414713
selfman Schreibmaschine
Beiträge: 1681 Wohnort: Seekirchen a. W.
|
@ffeichtinger
Zitat :
| 'COMMON FREE WHEELING DIODES' |
Heißt das in der Übersetzung wirklich so oder ist das eine Übersetzung á la
Zitat :
| BOTTLE TRAIN = Flaschenzug |
Gruß Selfman
_________________
Traue keinem Ding, das du nicht selber vermurkst hast.
|