Guten Abend ihr,
Nach zwei Stunden Internetrecherche schreib ich nun doch mal an die
Profis.
Und zwar habe ich mir eine USB Relaiskarte von Abacom gekauft:
http://www.ebay.de/itm/USB-Relaiskarte-mit-8-Relais-PC-nach-I2C-Adapter-/360253432923?pt=Mess_Pr%C3%BCftechnik&hash=item53e0c7245b
Es wird hier ein CH341A USB Chipsatz mit integrierter I2C- Schnittstelle
verwendet.
Sie funktioniert auch wunderbar. Mitgeliefert wurde eine Active X
Komponente, die man über VBA (Access VBA / Excel VBA) ansprechen kann.
Beispielskript von mir:
Da ich als Fachinformatiker arbeite und auch Skripte, fällt mir das
Programmieren hier nicht schwer.
Nun kostet die Karte 40 € was an sich schon sehr teuer ist.
Zudem mache ich gern viel nach dem Motto "learning by doing".
Ich möchte mir so eine Steuerung selber bauen bzw. eine Controller-
Karte beziehen, die ich per USB ansprechen kann ( Hab da leider nichts
gefunden oder mir fehlt einfach das Wissen, was man genau braucht).
Verständnisfragen:
Man benötigt ja einen Microcontroller, der über USB angesprochen wird
(Hier CH341A). Dazu wiederrum auch einen Treiber für die Kommunikation
OS - Controller.
Bei der abacom- Karte oben, gibt es in der Mitte noch einen Chip. Über
Google Recherche kam ich hier her:
http://pdf1.alldatasheet.net/datasheet-pdf/view/55158/ALLEGRO/A6275EA.html
8 Bit LED Driver.
An diesem hängen die 8 Relais.
Der Driver selbst an dem Microcontroller.
Über den Microcontroller wird dann entweder 1 (Spannung) oder 0 (No
Spannung) an den Driver geschickt und so die Relais geschaltet. richtig?
Wie kann man sowas eventuell selber bauen?
Oder gibt es fertige Karten, wo man auch Zugriff auf Treiber hat um dann
selbst Relais etc. hinhängen zu können?
Allgemein bau ich eigene LED- Module, die ich über den PC ansteuern
möchte, was mit obig genannter - aber auch teuren Karte - ja schon
gelingt. Hier hängen eben vom LED Modul die einzelnen Farben auf den
verschiedenen Relais und so kann ich dynamisch über Skripte ein
LAuflicht erzeugen etc.
Vielen Dank schonmal für eure Antworten
Die einfachste Methode währ:
USB->USB/Uart Wandler->µC->Relai Treiber(Transistor)->Relai
Du könntest einen Atmega32u4 nehmen, dieser ist auf ein paar Arduinos
schon verbaut(Micro/Leonard)und kann direkt an das USB Signal dran
gehängt werden.
Super einfach, müsstest hald das Platinenlayout entwickeln, mit
Lochraster is da nix mehr beim Atmega32u4, oder du nimmst ein Arduino
Micro (24$)
Du könntest auch einen Attiny85 nehmen und den Digispark Bootloader, so
kannst du den Attiny 85 direkt an USB Hängen und hinten dran hald nur
ein Shieberegister, das is sogar noch einfacher.
http://digistump.com/products/1#product_resources
Der CH341A ist ein usb->rs232 oder usb->8bit interface ähnlich dem ftdi,
nur daß dieser zusätzlich auch i2c bereitstellt.
Dieser Chip ist eigentlich bei uns nicht beschaffbar und ist ein low
cost
Chinachip, 1.4$ bei Stückzahl 1, 0.40$ bei Stückzahl 10, 0.13$ bei einem
Reel.
Für eine 8 Kanal Relaissteuerung würde ich den MCP2200 verwenden, FTDI
geht aber genauso. Beim MCP2200 die GPIO benutzen, und rs232 einfach
nicht verwenden, wird beim CH341A genauso gemacht.
Für ein paar Euronen schon alles fix und fertig.......
http://www.codemercs.com/io-warrior/?L=1
Bastelansatz:
Kleiner Atmega8 für 1€ und diesen per rs232 ( auch mit USB Wandler
problemlos) über ein Script oder per VBA, Powershell, Visual Studio, mit
eigenem , simplen Protokoll welches der Atmega für die Steuerung seiner
Ports nutzt und fertig.
Die Relais per Transistor ansteuern oder auch über einen ULNxxx.
Kosten, etwa 3 € plus Relais.
Fertig
IO warrior schrieb:> Bastelansatz:>> Kleiner Atmega8 für 1€ und diesen per rs232 ( auch mit USB Wandler> problemlos)
Wenn es schon USB sein soll, dann gleich eine Software-Implementierung.
Z.B. V-USB von www.obdev.at. Da gibts dann auch gleich fertige Projekte
für:
http://www.obdev.at/products/vusb/prjcontrol.html
Das "PowerSwitch" Basisprojekt braucht bloß noch die Relais
anzuknüppern. Weiter unten ist auch ein Projekt direkt für Relais.
Auf der Host-Seite sind das USB-HID-Geräte, da sollte es auch in
Wuschel-Basic Möglichkeiten geben, die anzusteuern.
XL
Neo schrieb:> Du könntest auch einen Attiny85 nehmen und den Digispark Bootloader, so> kannst du den Attiny 85 direkt an USB Hängen und hinten dran hald nur> ein Shieberegister, das is sogar noch einfacher.> http://digistump.com/products/1#product_resources
Alternativ das I/O Portexpander-Shield mit dazu. Auf der Homepage von
Digistump gibt's auch die kompletten Schaltpläne für die einzelnen
Shields ... wobei die Verbindung des Portexpanders mit dem Digispark
dank I2C echt simpel ist. Wie man ein Relais über einen I/O Port
anschließt, findest Du entweder hier im AVR-Tutorial (da findest Du auch
die Portexpander beschrieben glaub ich) oder Du guckst Dir noch das
Relais-Shield des Digispark an. Ist alles wirklich recht simpel.
Da es die Dinger inzwischen für unter 9 Euro in Deutschland gibt, würde
ich lieber so einen fertigen Digispark nehmen und mir den Rest auf
Lochraster-Platine selber zusammen löten. Anschließend einfach den
Digispark auf das Lochraster stecken (oder per Kabel verbinden) und
fertig ist die Hardware.
Alternativ auch noch so ein fertiges I/O Shield dazu und dann nur noch
die Relais inkl. Treiber auf eine Lochraster.
Guten Abend ihr,
danke erstmal für die tollen Beiträge.
Ich habe mir mal ein bisschen was angeschaut und auch selbst Sachen
zusammengeschrieben.
Nun nur zum Verständnis:
Bastelansatz von IO Warrior:
> Kleiner Atmega8 für 1€ und diesen per rs232 ( auch mit USB Wandler> problemlos) über ein Script oder per VBA, Powershell, Visual Studio, mit> eigenem , simplen Protokoll welches der Atmega für die Steuerung seiner> Ports nutzt und fertig.> Die Relais per Transistor ansteuern oder auch über einen ULNxxx.> Kosten, etwa 3 € plus Relais.
Nun für mein Verständnis:
(Muss dazu sagen, dass ich ein n newbie in diesem Bereich bin)
Im Anhang dieser Antwort findet ihr mal eine Zusammenstellung von mir.
Allgemein bedeutet das, dass ich USB mit dem FTDI RS232 in 8 Bit
umwandle. Anschließend kann ich damit den ATmega 8 ansteuern. Vom Atmega
8 aus geh ich weiter auf den ULN2003 Transistor Driver, an dem die
Relays hängen.
Mit einer Software / Programmcode für den Atmel8 kann ich diesen vom PC
aus ansteuern und somit die Relays aufgrund Adressierung an und
ausmachen oder?
Stimmt die Schaltung soweit?
Zu dem Digispark Development Board:
Hier könnte ich einen ULN2003 direkt an die 6 Anschlüsse des Development
Boards hängen und somit dann die am ULN2003 wiederrum hängenden Relais
schalten und an GND zurückführen oder?
Oder brauch ich hier auch noch einen Mikrocontroller ?
Relais wären Songle 5V.
So etwas ähnliches wie den Converter von Digispark müsste auch dieser
hier:
http://www.stephanharms.de/MCP-2200
sein.
Hier wird eben der MCP2200 und kein Attiny85 verwendet.
Verständnisfrage 2:
Bei der Abacom Karte geht USB weiter an den CH341A. Der müsste ja
gleichzusetzen mit einem MCP2200 sein. Von dem CH341A geht man weiter
auf den 8 bit led driver. Am 8 bit led Driver hängen dann die Relays
dort.
Das Prinzip wird ja durch die Digispark Karte abgedeckt, nur dass eben
der 8 Bit Driver noch fehlt. Kann ich dazu diesen ULN2003 nehmen oder
brauch ich hier was spezielles?
Wär nett, wenn ihr auf meine Fragen direkt eingehen könntet, auch wenn
das für euch alles pippifax ist ^^ (so wie für mich so einiges in der
IT)
Verwendung für so eine USB Relaiskarte wäre, dass ich über ein Relay ein
LED Cluster mit 3x3 LEDs anfahre.
Als Relais würde ich diese hier verwenden, die auch auf der Abacom Karte
zu finden sind:
http://www.play-zone.ch/media/catalog/product/cache/1/image/2292003bdb0f876b1b9d23351ca744da/5/v/5v-0.jpg
Bepo345 schrieb:> Zu dem Digispark Development Board:>> Hier könnte ich einen ULN2003 direkt an die 6 Anschlüsse des Development> Boards hängen und somit dann die am ULN2003 wiederrum hängenden Relais> schalten und an GND zurückführen oder?> Oder brauch ich hier auch noch einen Mikrocontroller ?> Relais wären Songle 5V.
Das Digispark ist ein Attiny den man direkt an USB hängen kann, ja du
kannst den ULN2003 direkt dran hängen(wenn der dir Relai schalten kann,
sonst hald noch nen Transistor als Schalter dazwischen da sonst der
ULN2003 abbrennt)
Drei Sachen fallen mir hierzu ein:
1. Die IO warrior-Serie - wenn Du keine Geschwindigkeitsrekode brechen
willst - für ‘n Quicky nicht schlecht.
2. Die FTDI-Chips haben eine Betriebsart mit der sich so was ebenfalls
machen lässt.
3. Es gibt mittlerweile einen ganzen Sack voll µP's, die eine
USB-Schnittstelle eingebaut haben, die nebenher auch noch Waschen
und Bügeln können.
>Das Digispark ist ein Attiny den man direkt an USB hängen kann, ja du>kannst den ULN2003 direkt dran hängen(wenn der dir Relai schalten kann,>sonst hald noch nen Transistor als Schalter dazwischen da sonst der>ULN2003 abbrennt)
Ok alles Klar.
Im Anhang jetzt wäre dargestellt, wie ich die Schaltung aufbauen würde.
Ich bin mir nicht sicher, ob die Leitungen auf GND und 5V sind so
richtig sind.
greeZ
Prinzipiell ok so.
Du wandelst aber nicht sb nach 8 Bit....
Du sendest ASCII Strings , zb 11111110 ( 7 an, einer aus) und wertest
das im UC aus um dann die Ports für die Relais zu steuern.
Das ist sehr einfach.
Amateur schrieb:> Es gibt mittlerweile einen ganzen Sack voll µP's, die eine> USB-Schnittstelle eingebaut haben
Und es gibt sogar welche, die USB-Treiber im ROM haben (wie FTDI) und
von VB/VBA als Generic HID eingebunden werden können. Für ein
selbstgebautes Board würde ich LPC1343 empfehlen. Falls zu schwierig zu
löten auch als DIP-Modul verfügbar:
http://www.watterott.com/de/LPC1343-QuickStart-Board
Ich hab mit den Digisparks auch schon ein paar Projekte umgesetzt und
muss sagen, dass sie mir das Leben echt erleichtert haben. Natürlich
könnte man die paar Bauteile auch selber zusammenlöten und mit einem
entsprechenden Programmer auch den Bootloader selbst installieren ...
aber warum? Wenn ich die Platine selbst erstellen muss, brauche ich z.
B. einen extra USB-Stecker. Auf eine Lochraster-Platine lassen sich die
meiste nur schlecht bis gar nicht verlöten und viel billiger wird's
dadurch auch nicht.
Um aber wirklich ein Schnäppchen zu machen, muss man sich ein wenig
umsehen. Beim Import aus USA kommen noch mindestens 10 Dollar Porto dazu
und der Versand dauert erfahrungsgemäß 4 bis 5 Wochen. Zusätzlich muss
man dann hier auch noch 19 % Einfuhrumsatzsteuer drauf rechnen.
Also sucht man nach einem Distributor vor Ort. Bei Ebay und Amazone
findet man nur Angebote für 19,90 Euro ... zu teuer. Die
Hersteller-Homepage nennt Boxtech in der Schweiz als Distributor. Dort
werden sie für 13,50 CHF angeboten. Schon nicht schlecht. Ich habe meine
Digisparks aber hier für 8,95 Euro bestellt:
http://shop.cboden.de/Digispark/Digispark-USB-Entwicklungs-Board.html.
Lieferung war OK und bis jetzt habe ich noch keine günstigere Quelle
gefunden.
Hey,
> Du sendest ASCII Strings , zb 11111110 ( 7 an, einer aus) und wertest> das im UC aus um dann die Ports für die Relais zu steuern.
Also würde die Schaltung auch so funktionieren, nur dass ich eben
komplette String sende, um die Ausgänge zu schalten?
Oder benötigt ich noch ein Bauteil, dass die String in Bits umwandelt?
> http://shop.cboden.de/Digispark/Digispark-USB-Entw....
Sieht gut aus :)
O.k. Dein Argument, daß Du was lernen möchtest, kann ich akzeptieren.
Daß Du jedoch zu dem ABACOM Preis was qualitativ gleichwertiges selbst
hinbekommst halte ich für ziemlich utopisch...
> Daß Du jedoch zu dem ABACOM Preis was qualitativ gleichwertiges selbst> hinbekommst halte ich für ziemlich utopisch...
Ganz ehrlich? ja wird auch nich so gleichwertig^^ aber mir machts
einfach spaß dinge auszuprobieren und dabei auch was zu lernen.
Ich hab selbst gemerkt, dass ich mir noch ein paar Tutorials hier ein
bisschen genauer angucken muss.
=> Newbie eben
Der Digispark ist heute gekommen und ich hab ihn gleich mal mit der
Arduino IDE ausprobiert. Funktioniert alles echt super (Win7 64 Bit /
Win 8 64 Bit).
Aber wirklich erstaunlich, wie klein das Ding doch ist^^
nun wart ich mal auf die Relais Treiber.
Aber allgemein danke euch allen für eure Antworten und auch Hilfe.
Ist echt nen super Forum hier.
Nein Du benötigst überhaupt nichts zusätzliches mehr.
Alles per Software.
Du sendest sowas wie " Relais 1= 1" , empfängst via Uart und wertest das
aus :
If String = " Relais1=1" then portpin 1=1
Und so weiter.
Trivial, sicher, billig,einfach.
Das ganze andere Gesummsel im Thread ist völlig überflüssig, zu teuer ,
zu komplex...
Geht aber auch, nach dem Motto:
Mit genug Schub bekommst du auch Schweine zum Fliegen....
Hey,
ich wollte mich nochmal melden.
Hab mir nun eine Relaiskarte selbst gebaut.
=> Bilder als anlage dabei
Digispark Development Board
Relaistreiber: ULN2803
Songle Relais: SRD05VDC-SL-C
5 x 3mm LED rot
5 x 3mm LED grün
560 Ohm Widerstände.
Ist vielleicht nicht das professionellste, aber es funktioniert alles
problemlos.
Mit ihr kann ich einen 12V - Laststromkreis betreiben.
Danke nochmal für eure Hilfe :)
Bepo345 schrieb:> Wie kann man sowas eventuell selber bauen?> Oder gibt es fertige Karten, wo man auch Zugriff auf Treiber hat um dann> selbst Relais etc. hinhängen zu können?>> Allgemein bau ich eigene LED- Module, die ich über den PC ansteuern> möchte, was mit obig genannter - aber auch teuren Karte - ja schon> gelingt. Hier hängen eben vom LED Modul die einzelnen Farben auf den> verschiedenen Relais und so kann ich dynamisch über Skripte ein> LAuflicht erzeugen etc.
Eine bequeme möglichkeit sind module wie zB. das hier
https://guloshop.de/shop/USB-TTL-ADC-PWM-Signalwandler:::10.html
Damit kannst du ein paar LEDs direkt ansteuern und sogar dimmen weil das
Modul PWM beherrscht.
Hallo Bepo345
In Deinem Beitrag schreibst Du, daß man die Relaiskarte auch über
Excel-VBA ansteuern kann. Hast du das schon ausprobiert ???
Wenn das funktioniert, wäre die Karte auch was für mich,da ich folgendes
Projekt verwirklichen möchte. Habe schon mehrfach gegoogelt, aber leider
nichts passendes gefunden.
Habe meine elektrische Haussteuerung mit Excel verewigt d.h.auf mehreren
Tabellenblättern Wirk- und Übersichtsschaltplan erstellt. Unter anderem
auch die Garagensteuerung.Nun möchte ich, auf dem dazugehörigen
Tabellenblatt einen Butten (oder mehrere) erstellen. Bei einem
Tastendruck auf den Butten soll ein Relais kurzzeitig anziehen.Damit
öffnet oder schließt sich das Garagentor. Gleichzeitig soll der Butten
"auf" die Farbe "rot"annehmen, wenn das Garagentor geöffnet ist. dto
umgekehrt. Die Steuer & Zustandsleitungen sind an einer Relaiskarte
aufgelegt, welche an der RS232 installiert ist.
Kenntnisstand: Befehlsbutten und Automatikmakro schaffe ich gerade noch
so.
Habe Euch ne kleine zip-Datei angehängt.
Freundliche Grüße
Mexico67
ohne jetzt in Deine ZIP-Datei geschaut zu haben: der Zugriff von VBA aus
auf die Serielle Schnittstelle (und damit auf RS232) ist eigentlich
simpel ... wenn man die Datei MSCOMM32.OCX auf dem Rechner hat. Früher
war die direkt bei Windows (oder in Office ... weiß ich nicht mehr so
genau) enthalten - das ist heute leider nicht mehr so. Technisch gesehen
kann man sich die Datei natürlich aus dem Internet auf den Rechner holen
und mit regsvr32 registrieren.
Danach kannst Du einfach sowas wie hier beschrieben umsetzen:
http://www.office-loesung.de/ftopic360610_0_0_asc.php
Beachte dort aber auch bitte die Diskussion zum Thema Lizenz! Ohne
MSCOMM32 geht's zwar theoretisch auch, ist aber aufwändig. Super einfach
hingegen würde es z. B. von VB.NET aus gehen - da wird die Serielle
Schnittstelle direkt durch das .NET Framework unterstützt. Man könnte
sich also auch eine kleine .NET-Anwendung schreiben, die die
Kommunikation übernimmt und diese dann von Excel aus ansteuern.
Hallo IO Warrior,
kannst du mir bitte,wenn es deine kostbare Zeit erlaubt behilflich sein
????? da du in deinem Threat erwähnst,
Bastelansatz:
Kleiner Atmega8 für 1€ und diesen per rs232 ( auch mit USB Wandler
problemlos) über ein Script oder per VBA, Powershell, Visual Studio, mit
eigenem , simplen Protokoll welches der Atmega für die Steuerung seiner
Ports nutzt und fertig.
somit vermute ich, daß du im Programmieren ein ASS bist. Wie in obigem
Threat erwähnt möchte ich in Excel Butten zum Schalten der Relaiskarte
kreieren, habe aber von VBA keine Ahnung.Hardware-Elektronic zusammenzu
bauen ist kein Problem.
Viele Grüße
Mexico67 alias Srohfeuer
Hallo Diggi Spark,
vielen Dank für Deine Antwort. Aber wie Du sicherlich schon gelesen
hast,
Habe ich vom Programmieren keine Ahnung, daher suche ich was fertiges,
wo ich nur in Excel z.B ein feriges Makro, wo ich einfach an einen
Befehlsbutten anhängen kann. Ich weiß z.b. nicht, wie ich das Skript von
Bepo 345 in VBA installieren muß. Also blutiger Anfänger.
Würde mich für was fertiges und funktionierende auch finanziell
beteiligen. weil ich weiß wieviel Arbeit programmieren macht.
Viele Grüße
Mexico 67
Wie man an meinem Nick-Namen ja schon sieht (und auch an meinen
Beiträgen weiter oben in dieser Diskussion) mag ich halt einfach den
Digisaprk. Mit ihm könntest Du auch das Problem mit der RS232 umgehen.
Der kommt direkt in den USB Port. Um die Kommunikation vom PC aus mit
ihm möglichst einfach zu gestalten, ist in der Entwicklungsumgebung auch
ein kleines C-Programm enthalten, das man einfach nur mit ein paar
Parametern aufrufen kann und dass dann eine übergebene Zeichenfolge über
USB an den Digispark sendet.
Das Aufrufen ist auch von Excel aus per VBA super einfach. Den Digispark
muss man dann halt so programmieren, dass er bei Erhalt der Zeichenfolge
ein Relais einschaltet. Hierfür gibt es auch eine extra
Erweiterungsplatine mit Relais, die einfach auf den Digispark gesteckt
wird. Der Digispark wartet dann eine definierte Zeitspanne (die man auch
gleich als Zeichenfolge übertragen kann) und schaltet danach das Relais
automatisch wieder ab.
Die Programmierung des Digispark wäre nicht sehr kompliziert und kann
ich Dir ggf. machen. Von Excel aus wäre es auch sehr einfach, da Du nur
das C-Programm inkl. Paramter aufzurufen brauchst.
Hallo Digi Spark,
ok, vielen Dank, denke,daß das auch das Richtige ist, sogar über USB.
Werde die Teile bei "CB" bestellen, allerdings ist da auf der
Relais-Erweiterungsplatine nur 1 Relais drauf.Da kann man sicherlich
auch andere Relaiplatinen verwenden. 6 Ausgänge hat der DigiSpark.
Ich finde es Super, daß du mir bei meinem Projekt helfen willst.
Darf ich auf dein Angebot zurückkommen, sobald die Teile da sind????
"Das Aufrufen ist auch von Excel aus per VBA super einfach. Den
Digispark
muss man dann halt so programmieren, dass er bei Erhalt der Zeichenfolge
ein Relais einschaltet. Hierfür gibt es auch eine extra
Erweiterungsplatine mit Relais, die einfach auf den Digispark gesteckt
wird. Der Digispark wartet dann eine definierte Zeitspanne (die man auch
gleich als Zeichenfolge übertragen kann) und schaltet danach das Relais
automatisch wieder ab.
Die Programmierung des Digispark wäre nicht sehr kompliziert und kann
ich Dir ggf. machen. Von Excel aus wäre es auch sehr einfach, da Du nur
das C-Programm inkl. Paramter aufzurufen brauchst."
Hast du für mich eine E-Mail-Adresse ???
oder soll ich dir meine senden???
Viele Grüße
Mexico67
Richard
standardmäßig lassen sich die Relais-Shields so konfigurieren, dass sie
einen von 2 verschiedenen Pins verwenden. Mehr geht auch mit den
Stapelverbindern nicht, da die Relais höher sind als die Verbinder ...
da muss man also ohnehin schon ein wenig tricksen.
Wenn man die Relais-Platinen aber nicht per Stapelverbinder sondern
einfach über Kabel verbindet, dann kann man in der Tat mehrere
anschließen.
Sollten die 6 Pins des Digispark nicht reichen, kann man alternativ noch
bis zu 8 Portexpander dran hängen.
Edit: ich hab gerade mal nachgeschaut ... der Spulenstrom des Relais im
Erweiterungssatz des Digispark beträgt 40 mA. Die Spannungsversorgung
des Digispark selbst stellt max. 500 mA zur Verfügung. Theoretisch
kannst Du also an jeden Pin ein Relais hängen und mit der Spannung aus
dem Digispark versorgen. Nur wenn Du Portexpander und dementsprechend
mehr Relais einsetzt, wird's knapp mit dem Strom. In dem Fall wäre noch
eine externe Spannungsversorgung für die Relais notwendig, die nicht
über den Spannungsregler des Digispark läuft.
Bepo345 schrieb:> Ich möchte mir so eine Steuerung selber bauen bzw. eine Controller-> Karte beziehen, die ich per USB ansprechen kann
D.h. im Endeffekt, du willst das, was du hast. Nur billiger. Und wir
sollen die Idioten sein, die dir die Recherche abnehmen.
Mach's dir doch selbst!
@c-hater (Gast)
du bist wieder so ein Schlauer der die Threat-Inhalte nicht richtig
lesen kann oder nicht versteht und doch seinen Senf dazugeben muß.
Auf solche unqualifizierten Kommentare können wir getrost verzichten.