Autor
|
Thema: Taster als Schalter via AVR (Gelesen 152199 mal)
|
Fabeulous
Gast
|
Okay nun hab ich es verstanden. Ist ja quasi sowas ähnliches wie das was ich vor habe bzw. gemacht habe nur etwas größer  Kein problem wenn du noch irgendwelche tips wegen der ansteuerung brauchst oder irgendwelche funktionen wie z.b. bytetostr etc... dann sag bescheid!
EDIT: Heute kam meine erste selbst entwickelte Platine  Jetzt werde ich das mal zusammenbauen udn schauen ob meine eagle kenntnisse und verdrahtungen ausreichend richtig waren
|
DSC02164.JPG (94.27 KB - runtergeladen 214 Mal.)
|
« Letzte Änderung: Januar 8, 2008, 16:19:33 von Fabeulous »
|
Gespeichert
|
|
|
|
raDon
Dremelfreund

Karma: +1/-0
Offline
Geschlecht: 
Beiträge: 109

|
Sieht schon sehr gut aus die Platine 
Aber: 90° Winkel sind Böse. Lieber zwei 45° Winkel draus machen. Das beugt Unterätzungen vor.
Tipp: Wenn die Pads einem "dünnen Ring" ähneln: "Datei" > "ULP ausführen" > "drill-aid.ulp" anklicken > "Öffnen" > neuen (kleineren) Bohrdurchmesser einstellen > Fertig  Das Ding füllt alle Bohröcher automatisch aus, und lässt nur ein kleines Loch als Zentrierhilfe offen.
Dadurch lassen sich störende Platinenreste IM Pad vermeiden = bequemeres bestückern der slebst-geätzten Platine.
|
|
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
Okay danke für die tips. Angefertigt habe ich die Platine ja nicht aber das mit den dünnen Ringen ist mir auch aufgefallen das werde ich das nächste mal ändern. Wenn die Platine funktioniert kriegt ihr auch die .brd Datei
EDIT: So die erste Platine ist leider etwas verunglückt. Nachdem ich zwei µC's geschrottet habe hab ich gemerkt das die µC'S als versorgungsspannung 12 Volt ab bekamen was denen garnicht gefiel. Das hatte ich dann korrigiert und es funktionierte auch erst. NUr das programmieren ging nicht. das lesen jedoch schon. Nach 2 Minuten habe ich mir dann aber auch wieder die Finger am ULN2308 und dem µC verbrannt... Also irgendwas habe ich da falsch gemacht!
|
|
« Letzte Änderung: Januar 11, 2008, 16:28:46 von Fabeulous »
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
So bitte helft mir mal. Ich weis nicht was ich bei diesem Schaltplan abgesehen von der falschen verkabelung des Strómsteckers falsch gemacht habe.
http://fabeulousde.h198298.ser...plan_falsch.png
Fehler waren folgende: Bevor ich die Stromzufuhr korrigiert hatte brannte der µC immer durch. Danach lief es eigentlich erst. Aber nach Zwei Minuten war der ULN2308 Sehr heiß(zu heiß) und der µC auch. Beide sind nun kaputt. Ich weis aber einfach nicht warum... Habe ich einen typischen Eagle anfängerfehler gemacht?
EDIT: Ach hier noch die .brd:
http://fabeulousde.h198298.ser...oard_falsch.png
Bitte helft mir für mich ist das absolutes Nueland und ich hab echt keine Ahnung warum das nicht läuft....
|
|
« Letzte Änderung: Januar 12, 2008, 15:40:50 von Fabeulous »
|
Gespeichert
|
|
|
|
Ast
Case-Konstrukteur

Karma: +8/-0
Offline
Geschlecht: 
Beiträge: 589

Astpirin, die Medizin deines Lebens
|
Das einzige das ich sehe ist, dass der Anschluss des µCs links an 5V keinen Verbindungsknoten hat. Also keinen Punkt auf der Verbindungsstelle zur 5V-Leitung. Es könnte also sein, dass Eagle da keine Verbindung gemacht hat.
Außerdem frage ich mich, wieso du die LEDs mit 12V betreibst. Das ist doch Energieverschwendung.
Un das Wirrwar links vom µC ist ziemlich unübersichtlich. Du solltest vermeiden, dass zwei Leitungen vom selben Signal parallel verlaufen. Wenn du nur eine "Hauptleitung" hast, von der Seitlich Leitungen abgehen, ist es viel einfach dem Signalverlauf zu folgen.
Die Brd-Datei habe ich jetzt nich kontrolliert, aber du solltest doch auch selbst in der Lage sein zu überprüfen, ob sie auch wirklich mit dem Schaltplan, wie du ihn dir gedacht hast, übereinstimmt.
|
|
|
Gespeichert
|
There are only 10 types of people in the world: Those who understand binary, and those who don't. -------- How many people can read hex if only you and dead people can read hex?
|
|
|
Fabeulous
Gast
|
Okay danke das mit den LED's ist ein guter Tips werde ich mal bearbeiten.
Doch der µC hat Strom.
Ne andere Sache. Ich habe bevor ich die Platine geroutet habe ja die Ratsnest Funktion genutzt. Kann es sein das die Stromzufuhr inklusive Resteschaltung so krank verkabelt wurde das dadurch eine Überhitzung entsteht? Ich vermute jetzt einfach mal nein. Weil ja eigentlich nur die Positionen der einzelnen Verbindungen verändert wird oder?
Ich habe auch drauf geachtet die Bauteile wie Kondensatoren, Quarze und Widerstände recht nah am µC zu haben aber es läuft trotzdem nicht.
Die .brd Datei muss doch identisch mit dem Schaltplan sein oder? Die .brd Datei wurde doch daraus erzeugt. Ich hab die nur gepostet weil ich gedacht hab das der fehler vlt. an der positionierung der Bauteile liegt...
Aber danke für deine Tips!
|
|
|
Gespeichert
|
|
|
|
raDon
Dremelfreund

Karma: +1/-0
Offline
Geschlecht: 
Beiträge: 109

|
Was mir da auffällt: Der Pin 10 vom ULN kann Unbeschaltet bleiben. Bei dem Pin sind alle Ausgänge über eine Dioden zusammengeschaltet. Der sollte nicht auf VCC liegen, sondern unbeschaltet sein.
Sonst find ich nichts merkwürdiges 
Die Positionierung der Bauteile ist bei solchen Anwendungen unwichtig. Das muss erst beachtet werden, wenn es um Hochfrequente Anwendugneg geht. Funksysteme oder Datenübertragung. Da können parallele Leiterbahnen Probleme machen.
|
|
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
Aber muss Pin 10 nicht angeschlossen sein damit die Dioden des ULN als Löschdioden für die Relais fungieren?
|
|
|
Gespeichert
|
|
|
|
raDon
Dremelfreund

Karma: +1/-0
Offline
Geschlecht: 
Beiträge: 109

|
Da haste recht.
Hab mich im Datenblatt verguckt
|
|
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
macht ja nix! so ich muss die schaltung demnaechst nochmal testen. ich hab mir naemlich einen neuen isp gekauft und ich habe erst vorgestern rausgefunden wie der funktioniert.
ich hab nun auch noch eine zusaetzliche funktion fuer die software bzw. eher zwei. einmal werde ich versuchen eine art zeitschaltuhr einzubauen und dann versuche ich noch was zu basteln das man die relais auch per handy ueber bluetooth steuern kann... mal gucken ob ich das hinbekomme...
|
|
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
So ich wollte mal fragen ob irgendwer in der Zwischenzeit die Hardware nachgebaut hat. Würde nämlich gerne mal das Programm zum testen rumschicken!
|
|
|
Gespeichert
|
|
|
|
Caseschrauber15
LED-Tauscher

Karma: +0/-0
Offline
Geschlecht: 
Beiträge: 31
gib Kaufmods keine Chance!!! wir helfen !!!
|
Ich hab es noch nicht nachgebaut , ist dein schaltplan jetzt so korrekt ?
Bitte adde mich im icq dann mal , hätt da noch ein paar fragen wegen der bestellung  icq nummer ist im Profil
|
|
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
Also ich hab den aktuellen Schaltplan und die .hex file für den MC nochmal dran gehängt! Die dateianedung von Relaiskarte.jpg bitte in .hex ändern (Kann man hex dateien nicht auch uploadbar machen?)! Ich adde dich gleich mal!
|
|
|
|
Fabeulous
Gast
|
Hola! Okay es hat zwar etwas gedauert aber ich habe endlich etwas Zeit gefunden und es ist vollbracht!
Also die Hardware ist fertig. Habe zwei verschiedene Schaltpläne entworfen. Einmal für einen Steckkartenhalter und für den Einbau in einen PC. Die Schaltpläne sind im Anhang.
Die Software bzw. Firmware habe ich in Bascom geschrieben. Die Taster werden darüber, also Softwaremäßig, entprellt und steuern so die 8 Ausgänge am ULN2803 an. Dieser schaltet dann die Status LED’s(welche sich mit einem Jumper auch abstellen lassen) und ggf. die Relais oder anderer „Betriebsmittel“. Diese können dann über einen 10 Pol Wannenstecker angeschlossen werden. Natürlich kann der ULN2803 auch direkt schalten. Dabei sollte man allerdings drauf achten das pro Ausgang nur 500mA fließen dürfen und ggf. ein Kühlkörper verwendet werden sollte…
Außerdem lassen sich die Ausgänge auch noch über den UART steuern. Dazu habe ich vier Befehle einprogrammiert:
„U1“=(Unset1)= Setzt den Wert des 1. Ausgangs auf 0V bzw. logisch 0 „S1“=(Set1)=Setzt den Wert des 1. Ausgangs auf 5V bzw. logisch 1 „T1“=(Toggle1)=Invertiert den Wert des 1. Ausgangs also aus logisch 1 wird logisch 0 oder andersherum „H1“=(How is 1)=Gibt den Wert des 1. Ausgangs zurück. Logisch 1 gibt „An“ zurück. Logisch 0 gibt „Aus“ zurück
Das ganze läuft bei einer Baudrate von 9600 Baud
Außerdem sendet der µC bei einem Tasterdruck also wenn sich einer der Ausgänge verändert hat ein „NS“=(Neuer Status).
Wenn der µC auf Befehle wartet (also quasi immer) sendet er „BD“=(Bin noch da!).
So im Anhang habe ich dann die versprochenen Schaltpläne, Materialliste, Software als Hex und als .bas Datei und noch ein paar Bilder.
Ich selbst habe die Schaltung nur passend für einen Steckkartenhalter aufgebaut. Würde aber den Aufbauplan für die PC Version auch noch routen wenn Interesse besteht.
Ich hätte auch nichts dagegen wenn man daraus ein Tutorial machen würde. Dazu müsste ich nur noch wissen was dazu noch benötigt wird?
MFG Fabeulous
Anhang:
http://fabeulousde.h198298.ser...dingfaq/FRC.rar
EDIT:
Ach so eine Software zum ansteuern muss ich erst noch schreiben. Die Funktionen die diese haben soll stehen irgendwo weiter vorne im Thread 
Aber abgesehen davon denke ich das jeder Mensch der Softwaremäßig begabt ist eigentlich relativ schnell eine Software dafür schreiben können!
Bisher habe ich die Karte also nur per Hterm bzw Hyperterminal getestet...
|
DSC_0106.jpg (111.15 KB - runtergeladen 57 Mal.)
|
« Letzte Änderung: September 16, 2009, 19:57:12 von Fabeulous »
|
Gespeichert
|
|
|
|
Fabeulous
Gast
|
So ich habe mich mal an die Software gemacht. Bräuchte aber jetzt etwas hilfe von den Programmierprofis unter uns... Das schalten funktioniert Soweit. Hotkeys können auch definiert werden. Außerdem kann man auch aus der Taskbar die Programme schalten. Allerdings habe ich ein Problem: Wie kann man das Senden der Daten vom µC zum PC "syncroniseren". Im moment ist es so das sobald der PC sich mit dem µC verbindet er die Daten ampfängt. Nun passiert es aber manchmal das das Empfangen direkt in einem Byte beginnt. Das heißt es werden ganz andere Werte übertragen als eigentlich gesendet wurden. Beispiel: wenn man 11110000 als Byte übertragen möchte und der PC genau in der mitte der Übertragung anfängt zu empfangen dann empfängt er immer nur 00001111 00001111 ... Ich hoffe man versteht was ich meine.
Ich hab mir gedacht das geht irgendwie mit den Stopbits aber da hakts bei mir mit der umsetzzung.
Wäre cool wenn mir irgendwer ein Paar tipps geben könnte wie man das ganze realisieren kann.
Schon mal vielen Schonmal vielen Dank MFG Fabeulous
|
|
« Letzte Änderung: September 28, 2009, 15:02:10 von Fabeulous »
|
Gespeichert
|
|
|
|
|