PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überanfänger sucht Hilfe!



t-beutel
27.08.05, 01:00
Servus erstmal,
bin seit langer Zeit auf der Suche nach einer idiotensicheren Anleitung um eine Led von meinem Pc (Debian Sarge) zu steuern.
Die meisten Beiträge/Anleitungen waren leider für mich als elektronik Nichtskönner unbrauchbar :(

Daher meine Bitte:
Kann mir jmd. genau sagen was ich bei Conrad/Reichelt kaufen muss und was ich wo zusammen löten muss.

Warscheinlich kommen jetzt einige die meinen ich soll erstmal gescheit die Basics der Elektronik lernen.
Aber dadrauf hab ich kein Bock :D
Ich wills lieber durch learning by doing lernen ,so bin ich bisher immer ganz gut gefahren :p

Und n bissl kenn ich ja auch aus dem Physik Unterricht oder auch nicht (4 im Zeigniss) .

T-Beutel

derguteweka
27.08.05, 09:10
Kann mir jmd. genau sagen was ich bei Conrad/Reichelt kaufen muss und was ich wo zusammen löten muss.
Schaltung:

Sub-D-Pin 3 o-----|>|-----|>|---/\/\/\-----o Sub-D-Pin 5
1N4148 LED 470 Ohm
Einkaufszettel:
1 Widerstand 470 Ohm 1/4W (gelb lila braun gold)
1 Diode 1N4148
1 LED; Farbe/Durchmesser/Geschmacksrichtung egal
1 9pol Sub-D Weibchen


Warscheinlich kommen jetzt einige die meinen ich soll erstmal gescheit die Basics der Elektronik lernen.
Aber dadrauf hab ich kein Bock :D
Ich wills lieber durch learning by doing lernen ,so bin ich bisher immer ganz gut gefahren :p
Gut, vonmiraus - aber dann keine Geheule, wenn dir irgendwas teures abraucht, das gehoert dann auch zum "lerning by doing" :)
Software:

#include <termios.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>
int main()
{
int fd,i;
fd=open("/dev/ttyS0",O_RDWR);
if (fd>=0)
{
for (i=0;i<4;i++)
{
ioctl(fd,TIOCSBRK);
sleep(1);
ioctl(fd,TIOCCBRK);
sleep(1);
}
close(fd);
return 0;
}
else
{
perror("open failed ");
return -1;
}
}

Diese SW laesst dann die LED 4x blinken.

Gruss
WK

t-beutel
27.08.05, 16:13
Danke für die klasse Antwort!!!



Gut, vonmiraus - aber dann keine Geheule, wenn dir irgendwas teures abraucht, das gehoert dann auch zum "lerning by doing" :)

Ich wollt mir eh bald n neues Motherboard zulegen :p

Werd mir jez gleich das Zeug mal zulegen und dann ausprobieren!

T-Beutel

t-beutel
30.08.05, 02:51
GOIL es geht und mein Mainboard auch noch :) thx @ derguteweka

Hab mich jetzt auch schon ein wenig über Elektronik informiert aber verstehe meine Schaltung oder was es auch ist leider nicht wirklich...

Herscht da Wechselspannung oder Gleichstrom? Und wenn Gleichstrom herschen würde ,wäre dann keine Diode mehr notwendig ,oder?

Und woran erkenne ich ob die Diode in Sperrrichtung geschalten ist?
Ich hab da nämlich geraten :D

Und wieso ausgerechnet den Pin 3 und Pin 5 ,was unterscheidetsie von den anderen und von sich selbst. Kann ich noch andere Schaltungen an die eine Schnittstelle hängen?

Fragen über Fragen aber keine Antworten,hät ich keine Ferien würd ich meinen Physik Lehrer fragen,was ein pech...

Achja falls jmd. Links hat zu anderen einfachen Beispielen oder Referenzen zur Programmierung von dem ganzen rs232 zeugs immer her damit :)

T-Beutel

blubbersuelze
30.08.05, 04:26
1. http://www.hardwarebook.net/
2. leg dir ein Buch über Elektronik zu ...

wirst du eh brauchen wenn du mehr in dieser Richtung machen willst
ob es dir nun passt oder nicht ;)

mfg.
:p blubbersuelze

derguteweka
30.08.05, 08:05
Moin,


Herscht da Wechselspannung oder Gleichstrom? Und wenn Gleichstrom herschen würde ,wäre dann keine Diode mehr notwendig ,oder?
Da herrschen ca. entweder +12V oder -12 Leerlaufspannung, d.h. wenn die olle SW laeuft, dann kommt aus dem Port fuer 4 Sekunden eine Rechteckspannung mit 0.5Hz.
Wenn man ganz skrupellos ist, kann man die LED auch direkt ohne Widerstand und ohne Diode da dranhaengen. Ist aber aus 2 Gruenden schlecht: 1.) Die Strombegrenzung wird ohne den Widerstand nur vom Schnittstellentreiber (aufm Mobo) gemacht, das ist nicht so schoen. 2.) Wenn die LED nicht leuchtet, liegt an ihr eine Sperrspannung von 12V an. Es gibt LEDs, die das nicht moegen.

Und woran erkenne ich ob die Diode in Sperrrichtung geschalten ist?
Ich hab da nämlich geraten :D
Wenn sie nicht leitet, ist sie in Sperrrichtung :D . Auf die Diode ist oft ein Ring gedruckt, der ist naeher an der Kathode; sprich wenn der Anschluss mit dem Ring an - haengt und der Anschluss ohne Ring an +, dann leitet sie. Bei den LEDs isses schwieriger, da ist manchmal das Anodenbeinchen laenger oder das Gehaeuse am Kathodenbeinchen abgeflacht oder sowas.

Und wieso ausgerechnet den Pin 3 und Pin 5 ,was unterscheidetsie von den anderen und von sich selbst.
Pin5 ist GND, auf den beziehen sich alle Aus/Eingangsspannungen an dem Port. Pin3 ist der TxD Ausgang, ueber den normalerweise die Bits im Gaensemarsch kommen, der hier aber nur immer fest auf hi oder lo gelegt wird. Gibt noch 2 weitere Ausgaenge und 5 Eingaenge an der Seriellen. Siehe den Link vom Hardwarebook.

Kann ich noch andere Schaltungen an die eine Schnittstelle hängen?
Naja, logo, z.b. alte Drucker, Plotter, Maeuse, Modems, LIRC-Sender,-Empfaenger - prinzipiell alles, was nicht zuviele Daten auf einmal braucht oder liefert. Hier im Forum gibts grad noch andere Threads ueber Schaltungen mit Schieberegistern (fuer mehr LEDs oder Rolladenmotore :) ).

Gruss
WK

E S
01.09.05, 22:27
Hi,

eine LED ist durch zwei Dinge gekennzeichnet. Diese kennzeihnen die Kathode.
Das wären das kurze Beinchen und die Abflachung am Gehäuse.
Also (K) wie Kurz und (K) Wie kathode.

Eine Diode wird als kleiner Pfeil mit senkrechtem Strich gekennzeichnet. Strom fließt immer in Pfeilrichtung von Plus nach Minus. Der Senkrechte Strick kennzeichnet die Kathode, so auch der Ring auf einer Gleichrichtediode (1Nxxxx).

Eine LED leuchtet, wenn sie in Durchlassrichtung betrieben wird. Die verhält sich wie eine gewöhnliche Diode, nur hält sie weniger Strom aus und kann nur wenige Volt sperren. Daher ist in der Schaltung noch eine zusätzliche Gleichrichterdiode drin, die bi etwa 1kV sperren kann, eine normale LED tut das nur bis so 5-10V, aber an der Schnittstelle liegen bis 12V an.

Eine Diode ist ein sogenannter Halbleiter. Die eine hälfte hat einen Elektronenüberschuß, die andere einen Elektronenmangel. Ist sie unbeschaltet, so gleichen sich die Ladungen aus, in der Mitte der Diode entsteht eine ausgegleichene Zohne. Diese Zohne hat keine verschiebbaren Ladungsträger mehr, kann also nicht leiten. Die Diode sperrt.
Legt man eine Spannung in die falsche Richtung an, so wird dieser Ausgleich vorrangetrieben, die Sperrzohne in der Mitte wächst und es kann immer noch kein Strom fließen.
Liegt die Spannung aber in der richtigen Richtung, so baut die die Sperrschicht ab und dadurch verschwindet die. Das geschieht ab etwa 0,7V bei einer Gleichrichterdiode. Dadurch kann ein Strom ungehindert fließen. Über die Diode fallen aber unabhängig vom Strom 0,7V ab. Wenn man den Strom nicht hemmt, so ist das ein Kurzschluß.
Genau das gleiche gilt für eine Leuchtdiode. Die macht etwa 1,3V Spannungsabfall und leuchtet wenn Strom fließt. Die maximale Helligkeit wird bei 20mA erreicht. natürlich würde die heller, wenn man den Strom erhöht, aber dann geht die kaputt. Also nicht mehr wie 20mA fließen lassen. Dafür sorgt der Widerstand in Reihe. Der wird in diesem Fall "Vorwiderstand" genannt. Für jede Spannung braucht man einen anderen Wert, damit genau 20mA fliessen.

Gruß
Elmar

borgelite
17.07.06, 19:00
hi das klingt jetzt vieleicht nen bischen blöd.Aber kann mir mal jemand erklären wo da genau 12V rauskommen sollen wenn ich messe habe ich überall nur 5v.
Oder muss man da nochwas freischalten.

derguteweka
18.07.06, 00:39
Moin,


hi das klingt jetzt vieleicht nen bischen blöd.Aber kann mir mal jemand erklären wo da genau 12V rauskommen sollen wenn ich messe habe ich überall nur 5v.
Oder muss man da nochwas freischalten.

Du musst nichts mehr freischalten;
die 12V solltest du an der seriellen Schnittstelle messen koennen. Wenn du softwaremaessig nichts mit der betreffenden Schnittstelle machst, kannst du z.b. zwischen Pin3 und Pin5 diese Spannung messen. Bei Laptops kanns auch sein, dass die Spannung kleiner ist, aber 6V sollten's auch da im Leerlauf sein.
Wenn du diese Spannung aber (z.b. mit der obengenannten LED-Schaltung) belastest, dann wird diese Spannung kleiner.
Parallelport, Gameport oder USB gehen jeweils nur mit 5V oder weniger - nur die Serielle ist da eine Ausnahme.

Gruss
WK

E S
18.07.06, 06:17
Hi,

der meint die RS232, denn genau die selbe Frage - Buchstabe für Buchstabe - gab es fast Zeitgleich hier:
http://www.linuxforen.de/forums/showthread.php?p=1393662#post1393662

RS232-C hat übrigens TTL Pegel, wird selten von Laptops genutzt und oft von kleinen Mikrokontrollerschaltungen.

Gruß
Elmar

borgelite
18.07.06, 16:19
ja tut mir leid meine schuld doppel post.

E S
18.07.06, 17:21
Hi,

macht ja nichts. Wollt nur drauf hinweisen, dass offensichtlich parport gemeint ist.

RS232 kann TTL sein, aber pegel invertiert (0V = '1'; +5V = '0'). Auch bei RS232 muß man einen Transistor zum Verstärken verwenden um relais treiben zu können. Funktioniert genau wie ich es im anderen Thread beim Parport beschrieben habe, nur muß der Widerstand zwischen basis und port verdoppelt werden, da man ja hier die doppelte Spannung hat. (12V statt 5V, genauer Wert nicht kritisch, da Transistor nur schaltet und nicht analog verstärken soll)

Gruß
Elmar

daniel44
18.12.06, 10:43
Hi, Hi, ich bin totaller Anfänger
kleine Frage hätte ich bitte, wo soll ich den den C quellcode text reinschreiben den derguteweka gepostet hat?
Da gibt es doch bestimmt ne Programmiersoftware oder so?
Vielen Dank Gruß Daniel44

oli993
18.12.06, 10:49
Hi, Hi, ich bin totaller Anfänger
kleine Frage hätte ich bitte, wo soll ich den den C quellcode text reinschreiben den derguteweka gepostet hat?

In eine Datei!

kreol
18.12.06, 11:05
Oder etwas ausführlicher: Du erstellst mit dem Texteditor Deiner Wahl eine Textdatei mit dem Quellcode. Dann wird die durch gcc gejagt und Du hast eine ausführbare Datei, siehe Anleitung (http://www.oreilly.de/german/freebooks/rlinux3ger/ch132.html#109).

Wirf auch mal einen Blick auf die Links in meiner Sig, da findet sich noch mehr Informatives, auch zu anderen Themen.


Kreol

daniel44
18.12.06, 20:54
DANKE DANKE hier ein Ausschnitt:
Als erstes muß natürlich der Quellcode eingegeben werden. Dazu benutzen Sie einfach einen Texteditor wie Emacs oder vi. Der angehende Programmierer sollte den Quelltext eingeben und in einer Datei, zum Beispiel mit dem Namen hello.c, speichern. (Wie die meisten C-Compiler ist auch gcc wählerisch, wenn es um die Dateinamensuffixe geht - daran kann er ablesen, ob es sich um C-Quelltext, Assembler-Code, eine Objektdatei usw. handelt.) Für Standard-C-Quelltexte sollten Sie das Suffix .c verwenden. Um aus dem Quelltext das ausführbare Programm hello zu erzeugen, würde der Programmierer folgendes eingeben: papaya$ gcc -o hello hello.c

ach die die Datei ist jetzt grün ich hoffe das ist korrekt.

Bei Windows brauche ich eine Port.dll ist das bei Linux nicht der Fall?

kreol
18.12.06, 21:04
Bin mit den Farben nicht so sehr vertraut... Massgeblich sind die Rechte an der Datei, sie muss ausführbar sein. Schau Dir die Ausgabe von "ls -la dateiname" an, da zeigt ein "x", ob und für wen die Datei ausführbar ist. Ansonsten ändere die Rechte (siehe die bereits empfohlenen Links sowie die manpages von chmod und chown). Z.B. mit "chmod a+rx dateiname", das ermöglicht allen Usern das Lesen und Ausführen der Datei.


Kreol

daniel44
18.12.06, 21:24
-rwxr-xr-x 1 Daniel users 7466 2006-12-18 21:19 led
Daniel@linux:~/Documents> gcc led ((so starte ich es))
led(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../crt1.o(.rodata+0x0):../sysdeps/i386/elf/start.S:65: first defined here
led(.data+0x4): In function `__data_start': ................
wenn ich die LED anschließe dann gibt es nur ein dauer leuchten.
Brauche ich keine Art Port.dll ?
(kleine Nebenfrage: Kennt ihr euch mit AVRs aus?)

kreol
18.12.06, 21:35
Jetzt wird es gerade etwas wirr. Du brauchst gcc nur einmal zum kompilieren der Textdatei mit dem Quellcode. Dann rufst Du die mit gcc erzeugte, ausführbare Datei led ohne gcc auf. Oder was meinst/machst Du genau?

Wg. Deiner Nebenfrage: Poste ein konkretes Problem mit genauer Beschreibung und Systemmeldungen im Wortlaut im passenden Unterforum und einem neuen Thread. Bitte die vB-Tags aus meiner Sig verwenden. Ein aussagekräftiger Threadtitel ist erwünscht, z.B. "Überanfänger sucht Hilfe!" (der ja nicht von Dir kommt...) ist vollkommen sinnlos.


Kreol

daniel44
18.12.06, 21:49
okay ich befolge deinen Hinweis.
num zum Prob.
wenn ich ls eingebe zeigt er mir einmal die Datei >led.c< und die grüne Datei >led<
led eingebe dann kommt diese Meldung:

Daniel@linux:~/Documents> led
bash: led: command not found
Daniel@linux:~/Documents>
brauche ich keine art PortDLL?

kreol
18.12.06, 21:51
Probiere es mal mit
./ledin dem Verzeichnis, in dem led liegt.


Kreol

daniel44
18.12.06, 22:00
kreol du du bist mein Held es Abends

Daniel@linux:~/Documents> ./led
open failed : Permission denied
Daniel@linux:~/Documents> su
Password:
linux:/home/Daniel/Documents # ./led


YEHHHHA es BLINKT ich musste aber noch den COMPORT per Hand wechseln

Vielen lieben Dank für die super gute Hilfe, gute Nacht

derguteweka
18.12.06, 23:15
Moin,

Ist doch immer wieder schoen, wie man sich ueber so einfache Sachen, wie eine blinkende LED freuen kann :)
Wenn die Schreibrechte von /dev/ttySirgendwas ensprechend gesetzt sind, muss man auch nichtmal root sein, um's blinken zu lassen.
Bei altmodischen Linuxen geht das mit chmod, bei neumodischen mit irgendwelchen wilden udev-rules.

Gruss
WK

Abmilak
18.12.06, 23:46
Hi t-beutel, es gab mal bei Conrad ein Software/Hardware Teil mit dem Namen ELEX mit dem man die kurzschluß sichere RS232 Schnittstelle programieren konnte, vielleicht gibt es die ja noch. Habe selber eine Software in GFW-Basic damit programmiert um die Runden/Zeiten an der Carrera-Bahn damit über eine Lichtschranke zu nehmen " http://home.arcor.de/hermann.friedhoff/rundenzaehler.html ", ist zwar für Visual-Basic aber mit ein wenig Programmier-Kenntnissen läßt es sich auch in andere Sprachen realisieren.

Gruß, Hermann