- 3D-Druck Einstieg und Tipps         
Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 45 von 45

Thema: AT90S2343: LED als Blinklicht und Lichtsensor

  1. #41
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    Anzeige

    Praxistest und DIY Projekte
    Wenn ich meine Zeit nehme von 200µs pro Dateneinheit, dann komme ich auf 5000Bit/Sec und wenn ich pro Übertragung mit 11 Bit rechne, komme ich immer noch auf 454 Datenbytes.

    Castle
    ps: Ich kann nur die Datenbits nicht in Bytes umsetzen. Vielleicht kann einer mal ein Übertragungsprotokoll dafür schreiben.

  2. #42
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    Ein interessantes Thema.
    Viele suchen günstige Übertragungsmedien...
    Warum meldet sich kein anderer.....
    Und dieses Medium hier ist sehr gut.

    Castle

  3. #43
    Neuer Benutzer Öfters hier
    Registriert seit
    07.11.2005
    Beiträge
    20
    Zitat Zitat von SprinterSB
    Sag Bescheid, wenn du es schaffst über den grossen Teich zu blinken!
    Mach ich!

    Ich schraube gerade an meinem ersten Satelliten...



    Radio Eriwan

  4. #44
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    Ich habe die SLH 56 WS Leuchdioden(ultra Hell) getestet, eine zum Senden eine zum Empfangen, geht nicht. Leuchte eine Ultra 274 an mit der SLH 56 , geht auch nicht, leuchte eine Ultra 274 mit Taschenlampe an, geht.
    Ultra zu Ultra, geht wieder hervorragend.
    Also die Ultra ist bestens geeignet für die Datenübertragung.

    Castle

  5. #45
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von Radio Eriwan
    ... so, fertig, es ist geschafft ...
    Zitat Zitat von SprinterSB
    ... wie du das geschaltet hast? Einfache die LED zwischen 2 Ports ...
    2005: Radio Eriwan hats geschafft. 2010: oberallgeier schaffts nicht und schaffts nicht und . . . .
    Code:
    ...
     #define gLED     4             // Grüne LED,  Anode nach/von PB 4
                                    // LED grün, klar, 25-3120050 von CSD
     #define kLED     3             // LED grün,  Kathode+1k nach PB 3
    ...
    
    
    // ================================================================================
    // ### Laden, Entladen und Zeitmessung bis "low" der LED für Touchsensor
     void BL_test1 (void)   //
     {	                //
    // - -  DDRB3+4 und PORTB3+4 bzw. gLED schalten   - - - - - - - - - - - - - - - - -
    //DDRB  = 0b0001 1000;  // DDRB3+4      = 11 <=> beide als Ausgang
    //PORTB = 0b0000 0000;  // ..und PortB3+4 auf null
     DDRB   |=  ((1<<kLED) | (1<<gLED));    // Datenrichtungsbits als Ausgang
     SetBit (PB, gLED);     // mal die LED gaaaanz kurz anwerfen
     waitms (    1);        // und ein kurzer Blitz
     PORTB  &= ~(1<<gLED);  // Portpin Anode löschen =>
                            // PB4 ist jetzt mit Anode auf Gnd = laden vorbereiten
     SetBit (PB, kLED);     // PB3 mit Kathode+1k auf Vcc => Laden LED-Kondensator
     waitms (     1);       //      und kurz warten zum "aufladen"
    // - -  Interrupt ausschalten, Werte setzen   - - - - - - - - - - - - - - - - - - -
     cli();                 // 
     Izeit_2       = 0;     // Zeit zurücksetzen auf Null
     sei();                 // 
    // - -  Interrupt ist an  - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // - -  Jetzt kLED auf "Eingang"  - - - - - - - - - - - - - - - - - - - - - - - - -
    // ClrBit (PB, kLED);   // LED auf high prüfen = messen/discharge
     DDRB  &= ~(1<<kLED);   // Kathodenpin als Eingang definieren
     ClrBit (PB, kLED);     // Pullup löschen (war ein wegen Vcc auf Ausgangspin)
     while (1)              //
      {                       
        if(IsBitClr (PB, kLED)) break;      // Schleifenende, wenn Kathode auf low
      }                     // Ende while (1)
     cli();
     mess   = Izeit_2;
     sei();
                            //
     info02_mess( mess );
     waitms (  500);        // 2 Messungen pro Minute wegen Ausgabe
                            //
     DDRB   |=  ((1<<kLED) | (1<<gLED));    // Datenrichtungsbits als Ausgang
     PORTB  &= ~((1<<kLED) | (1<<gLED));    // Beide Portpins löschen
     return;                //
     }                                
    // ================================================================================
    Würde sich bitte jemand die Mühe machen und überlegen und schreiben, wo ich den Fehler mache? Danke im Voraus.

    Schaltung genau wie oben bereits vorgestellt. Ich verwende einen mega168, 20 MHz, LED wie dargestellt, R = 1k:

    ............Bild hier  
    ............© MITSUBISHI RESEARCH, P. Dietz, W. Yerazunis, D. Leigh


    Nachtrag das Messergebnis. Messzeit unter 50 µs (Wert = 0) heißt hier, dass die Kapazität in weniger als 50 µs entladen ist. Das ist doch viel zu kurz !? Das müsste doch deutlich länger dauern, oder nicht?

    ............Bild hier  
    Ciao sagt der JoeamBerg

Seite 5 von 5 ErsteErste ... 345

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress