hardware bauen und per rechner steuern



  • Original erstellt von Termite:
    **moment du hast die rechnung ohne die diode gemacht.

    diodenspannung 2.4 - 2.1 volt

    somit (5v - 2.4V) /10mA = 260Ohm gibts nich in E12 also einen mit 270Ohm nehmen oder einen drunter.**

    Ich hab die Diode völlig ausser acht gelassen und bein nur von Strom ausgegangen 😃

    Aber 2,1 ist bei den meisten NoName LEDs schon fast zu hochgegriffen.
    1,4 - 1,9 ist der Bereich mit dem ich meistens rechne. (Ist ja von Farbe zu Farbe unterschiedlich).
    Blaue LEDs fangen erst bei ca. 4V an.

    [ Dieser Beitrag wurde am 30.04.2002 um 15:32 Uhr von Hexatrexmibultra.de editiert. ]



  • hi,

    mit wieviel mA kann man den die serielle schnittstelle belasten?
    Bei der seriellen schnittstelle hat man ja nur 3 ausgänge... wenn ich damit jetzt beispielsweiße aber 5 LED's steuern will dann muss man da doch ein bauteil hinbauen welches drei eingänge hat und 5 ausgänge und je nachdem wie es programmiert ist zum Beispiel zu reagiert:
    EIngang AUsgang
    000 10000
    001 01000
    010 00100
    011 00010
    100 00001
    kann das sein das sich das schieberegister nennt?

    MFG BlockBuster



  • ajo...jut die elektronischen (theoretischen)sachen sind ja easy...doch:
    wie zur hölle krieg ich dioden an den parralell port????
    wo krieg ich entsprechende kabels (/adapter)her???
    wie krie ich entsprechende signale auf den parllel port?
    plz answer...ich muss das einfach ausprobieren



  • ja elektronmik am pc habe ich (is krazz)
    besser bekannt unter elexs (www.elexs.de)

    hab schon damit vieles gebastelt und desöfteren nützliche sachen gebastelt, wie 'n automatischen blumenbewässerer, eisenbahn tacho,...

    im moment bin ich grad dabei meine türsicherung zu erweitern und paralel zu der blinkenden diode ne verbindung zum pc herstellen, dort werde ich com 2 benutzen auf die plantinie verzichte ich ganz und nimm stattdessen ne normale v24 buchse, die software hab ich schon ich brauche nur die leitungen (D)CD und DTR

    solche kleinen sachen sind voll easy
    ich finde die serielle schnittstelle besser, die liefert zwischen 10 und 20 mA (vom mainboard abhängig) und wenn man mehr saugt raucht die schnittstelle nicht ab

    *puh*



  • nur so als kleiner tipp:
    schalten nur über transistoren, ist auf alle fälle sicherer und besser...
    wenn ihr nicht wisst was das ist, nehmt euch lieber mal ein elektronik-buch her - es is nicht soviel dahinter (bei den einfachen sachen, die ihr da vor habt), man sollte aber auch wissen, was man tut und nicht auf alles blind vertrauen, was man so hört...



  • wieso nur über transen?

    ich benutzte entweder Relays oder nix, ich kenne die hardwarefeatures meines pc's genau
    z.b Serielle S.

    + 11,7 Volt
    16,256 mA

    - 11,666 Volt
    ...

    Daten aus'm bios und nachgemessen



  • @mynona

    1. weil die spannungen von verfügbaren ströme von board zu board (teilweise sogar von der revision abhängig) unterschiedlich sind! mal schnell deine schaltung (die vielleicht sehr knapp dimensioniert ist) an nem anderen rechner ausprobieren is dann nicht...
    2. es geht hier um ein bastelprojekt! schau doch mal was passiert, wenn du die parallele Schnittstelle kurzschließt (viel spass dabei 😃 ) (die serielle sollte i.d.R. kurzschlussfest sein, ist aber nicht zu empfehlen
    3. wenn dann mal wirklich was hin ist, ists nicht dein board um 100 euro, sondern nur ein paar transistoren um ein paar cent


  • Kann man also nichts größeres kaputtmachen, wenn man mal schei*e baut?



  • Kann man also nichts größeres kaputtmachen, wenn man mal schei*e baut?

    Flosko war wohl noch nicht deutlich genug. 😉
    Der parallele Port ist *nicht* abgesichert. Der fackelt ab. Einfach so. Alles schon passiert ...



  • ich hab mal für elexs versucht ne klasse zum comport zu schreiben, sie wurde nie fertieg, ihr könnt sie benutzten und erweitern, wenn ihr mir die erweiterungen->verbesserungen mitteilt 😛

    Die CPORT.CPP

    #include <windows.h>
    #include "CPORT.H"
    
    HANDLE hCom;
    DWORD COMStatus;
    
    ComPort::SetOPEN(int PORT)
    {
        if(PORT<=0||PORT>4)
        {
            return WRONG_PORT;
        }
        char*CP[]={"COM1","COM2","COM3","COM4"};
        hCom = CreateFile(CP[PORT-1],
        GENERIC_READ | GENERIC_WRITE,
        0,
        NULL,
        OPEN_EXISTING,
        0,               /* no overlapped I/O             */
        NULL);           /* must be NULL for comm devices */
    
        return 0;
    }
    
    ComPort::SetCLOSE()
    {
        CloseHandle(hCom);
        return 0;
    }
    
    ComPort::SetDTR(bool mode)
    {
    
        if(mode==ON)
        {   
            EscapeCommFunction(hCom, SETDTR);  // setzen
        }
        else
        {
            EscapeCommFunction(hCom, CLRDTR);  // Loeschen  
        }
    
        return 0;
    }
    
    ComPort::SetRTS(bool mode)
    {
        if(mode==ON)
        {   
            EscapeCommFunction(hCom, SETRTS);  // setzen
        }
        else
        {
            EscapeCommFunction(hCom, CLRRTS);  // Loeschen      
        }
        return 0;
    }
    
    ComPort::SetTXD(bool mode)
    {
        if(mode==ON)
        {   
            EscapeCommFunction(hCom, SETBREAK);  // setzen
        }
        else
        {
            EscapeCommFunction(hCom, CLRBREAK);  // Loeschen    
        }
        return 0;
    }
    
    int   ComPort::SENDEN   (char* text)
    {
        //WriteFile(hCom,text);
        return 0;
    }
    char* ComPort::EMPFANGEN ()
    {
        char* text;
        //ReadFile(hCom,text);
        return text;
    }
    
    void ComPort::WARTE(int ms)
    {
        Sleep(ms);
    }
    
    bool ComPort::GetCTS()
    {
        GetCommModemStatus(hCom, &COMStatus);  
        if(COMStatus & MS_CTS_ON)
        {
            return ON;
        }
        return OFF;
    }
    
    bool ComPort::GetDSR()
    {
        GetCommModemStatus(hCom, &COMStatus);  
        if(COMStatus & MS_DSR_ON)
        {
            return ON;
        }
        return OFF;
    }
    

    Die CPORT.H

    #pragma once
    
    #define WRONG_PORT 100
    #define INVALID_PORT 101
    #define ON  true
    #define OFF false
    
    class ComPort
    {
    public:
        int   SetOPEN   (int PORT);
        int   SetCLOSE  (void);
        int   SetDTR    (bool mode);
        int   SetRTS    (bool mode);
        int   SetTXD    (bool mode);
        int   SENDEN    (char* text);
        bool  GetCTS    ();
        bool  GetDSR    ();
    
        void  WARTE     (int ms);
        char* EMPFANGEN (void);
    };
    

    das #pragma once bewirkt, das die header nur einmal eingebun´den wird beim vc++
    da gibts bestimmt auch ne bessere methode


Anmelden zum Antworten